Skip to content

Commit c1be033

Browse files
Merge pull request #358 from ruby/katei/support-gem
Support RubyGems / Bundler
2 parents 81b72e3 + 7d551b0 commit c1be033

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+4095
-488
lines changed

.github/workflows/build.yml

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ jobs:
7575
entries: ${{ steps.set-matrix.outputs.entries }}
7676
steps:
7777
- uses: actions/checkout@v4
78+
- uses: ruby/setup-ruby@v1
79+
with:
80+
ruby-version: "3.2"
81+
bundler-cache: true
7882
- run: rake ci:pin_build_manifest
7983
env:
8084
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -112,18 +116,33 @@ jobs:
112116
load: true
113117
cache-from: type=gha
114118
cache-to: type=gha,mode=max
115-
- uses: ruby/setup-ruby@v1
116-
with:
117-
ruby-version: "3.2"
118-
bundler-cache: true
119-
- run: ./bin/setup
119+
- name: Setup builder container
120+
run: |
121+
docker run -dit -v "$GITHUB_WORKSPACE:/home/me/build" -w /home/me/build \
122+
-e "ENABLE_GITHUB_ACTIONS_MARKUP=true" \
123+
-e "RUBYWASM_UID=$(id -u)" -e "RUBYWASM_GID=$(id -g)" \
124+
-e "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" \
125+
--name builder \
126+
${{ steps.builder-image.outputs.imageid }} /bin/sh
127+
echo 'docker exec -u me builder "$@"' > ./build-exec
128+
chmod +x ./build-exec
129+
- run: ./build-exec bundle config set --local without check
130+
- run: ./build-exec ./bin/setup
131+
- run: ./build-exec bundle exec rake compile
120132
- name: Pre-release configuration
121-
run: rake ${{ matrix.entry.prerelease }}[${{ inputs.prerel_name }}]
133+
run: ./build-exec bundle exec rake ${{ matrix.entry.prerelease }}[${{ inputs.prerel_name }}]
122134
if: ${{ inputs.prerel_name != '' && matrix.entry.prerelease != '' }}
123135
- name: rake ${{ matrix.entry.task }}
124-
run: docker run -v "$GITHUB_WORKSPACE:/home/me/build" -w /home/me/build -e "ENABLE_GITHUB_ACTIONS_MARKUP=true" -e "RUBYWASM_UID=$(id -u)" -e "RUBYWASM_GID=$(id -g)" -e "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" ${{ steps.builder-image.outputs.imageid }} rake --verbose ${{ matrix.entry.task }}
136+
run: ./build-exec rake --verbose ${{ matrix.entry.task }}
137+
- uses: ruby/setup-ruby@v1
138+
if: ${{ matrix.entry.test != '' }}
139+
with:
140+
ruby-version: "3.2"
141+
bundler-cache: false
125142
- name: rake ${{ matrix.entry.test }}
126-
run: rake ${{ matrix.entry.test }}
143+
run: |
144+
bundle install --with=check --without=development
145+
rake ${{ matrix.entry.test }}
127146
if: ${{ matrix.entry.test != '' }}
128147
- uses: actions/upload-artifact@v4
129148
if: ${{ matrix.entry.artifact }}

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,16 @@ dist
33
/build
44
/rubies
55
/release
6+
/tmp
7+
/target
68
/Gemfile.lock
9+
/lib/ruby_wasm/ruby_wasm.so
710

811
.cache
912
compile_commands.json
1013

1114
html
1215

1316
build_manifest.json
17+
18+
vendor/bundle

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ To select a build profile, see [profiles section in README](https://github.com/r
4646

4747
```console
4848
# Build only a specific combination of ruby version, profile, and target
49-
$ rake build:head-wasm32-unknown-wasi-full-js
49+
$ rake build:head-wasm32-unknown-wasi-full
5050
# Clean up the build directory
51-
$ rake build:head-wasm32-unknown-wasi-full-js:clean
51+
$ rake build:head-wasm32-unknown-wasi-full:clean
5252
# Force to re-execute "make install"
53-
$ rake build:head-wasm32-unknown-wasi-full-js:remake
53+
$ rake build:head-wasm32-unknown-wasi-full:remake
5454

5555
# Output is in the `rubies` directory
5656
$ tree -L 3 rubies/head-wasm32-unknown-wasi-full-js

0 commit comments

Comments
 (0)