11name : Build Gems
22on :
3+ pull_request :
34 push :
45 branches :
56 - main
1314 matrix :
1415 # TODO(cretz): Enable x64-mingw-ucrt if we can figure out Windows issue, see
1516 # https://github.com/temporalio/sdk-ruby/issues/172
16- rubyPlatform : ["aarch64-linux", "x86_64-linux", "arm64-darwin", "x86_64-darwin"]
17+ rubyPlatform : ["aarch64-linux", "aarch64-linux-musl", " x86_64-linux", "x86_64-linux-musl ", "arm64-darwin", "x86_64-darwin"]
1718 steps :
1819 - name : Checkout repository
1920 uses : actions/checkout@v4
8687 # https://github.com/temporalio/sdk-ruby/issues/172
8788 os : [ubuntu-latest, macos-intel, macos-latest]
8889 rubyVersion : ["3.2", "3.3", "3.4"]
90+ # Container defaults to empty/none, but additional container for Alpine
91+ # added later
92+ container : [""]
93+
8994 include :
9095 - os : ubuntu-latest
9196 rubyPlatform : x86_64-linux
9499 rubyPlatform : x86_64-darwin
95100 - os : macos-latest
96101 rubyPlatform : arm64-darwin
102+ - os : ubuntu-latest
103+ rubyVersion : " 3.3"
104+ container : alpine/git:latest
105+ rubyPlatform : x86_64-linux-musl
97106 runs-on : ${{ matrix.runsOn || matrix.os }}
107+ container : ${{ matrix.container }}
98108 steps :
99109 - name : Checkout repository
100110 uses : actions/checkout@v4
@@ -107,12 +117,19 @@ jobs:
107117 name : ${{ matrix.rubyPlatform }}-gem
108118 path : local-gem
109119
120+ # This only works on official runners
110121 - name : Setup Ruby
122+ if : ${{ matrix.container == '' }}
111123 uses : oxidize-rb/actions/setup-ruby-and-rust@v1
112124 with :
113125 ruby-version : " ${{ matrix.rubyVersion }}"
114126 bundler-cache : true
115127 cargo-cache : false
116128
129+ # Works for Alpine
130+ - name : Setup Ruby (Alpine)
131+ if : ${{ matrix.container == 'alpine/git:latest' }}
132+ run : apk add --no-cache ruby ruby-dev ruby-bundler build-base
133+
117134 - name : Run smoke test
118135 run : ruby ./temporalio/smoke_test/smoke_test_gem.rb 'local-gem/*-${{ matrix.rubyPlatform }}.gem'
0 commit comments