[前][次][番号順一覧][スレッド一覧]

ruby-changes:69642

From: Nobuyoshi <ko1@a...>
Date: Mon, 8 Nov 2021 18:53:00 +0900 (JST)
Subject: [ruby-changes:69642] a64f7e9c00 (master): Try 32bit environment

https://git.ruby-lang.org/ruby.git/commit/?id=a64f7e9c00

From a64f7e9c0077c970c184f98f67094202a41e02cf Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Mon, 8 Nov 2021 08:58:09 +0900
Subject: Try 32bit environment

---
 .github/workflows/ubuntu.yml | 40 +++++++++++++++++++++++++++++-----------
 1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index 839305e3f41..0c41af302e9 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -21,6 +21,9 @@ jobs: https://github.com/ruby/ruby/blob/trunk/.github/workflows/ubuntu.yml#L21
 #         - ubuntu-18.04
         configure: ["", "cppflags=-DRUBY_DEBUG"]
         include:
+          - test_task: "check"
+            os: ubuntu-20.04
+            configure: "--host=i686-$OSTYPE"
           - test_task: "test-all TESTS=--repeat-count=2"
             os: ubuntu-20.04
             configure: ""
@@ -32,11 +35,25 @@ jobs: https://github.com/ruby/ruby/blob/trunk/.github/workflows/ubuntu.yml#L35
     steps:
       - run: mkdir build
         working-directory:
+      - name: Set ENV
+        env:
+          configure: ${{matrix.configure}}
+        run: |
+          echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
+          arch=`echo " $configure" | sed '/.* --host=/!d;s///;s/[- ].*//'`
+          echo "SETARCH=${arch:+setarch $arch}" >> $GITHUB_ENV
       - name: Install libraries
         run: |
           set -x
+          arch="${SETARCH##* }"
+          arch=${arch:+:${arch/i[3-6]86/i386}}
+          ${arch:+sudo dpkg --add-architecture ${arch#:}}
           sudo apt-get update -q || :
-          sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
+          sudo apt-get install --no-install-recommends -q -y \
+          ${arch:+cross}build-essential${arch/:/-} \
+          libssl-dev${arch} libyaml-dev${arch} libreadline6-dev${arch} \
+          zlib1g-dev${arch} libncurses5-dev${arch} libffi-dev${arch} \
+          bison autoconf ruby
       - name: git config
         run: |
           git config --global advice.detachedHead 0
@@ -49,24 +66,25 @@ jobs: https://github.com/ruby/ruby/blob/trunk/.github/workflows/ubuntu.yml#L66
           chmod -v go-w $HOME $HOME/.config
           sudo chmod -R go-w /usr/share
           sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
-      - name: Set ENV
-        run: |
-          echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
       - run: ./autogen.sh
         working-directory: src
       - name: Run configure
-        run: ../src/configure -C --disable-install-doc ${{ matrix.configure }}
-      - run: make incs
-      - run: make
-      - run: make leaked-globals
+        env:
+          arch: ${{matrix.arch}}
+        run: >-
+          $SETARCH ../src/configure -C --disable-install-doc ${{ matrix.configure }}
+          ${arch:+--target=$arch-$OSTYPE --host=$arch-$OSTYPE}
+      - run: $SETARCH make incs
+      - run: $SETARCH make
+      - run: $SETARCH make leaked-globals
         if: ${{ matrix.test_task == 'check' }}
-      - run: make prepare-gems
+      - run: $SETARCH make prepare-gems
         if: ${{ matrix.test_task == 'check' }}
       - name: Create dummy files in build dir
         run: |
-          ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
+          $SETARCH ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
         if: ${{ matrix.test_task == 'check' }}
-      - run: make -s ${{ matrix.test_task }}
+      - run: $SETARCH make -s ${{ matrix.test_task }}
         timeout-minutes: 40
         env:
           RUBY_TESTOPTS: "-q --tty=no"
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]