draft-release.yml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. name: Draft Release
  2. on:
  3. push:
  4. branches:
  5. - master
  6. - dev/*.*.*
  7. concurrency:
  8. group: ${{ github.workflow }}-${{ github.ref }}
  9. cancel-in-progress: true
  10. jobs:
  11. # Refs: https://github.com/release-drafter/release-drafter
  12. update-release-draft:
  13. runs-on: ubuntu-latest
  14. outputs:
  15. CURRENT_VERSION: ${{ steps.package-json.outputs.packageVersion }}
  16. RELEASE_DRAFT_BODY: ${{ steps.release-drafter.outputs.body }}
  17. steps:
  18. - uses: actions/checkout@v4
  19. - name: Retrieve information from package.json
  20. uses: myrotvorets/info-from-package-json-action@1.2.0
  21. id: package-json
  22. - uses: release-drafter/release-drafter@v5
  23. id: release-drafter
  24. with:
  25. config-name: release-drafter.yml
  26. name: v${{ steps.package-json.outputs.packageVersion }}
  27. tag: v${{ steps.package-json.outputs.packageVersion }}
  28. version: ${{ steps.package-json.outputs.packageVersion }}
  29. disable-autolabeler: true
  30. env:
  31. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  32. # Refs: https://github.com/bakunyo/git-pr-release-action
  33. update-release-pr:
  34. needs: update-release-draft
  35. runs-on: ubuntu-latest
  36. steps:
  37. - uses: actions/checkout@v4
  38. with:
  39. fetch-depth: 0
  40. - name: Get release version
  41. id: release-version
  42. run: |
  43. RELEASE_VERSION=`npx semver -i patch ${{ needs.update-release-draft.outputs.CURRENT_VERSION }}`
  44. echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_OUTPUT
  45. - name: Get base branch
  46. id: base-branch
  47. run: |
  48. GITHUB_REF_NAME=${{ github.ref_name }}
  49. WILDCARD_VERSION=${GITHUB_REF_NAME#dev/}
  50. # set "release/current" or "release/X.X.x" to BASE_BRANCH
  51. BASE_BRANCH=release/${{ github.ref_name == 'master' && 'current' || '$WILDCARD_VERSION' }}
  52. echo "BASE_BRANCH=$BASE_BRANCH" >> $GITHUB_OUTPUT
  53. - name: Create/Update Pull Request
  54. uses: bakunyo/git-pr-release-action@master
  55. env:
  56. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  57. GIT_PR_RELEASE_BRANCH_PRODUCTION: ${{ steps.base-branch.outputs.BASE_BRANCH }}
  58. GIT_PR_RELEASE_BRANCH_STAGING: ${{ github.ref_name }}
  59. GIT_PR_RELEASE_TEMPLATE: .github/git-pr-release-template.erb
  60. GIT_PR_RELEASE_TITLE: Release v${{ steps.release-version.outputs.RELEASE_VERSION }}
  61. GIT_PR_RELEASE_BODY: ${{ needs.update-release-draft.outputs.RELEASE_DRAFT_BODY }}