name: Release on: push: tags: - v* jobs: version: name: Prepare version string runs-on: ubuntu-latest outputs: version: ${{ steps.version.outputs.version }} steps: - name: Output version string id: version env: TAG: ${{ github.ref_name }} run: echo "version=${TAG#v}" >> "$GITHUB_OUTPUT" package: needs: version name: Package uses: ./.github/workflows/package.yml with: version: ${{ needs.version.outputs.version }} release: needs: [version, package] name: Release runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout sources uses: actions/checkout@v4 - name: Create release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAG: ${{ github.ref_name }} run: gh release create "$TAG" -t "Release ${TAG#v}" --notes-from-tag - name: Download artifacts uses: actions/download-artifact@v4 with: pattern: package.* path: packages merge-multiple: true - name: Upload assets env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAG: ${{ github.ref_name }} VERSION: ${{ needs.version.outputs.version }} run: gh release upload "$TAG" packages/*