|
10 | 10 | properties: |
11 | 11 | milestone_number: |
12 | 12 | type: string |
| 13 | + workflow_dispatch: |
13 | 14 |
|
14 | 15 | jobs: |
15 | 16 | release: |
@@ -41,33 +42,32 @@ jobs: |
41 | 42 | if: ${{ steps.release-label.outputs.level != null }} |
42 | 43 | with: |
43 | 44 | semver_only: true |
| 45 | + |
| 46 | + - name: Get Last Merged PR |
| 47 | + id: get_merged_pr |
| 48 | + uses: actions-ecosystem/action-get-merged-pull-request@v1 |
| 49 | + with: |
| 50 | + github_token: ${{ secrets.GITHUB_TOKEN }} |
44 | 51 |
|
45 | | - # Determine the release type (major, minor, patch) based on commit messages |
46 | | - - name: Determine Release Type |
| 52 | + # Determine the release type (major, minor, patch) based on Last Merged PR Title |
| 53 | + - name: Determine Release Type from PR Title |
47 | 54 | id: determine_release |
48 | 55 | run: | |
49 | | - PREV_VERSION=$(git describe --abbrev=0 --tags) |
50 | | - echo "Previous Version: $PREV_VERSION" |
51 | | - |
52 | | - COMMIT_MESSAGES=$(git log $PREV_VERSION^..HEAD --format=%B) |
53 | | - echo "Commit Messages: $COMMIT_MESSAGES" |
54 | | - |
55 | | - # Determine release type based on commit messages and labels |
56 | | - RELEASE_TYPE="patch" # Default to patch |
57 | | - |
58 | | - if echo "$COMMIT_MESSAGES" | grep -q -e "BREAKING CHANGE:"; then |
| 56 | + PR_TITLE="${{ steps.get_merged_pr.outputs.title }}" |
| 57 | + echo "PR Title: $PR_TITLE" |
| 58 | + |
| 59 | + RELEASE_TYPE="patch" # Default release type |
| 60 | + if echo "$PR_TITLE" | grep -q "^BREAKING CHANGE:"; then |
59 | 61 | RELEASE_TYPE="major" |
60 | | - elif echo "$COMMIT_MESSAGES" | grep -q -e "feat!:"; then |
| 62 | + elif echo "$PR_TITLE" | grep -q "^feat!:"; then |
61 | 63 | RELEASE_TYPE="major" |
62 | | - elif echo "$COMMIT_MESSAGES" | grep -q -e "feat:"; then |
| 64 | + elif echo "$PR_TITLE" | grep -q "^feat:"; then |
63 | 65 | RELEASE_TYPE="minor" |
64 | | - elif echo "$COMMIT_MESSAGES" | grep -q -e "feat:" && (echo "$COMMIT_MESSAGES" | grep -q -e "fix:" || echo "$COMMIT_MESSAGES" | grep -q -e "enhancement:" || echo "$COMMIT_MESSAGES" | grep -q -e "docs:" || echo "$COMMIT_MESSAGES" | grep -q -e "refactor:" || echo "$COMMIT_MESSAGES" | grep -q -e "chore:"); then |
65 | | - RELEASE_TYPE="minor" |
66 | | - elif echo "$COMMIT_MESSAGES" | grep -q -e "fix:" -e "enhancement:" -e "docs:" -e "refactor:" -e "chore:" -e "build:" -e "ci:" -e "perf:" -e "style:" -e "test:" -e "chore(deps):" -e "chore(deps-dev):"; then |
| 66 | + else |
67 | 67 | RELEASE_TYPE="patch" |
68 | 68 | fi |
69 | | - |
70 | | - echo "Release Type: $RELEASE_TYPE" |
| 69 | + |
| 70 | + echo "Determined Release Type: $RELEASE_TYPE" |
71 | 71 | echo "::set-output name=release_type::$RELEASE_TYPE" |
72 | 72 |
|
73 | 73 | # Bump the version based on the determined release type |
|
0 commit comments