1
- name : Bump Version
1
+ name : Bump Version, Create Changlog, Create Tag
2
2
3
3
on :
4
4
workflow_dispatch :
5
-
6
5
7
6
concurrency :
8
- group : " ${{ github.ref }}_tag "
9
- cancel-in-progress : true
7
+ group : " ${{ github.ref }}_bump "
8
+ cancel-in-progress : false
10
9
11
10
env :
12
- GITHUB_TOKEN : ${{ secrets.CI_BOT_PAT }}
11
+ VERSION_FILE : " Configuration/Version.xcconfig"
12
+
13
+ GITHUB_USERNAME : " nthState-bot"
13
14
14
15
jobs :
15
- bumpandtag :
16
- name : Nightly Tag Build
17
- runs-on : self-hosted
18
- timeout-minutes : 30
19
- defaults :
20
- run :
21
- working-directory : ./ios
16
+ bumpchangelogtag :
17
+ name : Bump Version, Create Changlog, Create Tag
18
+ runs-on : ubuntu-latest
19
+ timeout-minutes : 3
22
20
steps :
23
21
24
22
- name : Checkout
25
23
uses : actions/checkout@v3
26
24
with :
27
25
fetch-depth : 0
28
- token : ${{ secrets.CI_BOT_PAT }}
26
+ token : ${{ secrets.ORG_BOT_PAT }}
29
27
30
28
- name : Find version, build number and update
31
29
run : |
32
30
# Find build number and increment
33
- CURRENT_PROJECT_VERSION=$(grep -w "CURRENT_PROJECT_VERSION" "Configuration/Version.xcconfig " | cut -d'=' -f2 | tr -d ' ')
31
+ CURRENT_PROJECT_VERSION=$(grep -w "CURRENT_PROJECT_VERSION" "${{ env.VERSION_FILE }} " | cut -d'=' -f2 | tr -d ' ')
34
32
((CURRENT_PROJECT_VERSION+=1))
35
- sed -i '' "s/\(CURRENT_PROJECT_VERSION *= *\).*/\1$CURRENT_PROJECT_VERSION/" "Configuration/Version.xcconfig "
33
+ sed -i "s/\(CURRENT_PROJECT_VERSION *= *\).*/\1$CURRENT_PROJECT_VERSION/" "${{ env.VERSION_FILE }} "
36
34
37
35
# Find version number
38
- MARKETING_VERSION=$(grep -w "MARKETING_VERSION" "Configuration/Version.xcconfig " | cut -d'=' -f2 | tr -d ' ')
36
+ MARKETING_VERSION=$(grep -w "MARKETING_VERSION" "${{ env.VERSION_FILE }} " | cut -d'=' -f2 | tr -d ' ')
39
37
40
38
NEW_TAG="v$MARKETING_VERSION+$CURRENT_PROJECT_VERSION"
41
39
echo $NEW_TAG
42
40
43
41
echo "NEW_TAG=$NEW_TAG" >> $GITHUB_ENV
44
42
echo "BUILD_NUMBER=$CURRENT_PROJECT_VERSION" >> $GITHUB_ENV
45
43
44
+
45
+ - name : Setup Git user
46
+ run : |
47
+ git config --global user.email "${{ env.GITHUB_EMAIL }}"
48
+ git config --global user.name "${{ env.GITHUB_USERNAME }}"
49
+ git config --global --add --bool push.autoSetupRemote true
50
+
51
+ - name : Create tag
52
+ run : |
53
+ git tag ${{ env.NEW_TAG }}
54
+ git push origin ${{ env.NEW_TAG }}
55
+
56
+ - name : Create Branch
57
+ run : |
58
+ git checkout -b release/${{ env.NEW_TAG }}
59
+
46
60
- name : Commit build number
61
+ env :
62
+ GH_TOKEN : ${{ secrets.ORG_BOT_PAT }}
47
63
run : |
48
- git config --global user.email "${{ secrets.CI_BOT_EMAIL }}"
49
- git config --global user.name "${{ secrets.CI_BOT_NAME }}"
50
- git add "Configuration/Version.xcconfig"
51
- git commit -m "bump: Build Number for nightly build ${{ env.NEW_TAG }} [skip ci]" || echo "No changes to commit"
52
- git push
64
+ git checkout release/${{ env.NEW_TAG }}
65
+ git add "${{ env.VERSION_FILE }}"
66
+ git commit -m "bump: Build Number to build ${{ env.NEW_TAG }} [skip ci]" || echo "No changes to commit"
67
+ git push
68
+ git checkout main
69
+ git pull
53
70
71
+ - name : Update CHANGELOG
72
+ id : changelog
73
+
74
+ with :
75
+ tag : ${{ env.NEW_TAG }}
76
+ excludeTypes : " "
77
+ includeInvalidCommits : true
78
+ token : ${{ secrets.ORG_BOT_PAT }}
79
+
80
+ - name : Delete tag
81
+ run : |
82
+ git tag -d ${{ env.NEW_TAG }}
83
+ git push --delete origin ${{ env.NEW_TAG }}
84
+
85
+ - name : Show whats new
86
+ run : |
87
+ echo "${{ steps.changelog.outputs.changes }}"
88
+
89
+ - name : Commit CHANGELOG.md
90
+ env :
91
+ GH_TOKEN : ${{ secrets.ORG_BOT_PAT }}
92
+ run : |
93
+ git checkout release/${{ env.NEW_TAG }}
94
+ git add "CHANGELOG.md"
95
+ git commit -m "docs: update CHANGELOG.md for ${{ env.NEW_TAG }} [skip ci]" || echo "No changes to commit"
96
+ git push
97
+
98
+ - name : Create PR
99
+ env :
100
+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
101
+ run : |
102
+ PR_URL=$(gh pr create --base main --head release/${{ env.NEW_TAG }} --title "build: release/${{ env.NEW_TAG }}" --body "BOT: build: release/${{ env.NEW_TAG }}")
103
+ echo $PR_URL
104
+ echo "PR_URL=$PR_URL" >> $GITHUB_ENV
105
+
106
+ - name : Approve PR
107
+ env :
108
+ GH_TOKEN : ${{ secrets.ORG_BOT_PAT }}
109
+ run : |
110
+ gh pr review --approve ${{ env.PR_URL }}
111
+
112
+ - name : Merge PR
113
+ env :
114
+ GH_TOKEN : ${{ secrets.ORG_BOT_PAT }}
115
+ run : |
116
+ #gh pr merge --squash ${{ env.PR_URL }}
117
+
54
118
- name : Create tag
55
119
run : |
120
+ git checkout main
121
+ git pull
56
122
git tag ${{ env.NEW_TAG }}
57
123
git push origin ${{ env.NEW_TAG }}
58
124
59
- outputs :
60
- NEW_TAG : ${{ env.NEW_TAG }}
61
- BUILD_NUMBER : ${{ env.BUILD_NUMBER }}
125
+ - name : Create Release
126
+ uses : softprops/action-gh-release@v1
127
+ with :
128
+ tag_name : ${{ env.NEW_TAG }}
129
+ draft : false
130
+ name : ${{ env.NEW_TAG }}
131
+ body : ${{ steps.changelog.outputs.changes }}
132
+ token : ${{ secrets.ORG_BOT_PAT }}
62
133
134
+ - name : Revert on failure
135
+ if : ${{ failure() }}
136
+ run : |
137
+ git checkout main
138
+ git tag -d ${{ env.NEW_TAG }}
139
+ git push --delete origin ${{ env.NEW_TAG }}
140
+ git branch -D release/${{ env.NEW_TAG }}
141
+ git push origin --delete release/${{ env.NEW_TAG }}
63
142
64
- createrelease :
65
- needs : bumpandtag
66
- uses : ./.github/workflows/build-create-release.yml
67
- secrets : inherit
68
- with :
69
- tag_name : ${{ needs.bumpandtag.outputs.NEW_TAG }}
70
- build_number : ${{ needs.bumpandtag.outputs.BUILD_NUMBER }}
143
+
0 commit comments