Scott scottc943 alamin655 commited on
Commit
a92550e
β€’
1 Parent(s): 669e365

πŸ‘· GitHub action to automate release based on semantic versioning (#499)

Browse files

* ci: add release.yml to help automate release versions

* ci: add release.yml to help automate release versions - edited file further to cover edge cases

* ci: add release.yml to help automate release versions - I had a typo in a line which pointed at a different variable

* ci: add release.yml to help automate release versions - Fixing the release portion to prepend a v

* ci: add release.yml to help automate release versions. Lowercased V so it looks like v1.1.0 instead of V1.1.0

* ci: changing structure of release.yml to be easier to understand

* ci: #minor changes made

* ci: #minor changes made to make rolling and stable both release branches

* ci: #minor changes to hopefully turn off pre-release

* ci: #minor change - trying to make pre-release suffic set to nothing

* ci: #minor change - removed older release action for a better up to date one

* ci: #minor change

* ci: #minor change to fixed the pre-release issue

* ci: #minor change to fixed the pre-release issue again

* ci: #minor change to fixed the pre-release issue again2

* ci: changed action for tag. I believe it was causing errors

* ci: missing }

* ci: testing some things

* ci: fixing self inflicted error where I forgot to put an ID in

* ci: fixing to make the release branch rolling

* major: testing updating major

* BREAKING CHANGE: removed changelog action

* ci: reset commit and removed changelog

* ci: changed action for tag. I believe it was causing errors

* ci: missing }

* ci: testing some things

* ci: fixing self inflicted error where I forgot to put an ID in

* ci: fixing to make the release branch rolling

* ci: reset commit and removed changelog

* ci: added step to change Cargo.toml app version to the latest tag version without the v

* ci: using echo and double quotes in the appversion variable. Testing now

* ci: testing autocommit

* Apply automatic changes

* ci: testing autocommit further

* ci: testing autocommit: removing tagging since it creates another tag instead of using that tag

* Apply automatic changes

* ci: testing autocommit with branch protection and doing a PR to rolling

* Apply automatic changes

* ci: testing PR create and merge - removed the if that was causing it not to run

* ci: testing PR create and merge - removed the if that was causing it not to run

* Apply automatic changes

* ci: testing PR create and merge - fixed permission issues

* ci: testing PR create and merge - fixed permission issues

* Apply automatic changes

* ci: testing PR create and merge - potentially fixed PR issue

* Apply automatic changes

* ci: testing PR create and merge - potentially fixed PR issue2

* ci: testing PR create and merge - potentially fixed PR issue + fixing what branch it targets

* ci: testing PR create and merge - testing PAT

* ci: testing PR create and merge - testing to see if merge loop stops

* ci: adding in cargo.toml version in auto git commit

* Update Cargo.toml

Co-authored-by: alamin655 <[email protected]>

* ci: adding in steps to regenerate the Cargo.lock file

* ci: adding in steps to regenerate the Cargo.lock file - fixing commit issue with cargo.toml

---------

Co-authored-by: scottc943 <[email protected]>
Co-authored-by: alamin655 <[email protected]>

Files changed (1) hide show
  1. .github/workflows/release.yml +72 -0
.github/workflows/release.yml ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Bump release version
2
+ on:
3
+ pull_request:
4
+ branches: [rolling]
5
+ types:
6
+ - closed
7
+
8
+ permissions:
9
+ contents: write
10
+ pull-requests: write
11
+ repository-projects: write
12
+
13
+ concurrency: production
14
+
15
+ jobs:
16
+ build:
17
+ name: bump tag version and release
18
+ if: github.event.pull_request.merged == true
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - name: Checkout code
22
+ uses: actions/checkout@v4
23
+ with:
24
+ ref: ${{ github.sha }}
25
+ fetch-depth: 0
26
+ - name: Bump version and push tag
27
+ id: version-bump
28
+ uses: hennejg/[email protected]
29
+ with:
30
+ github_token: ${{ secrets.GITHUB_TOKEN }}
31
+ release_branches: rolling
32
+ - name: create branch
33
+ uses: peterjgrainger/[email protected]
34
+ env:
35
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
36
+ with:
37
+ branch: update-from-${{ github.sha }}
38
+ - name: update cargo.toml
39
+ run: |
40
+ appversion=$(echo "${{ steps.version-bump.outputs.new_tag }}" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
41
+ sed -i -e "s/^version = .*/version = \"$appversion\"/" Cargo.toml
42
+ - run: rustup toolchain install stable --profile minimal
43
+ - run: rustup update stable && rustup default stable
44
+ - name: regenerate cargo.lock
45
+ run: cargo generate-lockfile
46
+ - name: auto commit
47
+ uses: stefanzweifel/git-auto-commit-action@v5
48
+ with:
49
+ commit_message: "[skip ci] updating app version to ${{ steps.version-bump.outputs.new_tag }}"
50
+ branch: update-from-${{ github.sha }}
51
+ # create PR using GitHub CLI
52
+ - name: create PR with update info
53
+ id: create-pr
54
+ run: gh pr create --base rolling --head update-from-${{ github.sha }} --title 'Merge new update into rolling' --body 'Created by Github action'
55
+ env:
56
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57
+ # merge PR using GitHub CLI
58
+ - name: merge PR with update info
59
+ id: merge-pr
60
+ run: gh pr merge --admin --merge --subject 'Merge update info' --delete-branch
61
+ env:
62
+ GH_TOKEN: ${{ secrets.ADMIN_RIGHTS_TOKEN }}
63
+ - name: Create Release
64
+ uses: softprops/action-gh-release@v1
65
+ with:
66
+ token: ${{ secrets.GITHUB_TOKEN }}
67
+ generate_release_notes: true
68
+ name: ${{ steps.version-bump.outputs.new_tag }}
69
+ tag_name: ${{ steps.version-bump.outputs.new_tag }}
70
+ prerelease: false
71
+ env:
72
+ GITHUB_REPOSITORY: ${{ github.repository }}