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

ruby-changes:58473

From: Nobuyoshi <ko1@a...>
Date: Mon, 28 Oct 2019 22:06:19 +0900 (JST)
Subject: [ruby-changes:58473] 6e0b40af3d (master): Try out-of-place build

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

From 6e0b40af3da4941b618f018b2c04cee0110ce50c Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Mon, 28 Oct 2019 18:31:00 +0900
Subject: Try out-of-place build


diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index f958607..941abd5 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -21,10 +21,14 @@ jobs: https://github.com/ruby/ruby/blob/trunk/.github/workflows/macos.yml#L21
           sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
       # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork.
       - name: Checkout ruby/ruby
-        run: git clone --depth=50 https://github.com/ruby/ruby . && git reset --hard "$GITHUB_SHA"
+        run: |
+          git clone --depth=50 https://github.com/ruby/ruby src
+          git -C src reset --hard "$GITHUB_SHA"
         if: github.event_name == 'push'
       - name: Checkout a pull request
-        run: git clone --depth=50 "--branch=$GITHUB_BRANCH" "https://github.com/${GITHUB_REPO}" . && git reset --hard "$GITHUB_REV"
+        run: |
+          git clone --depth=50 "--branch=$GITHUB_BRANCH" "https://github.com/${GITHUB_REPO}" src
+          git -C src reset --hard "$GITHUB_REV"
         env:
           GITHUB_REV: ${{ github.event.pull_request.head.sha }}
           GITHUB_BRANCH: ${{ github.event.pull_request.head.ref }}
@@ -33,28 +37,36 @@ jobs: https://github.com/ruby/ruby/blob/trunk/.github/workflows/macos.yml#L37
       - name: Install libraries
         run: |
           export WAITS='5 60'
+          cd src
           tool/travis_retry.sh brew update
           tool/travis_retry.sh brew install gdbm gmp libffi openssl@1... zlib autoconf automake libtool readline
       - name: Set ENV
         run: |
           echo '##[set-env name=JOBS]'-j$((1 + $(sysctl -n hw.activecpu)))
-      - run: autoconf
-      - name: configure
-        run: ./configure -C --disable-install-doc --with-openssl-dir=$(brew --prefix openssl@1...) --with-readline-dir=$(brew --prefix readline)
-      - run: make $JOBS
+      - name: Autoconf
+        run: |
+          cd src
+          autoconf
+      - name: Configure
+        run: |
+          mkdir build
+          cd build
+          ../src/configure -C --disable-install-doc --with-openssl-dir=$(brew --prefix openssl@1...) --with-readline-dir=$(brew --prefix readline)
+      - name: Make
+        run: make -C build $JOBS
       - name: Tests
-        run: make -s ${{ matrix.test_task }} TESTOPTS="$JOBS -q --tty=no"
+        run: make -C build -s ${{ matrix.test_task }} TESTOPTS="$JOBS -q --tty=no"
         env:
           MSPECOPT: "-ff" # not using `-j` because sometimes `mspec -j` silently dies
         if: matrix.test_task != 'test-bundled-gems'
       - name: Tests (test-bundled-gems)
         # Remove minitest from TEST_BUNDLED_GEMS_ALLOW_FAILURES if https://github.com/seattlerb/minitest/pull/798 is resolved
-        run: make -s ${{ matrix.test_task }} TEST_BUNDLED_GEMS_ALLOW_FAILURES=minitest
+        run: make -C build -s ${{ matrix.test_task }} TEST_BUNDLED_GEMS_ALLOW_FAILURES=minitest
         env:
           RUBY_TESTOPTS: "-q --tty=no"
         if: matrix.test_task == 'test-bundled-gems'
       - name: Leaked Globals
-        run: make -s leaked-globals
+        run: make -C build -s leaked-globals
       - uses: k0kubun/action-slack@v...
         with:
           payload: |
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index f9e5b97..258de09 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -49,10 +49,14 @@ jobs: https://github.com/ruby/ruby/blob/trunk/.github/workflows/ubuntu.yml#L49
           sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev bison autoconf ruby
       # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork.
       - name: Checkout ruby/ruby
-        run: git clone --depth=50 https://github.com/ruby/ruby . && git reset --hard "$GITHUB_SHA"
+        run: |
+          git clone --depth=50 https://github.com/ruby/ruby src
+          git -C src reset --hard "$GITHUB_SHA"
         if: github.event_name == 'push'
       - name: Checkout a pull request
-        run: git clone --depth=50 "--branch=$GITHUB_BRANCH" "https://github.com/${GITHUB_REPO}" . && git reset --hard "$GITHUB_REV"
+        run: |
+          git clone --depth=50 "--branch=$GITHUB_BRANCH" "https://github.com/${GITHUB_REPO}" src
+          git -C src reset --hard "$GITHUB_REV"
         env:
           GITHUB_REV: ${{ github.event.pull_request.head.sha }}
           GITHUB_BRANCH: ${{ github.event.pull_request.head.ref }}
@@ -65,23 +69,28 @@ jobs: https://github.com/ruby/ruby/blob/trunk/.github/workflows/ubuntu.yml#L69
       - name: Set ENV
         run: |
           echo '##[set-env name=JOBS]'-j$((1 + $(nproc --all)))
-      - run: autoconf
+      - name: Autoconf
+        run: cd src && exec autoconf
       - name: configure
-        run: ./configure -C --disable-install-doc
-      - run: make $JOBS
+        run: |
+          mkdir build
+          cd build
+          ../src/configure -C --disable-install-doc
+      - name: Make
+        run: make -C build $JOBS
       - name: Tests
-        run: make -s ${{ matrix.test_task }} TESTOPTS="$JOBS -q --tty=no"
+        run: make -C build -s ${{ matrix.test_task }} TESTOPTS="$JOBS -q --tty=no"
         env:
           MSPECOPT: "-ff" # not using `-j` because sometimes `mspec -j` silently dies
         if: matrix.test_task != 'test-bundled-gems'
       - name: Tests (test-bundled-gems)
         # Remove minitest from TEST_BUNDLED_GEMS_ALLOW_FAILURES if https://github.com/seattlerb/minitest/pull/798 is resolved
-        run: make -s ${{ matrix.test_task }} TEST_BUNDLED_GEMS_ALLOW_FAILURES=minitest
+        run: make -C build -s ${{ matrix.test_task }} TEST_BUNDLED_GEMS_ALLOW_FAILURES=minitest
         env:
           RUBY_TESTOPTS: "-q --tty=no"
         if: matrix.test_task == 'test-bundled-gems'
       - name: Leaked Globals
-        run: make -s leaked-globals
+        run: make -C build -s leaked-globals
       - name: Debug GitHub context
         run: echo "$GITHUB_CONTEXT"
         env:
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 6dee27e..f0e65d0 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -31,29 +31,33 @@ jobs: https://github.com/ruby/ruby/blob/trunk/.github/workflows/windows.yml#L31
       # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork.
       - name: Checkout ruby/ruby
         run: |
-          git clone --depth=50 https://github.com/ruby/ruby .
-          git reset --hard ${{ github.sha }}
+          git clone --depth=50 https://github.com/ruby/ruby src
+          git -C src reset --hard ${{ github.sha }}
         if: github.event_name == 'push'
       - name: Checkout a pull request
         run: |
-          git clone --depth=50 --branch=${{ github.event.pull_request.head.ref }} https://github.com/${{ github.event.pull_request.head.repo.full_name }} .
-          git reset --hard ${{ github.event.pull_request.head.sha }}
+          git clone --depth=50 --branch=${{ github.event.pull_request.head.ref }} https://github.com/${{ github.event.pull_request.head.repo.full_name }} src
+          git -C src reset --hard ${{ github.event.pull_request.head.sha }}
         if: github.event_name == 'pull_request'
-      - name: configure
+      - name: Configure
         run: |
+          md build
+          cd build
           call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
-          win32/configure.bat --disable-install-doc --without-ext=+,dbm,gdbm --enable-bundled-libffi --with-opt-dir=C:/vcpkg/installed/x64-windows
+          ../src/win32/configure.bat --disable-install-doc --without-ext=+,dbm,gdbm --enable-bundled-libffi --with-opt-dir=C:/vcpkg/installed/x64-windows
         shell: cmd
       - name: nmake
         run: |
           call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
           set YACC=win_bison
+          cd build
           nmake up
           nmake
         shell: cmd
       - name: nmake test
         run: |
           call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
+          cd build
           nmake ${{ matrix.test_task }}
         shell: cmd
       - uses: k0kubun/action-slack@v...
-- 
cgit v0.10.2


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

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