[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