summaryrefslogtreecommitdiff
path: root/.github/workflows/wasm.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/wasm.yml')
-rw-r--r--.github/workflows/wasm.yml88
1 files changed, 54 insertions, 34 deletions
diff --git a/.github/workflows/wasm.yml b/.github/workflows/wasm.yml
index ad7ea13cbf..f0263de5ef 100644
--- a/.github/workflows/wasm.yml
+++ b/.github/workflows/wasm.yml
@@ -3,7 +3,7 @@ on:
push:
paths-ignore:
- 'doc/**'
- - '**/man'
+ - '**/man/*'
- '**.md'
- '**.rdoc'
- '**/.document'
@@ -11,7 +11,7 @@ on:
pull_request:
paths-ignore:
- 'doc/**'
- - '**/man'
+ - '**/man/*'
- '**.md'
- '**.rdoc'
- '**/.document'
@@ -43,28 +43,32 @@ jobs:
env:
RUBY_TESTOPTS: '-q --tty=no'
GITPULLOPTIONS: --no-tags origin ${{ github.ref }}
- WASI_SDK_VERSION_MAJOR: 20
+ WASI_SDK_VERSION_MAJOR: 25
WASI_SDK_VERSION_MINOR: 0
BINARYEN_VERSION: 113
WASMTIME_VERSION: v15.0.0
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-22.04
if: >-
${{!(false
|| contains(github.event.head_commit.message, '[DOC]')
- || contains(github.event.head_commit.message, 'Documentation')
|| contains(github.event.pull_request.title, '[DOC]')
- || contains(github.event.pull_request.title, 'Documentation')
|| contains(github.event.pull_request.labels.*.name, 'Documentation')
- || (github.event_name == 'push' && github.actor == 'dependabot[bot]')
+ || (github.event.pull_request.user.login == 'dependabot[bot]')
)}}
steps:
- - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
+ - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
sparse-checkout-cone-mode: false
sparse-checkout: /.github
+ persist-credentials: false
+
+ - uses: ruby/setup-ruby@afeafc3d1ab54a631816aba4c914a0081c12ff2f # v1.310.0
+ with:
+ ruby-version: '3.1'
+ bundler: none
- uses: ./.github/actions/setup/directories
with:
@@ -78,7 +82,7 @@ jobs:
sudo apt-get update -q || :
sudo apt-get install --no-install-recommends -q -y ruby make autoconf git wget
- wasi_sdk_deb="wasi-sdk_${WASI_SDK_VERSION_MAJOR}.${WASI_SDK_VERSION_MINOR}_amd64.deb"
+ wasi_sdk_deb="wasi-sdk-${WASI_SDK_VERSION_MAJOR}.${WASI_SDK_VERSION_MINOR}-x86_64-linux.deb"
wget "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION_MAJOR}/${wasi_sdk_deb}"
sudo dpkg -i "$wasi_sdk_deb"
rm -f "$wasi_sdk_deb"
@@ -100,34 +104,50 @@ jobs:
run: |
echo "WASI_SDK_PATH=/opt/wasi-sdk" >> $GITHUB_ENV
- - uses: ruby/setup-ruby@5f19ec79cedfadb78ab837f95b87734d0003c899 # v1.173.0
+ - uses: ./.github/actions/setup/baseruby
+ id: baseruby
with:
- ruby-version: '3.0'
- bundler: none
+ srcdir: src
- - name: Build baseruby
+ - name: Download config.guess with wasi version
run: |
- set -ex
- mkdir ../baseruby
- pushd ../baseruby
- ../src/configure --prefix=$PWD/install
- make
- make install
+ rm tool/config.guess tool/config.sub
+ ruby tool/downloader.rb -d tool -e gnu config.guess config.sub
+ working-directory: src
- name: Run configure
- run: |
- ../src/configure \
- --host wasm32-unknown-wasi \
- --with-baseruby=$PWD/../baseruby/install/bin/ruby \
- --with-static-linked-ext \
- --with-ext=cgi/escape,continuation,coverage,date,digest/bubblebabble,digest,digest/md5,digest/rmd160,digest/sha1,digest/sha2,etc,fcntl,json,json/generator,json/parser,objspace,pathname,rbconfig/sizeof,ripper,stringio,strscan,monitor \
- LDFLAGS=" \
- -Xlinker --stack-first \
- -Xlinker -z -Xlinker stack-size=16777216 \
- " \
- optflags="${{ matrix.entry.optflags }}" \
- debugflags="${{ matrix.entry.debugflags }}" \
- wasmoptflags="${{ matrix.entry.wasmoptflags }} ${{ matrix.entry.debugflags }}"
+ run: >-
+ ../src/configure
+ --host wasm32-unknown-wasi
+ --with-baseruby="${{ steps.baseruby.outputs.ruby }}"
+ --with-dump-ast="${{ steps.baseruby.outputs.dump_ast }}"
+ --with-static-linked-ext
+ --with-ext=${EXTS// /,}
+ LDFLAGS="
+ -Xlinker --stack-first
+ -Xlinker -z -Xlinker stack-size=16777216
+ "
+ optflags="${{ matrix.entry.optflags }}"
+ debugflags="${{ matrix.entry.debugflags }}"
+ wasmoptflags="${{ matrix.entry.wasmoptflags }} ${{ matrix.entry.debugflags }}"
+ env:
+ EXTS:
+ cgi/escape
+ continuation
+ coverage
+ date
+ digest
+ digest/*
+ erb/escape
+ etc
+ fcntl
+ json
+ json/*
+ objspace
+ rbconfig/sizeof
+ ripper
+ stringio
+ strscan
# miniruby may not be built when cross-compling
- run: make mini ruby
@@ -136,7 +156,7 @@ jobs:
- run: tar cfz ../install.tar.gz -C ../install .
- name: Upload artifacts
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ruby-wasm-install
path: ${{ github.workspace }}/install.tar.gz
@@ -164,7 +184,7 @@ jobs:
- name: Save Pull Request number
if: ${{ github.event_name == 'pull_request' }}
run: echo "${{ github.event.pull_request.number }}" >> ${{ github.workspace }}/github-pr-info.txt
- - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: ${{ github.event_name == 'pull_request' }}
with:
name: github-pr-info