name: release on: push: branches: - master tags: - 'v*.*.*' pull_request: types: - labeled jobs: release: if: github.event.action != 'labeled' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Bump version on merging Pull Requests with specific labels. # (bump:major,bump:minor,bump:patch) - id: bumpr if: "!startsWith(github.ref, 'refs/tags/')" uses: haya14busa/action-bumpr@v1 # Update corresponding major and minor tag. # e.g. Update v1 and v1.2 when releasing v1.2.3 - uses: haya14busa/action-update-semver@v1 if: "!steps.bumpr.outputs.skip" with: tag: ${{ steps.bumpr.outputs.next_version }} # Get tag name. - id: tag uses: haya14busa/action-cond@v1 with: cond: "${{ startsWith(github.ref, 'refs/tags/') }}" if_true: ${{ github.ref }} if_false: ${{ steps.bumpr.outputs.next_version }} # Create release - if: "steps.tag.outputs.value != ''" env: TAG_NAME: ${{ steps.tag.outputs.value }} CURRENT: ${{ steps.bumpr.outputs.current_version }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh release create "${TAG_NAME}" -t "Release ${TAG_NAME/refs\/tags\//}" --generate-notes --notes-start-tag "${CURRENT}" release-check: if: github.event.action == 'labeled' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Post bumpr status comment uses: haya14busa/action-bumpr@v1