[Tarantool-patches] [PATCH luajit 4/8] ci: use out of source build in GitHub Actions
Sergey Bronnikov
sergeyb at tarantool.org
Mon Aug 15 15:13:55 MSK 2022
Igor, please see my comment below.
On 11.08.2022 14:17, Igor Munkin wrote:
> Use out of source build configuration for LuaJIT testing jobs in all
> GitHub workflows. For this build type configuration unique subdirectory
> (using GitHub run ID) within runner temporary directory is used as a
> binary artefacts tree.
>
> Signed-off-by: Igor Munkin <imun at tarantool.org>
> ---
> .github/actions/environment/action.yml | 5 +++++
> .github/workflows/lint.yml | 3 ++-
> .github/workflows/linux-aarch64.yml | 6 +++++-
> .github/workflows/linux-x86_64-ninja.yml | 6 +++++-
> .github/workflows/linux-x86_64.yml | 7 ++++++-
> .github/workflows/macos-m1.yml | 6 +++++-
> .github/workflows/macos-x86_64.yml | 7 ++++++-
> 7 files changed, 34 insertions(+), 6 deletions(-)
>
> diff --git a/.github/actions/environment/action.yml b/.github/actions/environment/action.yml
> index 43323bc7..7fb2625f 100644
> --- a/.github/actions/environment/action.yml
> +++ b/.github/actions/environment/action.yml
> @@ -11,3 +11,8 @@ runs:
> NPROC=$(sysctl -n hw.logicalcpu 2>/dev/null || nproc)
> echo CMAKE_BUILD_PARALLEL_LEVEL=$(($NPROC + 1)) | tee -a $GITHUB_ENV
> shell: bash
> + - run: |
> + # Set BUILDDIR environment variable to specify LuaJIT
> + # build directory.
> + echo "BUILDDIR=${{ runner.temp }}/build-${{ github.run_id }}" | tee -a $GITHUB_ENV
> + shell: bash
> diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
> index 28dc6be6..64e8f992 100644
> --- a/.github/workflows/lint.yml
> +++ b/.github/workflows/lint.yml
> @@ -45,6 +45,7 @@ jobs:
> sudo apt -y install cmake make lua5.1 luarocks
> sudo luarocks install luacheck
> - name: configure
> - run: cmake .
> + run: cmake -S . -B ${{ env.BUILDDIR }}
> - name: test
> run: cmake --build . --target LuaJIT-luacheck
> + working-directory: ${{ env.BUILDDIR }}
> diff --git a/.github/workflows/linux-aarch64.yml b/.github/workflows/linux-aarch64.yml
> index 8c8dcff1..21d86764 100644
> --- a/.github/workflows/linux-aarch64.yml
> +++ b/.github/workflows/linux-aarch64.yml
> @@ -53,11 +53,15 @@ jobs:
> sudo apt -y update
> sudo apt -y install cmake gcc make perl
> - name: configure
> - run: cmake . ${{ matrix.CMAKEFLAGS }}
> + run: >
> + cmake -S . -B ${{ env.BUILDDIR }}
> + ${{ matrix.CMAKEFLAGS }}
> - name: build
> run: cmake --build . --parallel
> + working-directory: ${{ env.BUILDDIR }}
> - name: test
> run: cmake --build . --parallel --target test
> + working-directory: ${{ env.BUILDDIR }}
1. I don't get an idea to use current dir for CMake and specify a
working-directory in a job step.
Why not "cmake --build ${{ env.BUILDDIR }}" as above?
>
> test-tarantool-debug-w-GC64:
> name: Tarantool Debug GC64:ON
> diff --git a/.github/workflows/linux-x86_64-ninja.yml b/.github/workflows/linux-x86_64-ninja.yml
> index 2877d2f6..72d56d54 100644
> --- a/.github/workflows/linux-x86_64-ninja.yml
> +++ b/.github/workflows/linux-x86_64-ninja.yml
> @@ -44,8 +44,12 @@ jobs:
> sudo apt -y update
> sudo apt -y install cmake gcc ninja-build perl
> - name: configure
> - run: cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja
> + run: >
> + cmake -S . -B ${{ env.BUILDDIR }}
> + -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja
> - name: build
> run: cmake --build . --parallel
> + working-directory: ${{ env.BUILDDIR }}
> - name: test
> run: cmake --build . --parallel --target test
> + working-directory: ${{ env.BUILDDIR }}
> diff --git a/.github/workflows/linux-x86_64.yml b/.github/workflows/linux-x86_64.yml
> index 44dcce98..4c3ad4c7 100644
> --- a/.github/workflows/linux-x86_64.yml
> +++ b/.github/workflows/linux-x86_64.yml
> @@ -54,11 +54,16 @@ jobs:
> sudo apt -y update
> sudo apt -y install cmake gcc make perl
> - name: configure
> - run: cmake . ${{ matrix.CMAKEFLAGS }} -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }}
> + run: >
> + cmake -S . -B ${{ env.BUILDDIR }}
> + ${{ matrix.CMAKEFLAGS }}
> + -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }}
> - name: build
> run: cmake --build . --parallel
> + working-directory: ${{ env.BUILDDIR }}
> - name: test
> run: cmake --build . --parallel --target test
> + working-directory: ${{ env.BUILDDIR }}
>
> test-tarantool-debug-wo-GC64:
> name: Tarantool Debug GC64:OFF
> diff --git a/.github/workflows/macos-m1.yml b/.github/workflows/macos-m1.yml
> index e0269d60..e3b6dcda 100644
> --- a/.github/workflows/macos-m1.yml
> +++ b/.github/workflows/macos-m1.yml
> @@ -68,11 +68,15 @@ jobs:
> ${ARCH} brew upgrade cmake gcc make perl
> ${ARCH} echo "CMAKE_BUILD_PARALLEL_LEVEL=$(($(sysctl -n hw.logicalcpu) + 1))" >> $GITHUB_ENV
> - name: configure
> - run: ${ARCH} cmake . ${{ matrix.CMAKEFLAGS }}
> + run: >
> + ${ARCH} cmake -S . -B ${{ env.BUILDDIR }}
> + ${{ matrix.CMAKEFLAGS }}
> - name: build
> run: ${ARCH} cmake --build . --parallel
> + working-directory: ${{ env.BUILDDIR }}
> - name: test
> run: ${ARCH} cmake --build . --parallel --target test
> + working-directory: ${{ env.BUILDDIR }}
>
> test-tarantool-debug-w-GC64:
> name: Tarantool Debug GC64:ON
> diff --git a/.github/workflows/macos-x86_64.yml b/.github/workflows/macos-x86_64.yml
> index 840806e3..3d2cf581 100644
> --- a/.github/workflows/macos-x86_64.yml
> +++ b/.github/workflows/macos-x86_64.yml
> @@ -63,11 +63,16 @@ jobs:
> brew install --force cmake gcc make perl ||
> brew upgrade cmake gcc make perl
> - name: configure
> - run: cmake . ${{ matrix.CMAKEFLAGS }} -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }}
> + run: >
> + cmake -S . -B ${{ env.BUILDDIR }}
> + ${{ matrix.CMAKEFLAGS }}
> + -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }}
> - name: build
> run: cmake --build . --parallel
> + working-directory: ${{ env.BUILDDIR }}
> - name: test
> run: cmake --build . --parallel --target test
> + working-directory: ${{ env.BUILDDIR }}
>
> test-tarantool-debug-wo-GC64:
> name: Tarantool Debug GC64:OFF
More information about the Tarantool-patches
mailing list