diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 72afb7d..fb0e570 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -10,6 +10,11 @@ on: branches: - main workflow_dispatch: + inputs: + release_tag: + description: "Optional tag to release (e.g. v1.1)" + required: false + type: string jobs: build: @@ -28,30 +33,39 @@ jobs: run: make clean build release: - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + if: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) || (github.event_name == 'workflow_dispatch' && inputs.release_tag != '') runs-on: ubuntu-latest container: debian:11 permissions: contents: write steps: - - name: Checkout + - name: Checkout (tag push) uses: actions/checkout@v4 + if: github.event_name == 'push' + + - name: Checkout (manual tag) + uses: actions/checkout@v4 + if: github.event_name == 'workflow_dispatch' + with: + ref: ${{ inputs.release_tag }} - name: Install build dependencies run: apt-get update && apt-get install -y --no-install-recommends make g++ git tar ca-certificates - name: Build release tarball - run: make release VERSION=${{ github.ref_name }} + run: make release VERSION=${{ github.event_name == 'workflow_dispatch' && inputs.release_tag || github.ref_name }} - name: Upload workflow artifact uses: actions/upload-artifact@v4 with: - name: fetchit-${{ github.ref_name }}-linux-x86_64-gnu + name: fetchit-${{ github.event_name == 'workflow_dispatch' && inputs.release_tag || github.ref_name }}-linux-x86_64-gnu path: dist/*.tar.gz - name: Publish GitHub release uses: softprops/action-gh-release@v2 with: + tag_name: ${{ github.event_name == 'workflow_dispatch' && inputs.release_tag || github.ref_name }} files: dist/*.tar.gz + overwrite_files: true generate_release_notes: true