[Tarantool-patches] [PATCH luajit 7/8] ci: merge x86_64 and ARM64 workflows

Sergey Bronnikov sergeyb at tarantool.org
Mon Aug 15 15:22:09 MSK 2022


Looks good, LGTM

On 11.08.2022 14:17, Igor Munkin wrote:
> As a result of the previous commit, there is no difference left between
> x86_64 and ARM64 workflows except the runner where workflow is run.
> Hence there is no reason to have a separate workflow file for each
> hardware architecture.
>
> Signed-off-by: Igor Munkin <imun at tarantool.org>
> ---
>   .github/workflows/linux-aarch64.yml           | 83 -----------------
>   .../workflows/{linux-x86_64.yml => linux.yml} | 52 ++++++++---
>   .github/workflows/macos-m1.yml                | 92 -------------------
>   .../workflows/{macos-x86_64.yml => macos.yml} | 52 ++++++++---
>   4 files changed, 82 insertions(+), 197 deletions(-)
>   delete mode 100644 .github/workflows/linux-aarch64.yml
>   rename .github/workflows/{linux-x86_64.yml => linux.yml} (69%)
>   delete mode 100644 .github/workflows/macos-m1.yml
>   rename .github/workflows/{macos-x86_64.yml => macos.yml} (73%)
>
> diff --git a/.github/workflows/linux-aarch64.yml b/.github/workflows/linux-aarch64.yml
> deleted file mode 100644
> index 21d86764..00000000
> --- a/.github/workflows/linux-aarch64.yml
> +++ /dev/null
> @@ -1,83 +0,0 @@
> -name: "Linux/aarch64 test workflow"
> -
> -on:
> -  push:
> -    branches-ignore:
> -      - '**-notest'
> -      - 'upstream-**'
> -    tags-ignore:
> -      - '**'
> -
> -concurrency:
> -  # An update of a developer branch cancels the previously
> -  # scheduled workflow run for this branch. However, the default
> -  # branch, and long-term branch (tarantool-1.10, tarantool-2.8,
> -  # etc.) workflow runs are never canceled.
> -  #
> -  # We use a trick here: define the concurrency group as 'workflow
> -  # run ID' + # 'workflow run attempt' because it is a unique
> -  # combination for any run. So it effectively discards grouping.
> -  #
> -  # XXX: we cannot use `github.sha` as a unique identifier because
> -  # pushing a tag may cancel a run that works on a branch push
> -  # event.
> -  group: ${{ (
> -    github.ref == 'refs/heads/tarantool' ||
> -    startsWith(github.ref, 'refs/heads/tarantool-')) &&
> -    format('{0}-{1}', github.run_id, github.run_attempt) ||
> -    format('{0}-{1}', github.workflow, github.ref) }}
> -  cancel-in-progress: true
> -
> -jobs:
> -  test-luajit:
> -    runs-on: graviton
> -    strategy:
> -      fail-fast: false
> -      matrix:
> -        BUILDTYPE: [Debug, Release]
> -        include:
> -          - BUILDTYPE: Debug
> -            CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug -DLUA_USE_ASSERT=ON -DLUA_USE_APICHECK=ON
> -          - BUILDTYPE: Release
> -            CMAKEFLAGS: -DCMAKE_BUILD_TYPE=RelWithDebInfo
> -    name: LuaJIT ${{ matrix.BUILDTYPE }} GC64:ON
> -    steps:
> -      - uses: actions/checkout at v2.3.4
> -        with:
> -          fetch-depth: 0
> -          submodules: recursive
> -      - name: environment
> -        uses: ./.github/actions/environment
> -      - name: setup
> -        run: |
> -          sudo apt -y update
> -          sudo apt -y install cmake gcc make perl
> -      - name: configure
> -        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 }}
> -
> -  test-tarantool-debug-w-GC64:
> -    name: Tarantool Debug GC64:ON
> -    needs: test-luajit
> -    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
> -    with:
> -      GC64: ON
> -      buildtype: Debug
> -      host: graviton
> -      revision: ${{ github.sha }}
> -  test-tarantool-release-w-GC64:
> -    name: Tarantool Release GC64:ON
> -    needs: test-luajit
> -    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
> -    with:
> -      GC64: ON
> -      buildtype: RelWithDebInfo
> -      host: graviton
> -      revision: ${{ github.sha }}
> diff --git a/.github/workflows/linux-x86_64.yml b/.github/workflows/linux.yml
> similarity index 69%
> rename from .github/workflows/linux-x86_64.yml
> rename to .github/workflows/linux.yml
> index 4c3ad4c7..125c8708 100644
> --- a/.github/workflows/linux-x86_64.yml
> +++ b/.github/workflows/linux.yml
> @@ -1,4 +1,4 @@
> -name: "Linux/x86_64 test workflow"
> +name: "Linux test workflow"
>   
>   on:
>     push:
> @@ -30,18 +30,30 @@ concurrency:
>   
>   jobs:
>     test-luajit:
> -    runs-on: ubuntu-20.04-self-hosted
>       strategy:
>         fail-fast: false
>         matrix:
> +        ARCH: [aarch64, x86_64]
>           BUILDTYPE: [Debug, Release]
>           GC64: [ON, OFF]
>           include:
> +          - ARCH: aarch64
> +            RUNNER: graviton
> +          - ARCH: x86_64
> +            RUNNER: ubuntu-20.04-self-hosted
>             - BUILDTYPE: Debug
>               CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug -DLUA_USE_ASSERT=ON -DLUA_USE_APICHECK=ON
>             - BUILDTYPE: Release
>               CMAKEFLAGS: -DCMAKE_BUILD_TYPE=RelWithDebInfo
> -    name: LuaJIT ${{ matrix.BUILDTYPE }} GC64:${{ matrix.GC64 }}
> +        exclude:
> +          - ARCH: aarch64
> +            GC64: OFF
> +    runs-on: ${{ matrix.RUNNER }}
> +    name: >
> +      LuaJIT
> +      ${{ matrix.ARCH }}
> +      ${{ matrix.BUILDTYPE }}
> +      GC64:${{ matrix.GC64 }}
>       steps:
>         - uses: actions/checkout at v2.3.4
>           with:
> @@ -65,8 +77,8 @@ jobs:
>           run: cmake --build . --parallel --target test
>           working-directory: ${{ env.BUILDDIR }}
>   
> -  test-tarantool-debug-wo-GC64:
> -    name: Tarantool Debug GC64:OFF
> +  test-tarantool-x86_64-debug-wo-GC64:
> +    name: Tarantool x86_64 Debug GC64:OFF
>       needs: test-luajit
>       uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
>       with:
> @@ -74,8 +86,8 @@ jobs:
>         buildtype: Debug
>         host: ubuntu-20.04-self-hosted
>         revision: ${{ github.sha }}
> -  test-tarantool-debug-w-GC64:
> -    name: Tarantool Debug GC64:ON
> +  test-tarantool-x86_64-debug-w-GC64:
> +    name: Tarantool x86_64 Debug GC64:ON
>       needs: test-luajit
>       uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
>       with:
> @@ -83,8 +95,8 @@ jobs:
>         buildtype: Debug
>         host: ubuntu-20.04-self-hosted
>         revision: ${{ github.sha }}
> -  test-tarantool-release-wo-GC64:
> -    name: Tarantool Release GC64:OFF
> +  test-tarantool-x86_64-release-wo-GC64:
> +    name: Tarantool x86_64 Release GC64:OFF
>       needs: test-luajit
>       uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
>       with:
> @@ -92,8 +104,8 @@ jobs:
>         buildtype: RelWithDebInfo
>         host: ubuntu-20.04-self-hosted
>         revision: ${{ github.sha }}
> -  test-tarantool-release-w-GC64:
> -    name: Tarantool Release GC64:ON
> +  test-tarantool-x86_64-release-w-GC64:
> +    name: Tarantool x86_64 Release GC64:ON
>       needs: test-luajit
>       uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
>       with:
> @@ -101,3 +113,21 @@ jobs:
>         buildtype: RelWithDebInfo
>         host: ubuntu-20.04-self-hosted
>         revision: ${{ github.sha }}
> +  test-tarantool-aarch64-debug-w-GC64:
> +    name: Tarantool aarch64 Debug GC64:ON
> +    needs: test-luajit
> +    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
> +    with:
> +      GC64: ON
> +      buildtype: Debug
> +      host: graviton
> +      revision: ${{ github.sha }}
> +  test-tarantool-aarch64-release-w-GC64:
> +    name: Tarantool aarch64 Release GC64:ON
> +    needs: test-luajit
> +    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
> +    with:
> +      GC64: ON
> +      buildtype: RelWithDebInfo
> +      host: graviton
> +      revision: ${{ github.sha }}
> diff --git a/.github/workflows/macos-m1.yml b/.github/workflows/macos-m1.yml
> deleted file mode 100644
> index 4e1275f7..00000000
> --- a/.github/workflows/macos-m1.yml
> +++ /dev/null
> @@ -1,92 +0,0 @@
> -name: "macOS/m1 test workflow"
> -
> -on:
> -  push:
> -    branches-ignore:
> -      - '**-notest'
> -      - 'upstream-**'
> -    tags-ignore:
> -      - '**'
> -
> -concurrency:
> -  # An update of a developer branch cancels the previously
> -  # scheduled workflow run for this branch. However, the default
> -  # branch, and long-term branch (tarantool-1.10, tarantool-2.8,
> -  # etc.) workflow runs are never canceled.
> -  #
> -  # We use a trick here: define the concurrency group as 'workflow
> -  # run ID' + # 'workflow run attempt' because it is a unique
> -  # combination for any run. So it effectively discards grouping.
> -  #
> -  # XXX: we cannot use `github.sha` as a unique identifier because
> -  # pushing a tag may cancel a run that works on a branch push
> -  # event.
> -  group: ${{ (
> -    github.ref == 'refs/heads/tarantool' ||
> -    startsWith(github.ref, 'refs/heads/tarantool-')) &&
> -    format('{0}-{1}', github.run_id, github.run_attempt) ||
> -    format('{0}-{1}', github.workflow, github.ref) }}
> -  cancel-in-progress: true
> -
> -jobs:
> -  test-luajit:
> -    runs-on: macos-11-m1
> -    strategy:
> -      fail-fast: false
> -      matrix:
> -        BUILDTYPE: [Debug, Release]
> -        include:
> -          - BUILDTYPE: Debug
> -            CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug -DLUA_USE_ASSERT=ON -DLUA_USE_APICHECK=ON
> -          - BUILDTYPE: Release
> -            CMAKEFLAGS: -DCMAKE_BUILD_TYPE=RelWithDebInfo
> -    name: LuaJIT ${{ matrix.BUILDTYPE }} GC64:ON
> -    steps:
> -      - uses: actions/checkout at v2.3.4
> -        with:
> -          fetch-depth: 0
> -          submodules: recursive
> -      - name: environment
> -        uses: ./.github/actions/environment
> -      - name: setup
> -        run: |
> -          # Install brew using the command from Homebrew repository
> -          # instructions: https://github.com/Homebrew/install.
> -          # XXX: 'echo' command below is required since brew installation
> -          # script obliges the one to enter a newline for confirming the
> -          # installation via Ruby script.
> -          brew update ||
> -            echo | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
> -          # Try to install the packages either upgrade it to avoid of fails
> -          # if the package already exists with the previous version.
> -          brew install --force cmake gcc make perl ||
> -            brew upgrade cmake gcc make perl
> -      - name: configure
> -        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 }}
> -
> -  test-tarantool-debug-w-GC64:
> -    name: Tarantool Debug GC64:ON
> -    needs: test-luajit
> -    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
> -    with:
> -      GC64: ON
> -      buildtype: Debug
> -      host: macos-11-m1
> -      revision: ${{ github.sha }}
> -  test-tarantool-release-w-GC64:
> -    name: Tarantool Release GC64:ON
> -    needs: test-luajit
> -    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
> -    with:
> -      GC64: ON
> -      buildtype: RelWithDebInfo
> -      host: macos-11-m1
> -      revision: ${{ github.sha }}
> diff --git a/.github/workflows/macos-x86_64.yml b/.github/workflows/macos.yml
> similarity index 73%
> rename from .github/workflows/macos-x86_64.yml
> rename to .github/workflows/macos.yml
> index 3d2cf581..2fa97f1e 100644
> --- a/.github/workflows/macos-x86_64.yml
> +++ b/.github/workflows/macos.yml
> @@ -1,4 +1,4 @@
> -name: "macOS/x86_64 test workflow"
> +name: "macOS test workflow"
>   
>   on:
>     push:
> @@ -30,18 +30,30 @@ concurrency:
>   
>   jobs:
>     test-luajit:
> -    runs-on: macos-11
>       strategy:
>         fail-fast: false
>         matrix:
> +        ARCH: [M1, x86_64]
>           BUILDTYPE: [Debug, Release]
>           GC64: [ON, OFF]
>           include:
> +          - ARCH: M1
> +            RUNNER: macos-11-m1
> +          - ARCH: x86_64
> +            RUNNER: macos-11
>             - BUILDTYPE: Debug
>               CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug -DLUA_USE_ASSERT=ON -DLUA_USE_APICHECK=ON
>             - BUILDTYPE: Release
>               CMAKEFLAGS: -DCMAKE_BUILD_TYPE=RelWithDebInfo
> -    name: LuaJIT ${{ matrix.BUILDTYPE }} GC64:${{ matrix.GC64 }}
> +        exclude:
> +          - ARCH: M1
> +            GC64: OFF
> +    runs-on: ${{ matrix.RUNNER }}
> +    name: >
> +      LuaJIT
> +      ${{ matrix.ARCH }}
> +      ${{ matrix.BUILDTYPE }}
> +      GC64:${{ matrix.GC64 }}
>       steps:
>         - uses: actions/checkout at v2.3.4
>           with:
> @@ -74,8 +86,8 @@ jobs:
>           run: cmake --build . --parallel --target test
>           working-directory: ${{ env.BUILDDIR }}
>   
> -  test-tarantool-debug-wo-GC64:
> -    name: Tarantool Debug GC64:OFF
> +  test-tarantool-x86_64-debug-wo-GC64:
> +    name: Tarantool x86_64 Debug GC64:OFF
>       needs: test-luajit
>       uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
>       with:
> @@ -83,8 +95,8 @@ jobs:
>         buildtype: Debug
>         host: macos-11
>         revision: ${{ github.sha }}
> -  test-tarantool-debug-w-GC64:
> -    name: Tarantool Debug GC64:ON
> +  test-tarantool-x86_64-debug-w-GC64:
> +    name: Tarantool x86_64 Debug GC64:ON
>       needs: test-luajit
>       uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
>       with:
> @@ -92,8 +104,8 @@ jobs:
>         buildtype: Debug
>         host: macos-11
>         revision: ${{ github.sha }}
> -  test-tarantool-release-wo-GC64:
> -    name: Tarantool Release GC64:OFF
> +  test-tarantool-x86_64-release-wo-GC64:
> +    name: Tarantool x86_64 Release GC64:OFF
>       needs: test-luajit
>       uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
>       with:
> @@ -101,8 +113,8 @@ jobs:
>         buildtype: RelWithDebInfo
>         host: macos-11
>         revision: ${{ github.sha }}
> -  test-tarantool-release-w-GC64:
> -    name: Tarantool Release GC64:ON
> +  test-tarantool-x86_64-release-w-GC64:
> +    name: Tarantool x86_64 Release GC64:ON
>       needs: test-luajit
>       uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
>       with:
> @@ -110,3 +122,21 @@ jobs:
>         buildtype: RelWithDebInfo
>         host: macos-11
>         revision: ${{ github.sha }}
> +  test-tarantool-m1-debug-w-GC64:
> +    name: Tarantool M1 Debug GC64:ON
> +    needs: test-luajit
> +    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
> +    with:
> +      GC64: ON
> +      buildtype: Debug
> +      host: macos-11-m1
> +      revision: ${{ github.sha }}
> +  test-tarantool-m1-release-w-GC64:
> +    name: Tarantool M1 Release GC64:ON
> +    needs: test-luajit
> +    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
> +    with:
> +      GC64: ON
> +      buildtype: RelWithDebInfo
> +      host: macos-11-m1
> +      revision: ${{ github.sha }}


More information about the Tarantool-patches mailing list