|
1 | 1 | name: Release gem |
2 | 2 |
|
3 | 3 | on: |
4 | | - push: |
5 | | - tags: |
6 | | - - '*' |
| 4 | + workflow_dispatch: |
7 | 5 |
|
8 | 6 | permissions: |
9 | 7 | contents: read |
@@ -31,35 +29,37 @@ jobs: |
31 | 29 | bundler-cache: true |
32 | 30 | ruby-version: ruby |
33 | 31 |
|
34 | | - # Release |
35 | | - - name: Release |
| 32 | + # Read version from version.rb |
| 33 | + - name: Get version |
| 34 | + id: version |
36 | 35 | run: | |
37 | | - # Writing version.rb changes the Gemfile.lock which |
38 | | - # halts subsequent rake tasks when in frozen mode |
39 | | - bundle config set frozen false |
40 | | - bin/rake gem:write_version[${{ github.ref_name }}] |
| 36 | + version=$(ruby -r ./lib/bonchi/version -e 'puts Bonchi::VERSION') |
| 37 | + echo "version=$version" >> "$GITHUB_OUTPUT" |
| 38 | +
|
| 39 | + # Release |
41 | 40 | - uses: rubygems/release-gem@1c162a739e8b4cb21a676e97b087e8268d8fc40b # v1.1.2 |
42 | | - - name: Create GitHub release |
| 41 | + |
| 42 | + - name: Create tag and GitHub release |
43 | 43 | run: | |
44 | | - version="${{ github.ref_name }}" |
| 44 | + version="${{ steps.version.outputs.version }}" |
45 | 45 | dot_count=$(echo "$version" | tr -cd '.' | wc -c) |
46 | | - anchor="${version//./}" |
| 46 | +
|
| 47 | + git tag "$version" |
| 48 | + git push origin "$version" |
47 | 49 |
|
48 | 50 | read -r -d '' notes <<EOF || true |
49 | 51 | ## ✨ Bonchi ${version} 🌳 |
50 | 52 | A git worktree manager. |
51 | 53 |
|
52 | 54 | **Rubygems**: https://rubygems.org/gems/bonchi/versions/${version} |
53 | | - **Changelog**: https://github.com/eval/bonchi/blob/main/CHANGELOG.md#${anchor} |
| 55 | + **Changelog**: https://github.com/eval/bonchi/blob/main/CHANGELOG.md#${version//./} |
54 | 56 | EOF |
55 | 57 |
|
56 | | - prerelease_flag="" |
57 | 58 | if [[ "$dot_count" -gt 2 ]]; then |
58 | | - gh release create "$version" --prerelease --verify-tag --generate-notes |
| 59 | + gh release create "$version" --prerelease --generate-notes |
59 | 60 | else |
60 | | - gh release create "$version" --verify-tag --generate-notes --notes "$notes" |
| 61 | + gh release create "$version" --generate-notes --notes "$notes" |
61 | 62 | fi |
62 | 63 |
|
63 | 64 | env: |
64 | | - # classic token (https://github.com/settings/tokens) with repo-scope |
65 | 65 | GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
0 commit comments