Skip to content

Commit 4fbc32d

Browse files
committed
Add build & push GitHub Actions workflow
1 parent c6f3933 commit 4fbc32d

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Build & push
2+
on:
3+
release:
4+
types: [published]
5+
jobs:
6+
build:
7+
name: Build the gem
8+
runs-on: ubuntu-latest
9+
outputs:
10+
gem-package-name: ${{ steps.name-setter.outputs.gem-package-name }}
11+
steps:
12+
- name: Checkout repository
13+
uses: actions/checkout@v4
14+
with:
15+
submodules: true
16+
- name: Set up Ruby
17+
uses: ruby/setup-ruby@v1
18+
with:
19+
ruby-version: 3.3
20+
bundler-cache: true
21+
- name: Set up CMake
22+
uses: lukka/get-cmake@latest
23+
- name: Build the gem
24+
run: gem build compact_enc_det.gemspec
25+
- name: Retrieve the gem version
26+
id: version-retreiver
27+
run: echo "gem-version=$(ruby -r ./lib/compact_enc_det/version.rb -e 'puts CompactEncDet::VERSION')" >> $GITHUB_OUTPUT
28+
- name: Set the gem package name
29+
id: name-setter
30+
run: echo "gem-package-name=compact_enc_det-${{ steps.version-retreiver.outputs.gem-version }}.gem" >> $GITHUB_OUTPUT
31+
- name: Upload the gem artifact
32+
uses: actions/upload-artifact@v4
33+
with:
34+
name: ${{ steps.name-setter.outputs.gem-package-name }}
35+
path: ${{ steps.name-setter.outputs.gem-package-name }}
36+
publish:
37+
name: Push the gem to RubyGems.org
38+
needs: build
39+
runs-on: ubuntu-latest
40+
steps:
41+
- name: Set up Ruby
42+
uses: ruby/setup-ruby@v1
43+
with:
44+
ruby-version: 3.3
45+
- name: Download the gem artifact
46+
uses: actions/download-artifact@v4
47+
with:
48+
name: ${{ needs.build.outputs.gem-package-name }}
49+
- name: Push to RubyGems.org
50+
env:
51+
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
52+
run: gem push ${{ needs.build.outputs.gem-package-name }}

0 commit comments

Comments
 (0)