From 743e8e8615d8beff82b8f05b323b0ab2763b471b Mon Sep 17 00:00:00 2001 From: Dmitry Makarenko Date: Mon, 26 Jan 2026 16:35:34 +0300 Subject: [PATCH] Add release workflow --- .github/workflows/release.yml | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..e82ecbc --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,53 @@ +name: Release + +on: + workflow_dispatch: + inputs: + run_id: + description: 'Workflow run ID to take artifacts from' + required: true + type: string + tag: + description: 'Tag name (e.g. v1.0.5)' + required: true + type: string + prerelease: + description: 'Mark as pre-release' + required: false + type: boolean + default: false + +jobs: + release: + name: Create Release + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - name: Download artifacts + env: + GH_TOKEN: ${{ github.token }} + run: | + mkdir -p release-assets + gh run download ${{ inputs.run_id }} --dir release-artifacts + + for dir in release-artifacts/*/; do + name=$(basename "$dir") + (cd "$dir" && zip -r "../../release-assets/${name}.zip" .) + done + + - name: Create tag + run: | + git tag ${{ inputs.tag }} + git push origin ${{ inputs.tag }} + + - name: Create release + env: + GH_TOKEN: ${{ github.token }} + run: | + gh release create ${{ inputs.tag }} \ + --title "${{ inputs.tag }}" \ + ${{ inputs.prerelease && '--prerelease' || '' }} \ + release-assets/*