name: release on: push: tags: - "v*" workflow_dispatch: inputs: tag: description: "Tag to release (e.g. v0.2.0)" required: true jobs: release: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: "20" - name: Install dependencies run: npm ci || npm install - name: Test run: npm test - name: Build bundle run: npm run build - name: Stage release artifacts run: | mkdir -p release cp dist/app.mjs release/app.mjs cp scripts/install.sh release/install.sh ls -lh release/ - name: Resolve tag id: tag run: | if [ -n "${{ inputs.tag }}" ]; then echo "name=${{ inputs.tag }}" >> "$GITHUB_OUTPUT" else echo "name=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT" fi - name: Publish Gitea Release uses: https://gitea.com/actions/release-action@main with: api_key: ${{ secrets.GITEA_TOKEN || secrets.GITHUB_TOKEN }} tag: ${{ steps.tag.outputs.name }} title: ${{ steps.tag.outputs.name }} files: |- release/app.mjs release/install.sh