name: Release on: push: tags: - v* jobs: build: name: Build uses: ./.github/workflows/build.yml 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: [build, version] name: Package uses: ./.github/workflows/package.yml with: version: ${{ needs.version.outputs.version }} publish-packages: name: Publish Packages uses: ./.github/workflows/publish-packages.yml secrets: BUILDKITE_TOKEN: ${{ secrets.BUILDKITE_TOKEN }} release: needs: [package, version] 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 }} VERSION: ${{ needs.version.outputs.version }} run: gh release create "$TAG" -t "Release $VERSION" --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 }} run: gh release upload "$TAG" packages/*