From 5ca296904d0d4a527e1f1eaa2ed84ae4b25a6f69 Mon Sep 17 00:00:00 2001 From: duckdoom5 Date: Wed, 22 Jan 2025 22:41:05 +0100 Subject: [PATCH] [Test] multiple config CI build --- .github/workflows/main.yml | 58 +++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0693eb0d8..082467abe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,24 +2,41 @@ name: CI on: [push, pull_request] +# Cancel any previous workflows if the pull request was updated +concurrency: + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + jobs: build: if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository strategy: fail-fast: false matrix: - config: - - { os: ubuntu-22.04, platform: x64, cxx: g++-11, cc: gcc-11 } - - { os: macos-12, platform: x64, cxx: clang++, cc: clang } - - { os: windows-2022, platform: x64, vs: "Program Files/Microsoft Visual Studio/2022" } - - runs-on: ${{ matrix.config.os }} + os: [ubuntu-22.04, macos-12, windows-2022] + platform: [x64] + build-cfg: [DebugOpt, Release] + #build-cfg: [Debug, DebugOpt, Release] # our local copy of clang isn't build for debug on linux/macos currently + include: + - os: ubuntu-22.04 + cxx: g++-11 + cc: gcc-11 + - os: macos-12 + cxx: clang++ + cc: clang + - os: windows-2022 + build-cfg: Debug + - os: windows-2022 + vs: "Program Files/Microsoft Visual Studio/2022" + + runs-on: ${{ matrix.os }} env: - CC: ${{ matrix.config.cc }} - CXX: ${{ matrix.config.cxx }} - VS_VERSION: ${{ matrix.config.vs }} - PLATFORM: ${{ matrix.config.platform }} + CC: ${{ matrix.cc }} + CXX: ${{ matrix.cxx }} + VS_VERSION: ${{ matrix.vs }} + PLATFORM: ${{ matrix.platform }} + BUILD_CONFIGURATION: ${{ matrix.build-cfg }} DOTNET_NOLOGO: true DOTNET_CLI_TELEMETRY_OPTOUT: true EMSCRIPTEN_VERSION: 3.1.65 @@ -41,7 +58,7 @@ jobs: cmake-version: '3.30.x' - name: Install nbgv - if: startsWith(matrix.config.os, 'macos') + if: startsWith(matrix.os, 'macos') run: | dotnet tool install -g nbgv @@ -49,27 +66,27 @@ jobs: run: nbgv cloud --all-vars - name: Environment - if: matrix.config.vs + if: matrix.vs shell: bash run: echo "/c/$VS_VERSION/Enterprise/MSBuild/Current/Bin" >> $GITHUB_PATH - name: Setup shell: bash run: | - build/build.sh generate -platform $PLATFORM - build/build.sh download_llvm -platform $PLATFORM + build/build.sh generate -platform $PLATFORM -configuration $BUILD_CONFIGURATION + build/build.sh download_llvm -platform $PLATFORM -configuration $BUILD_CONFIGURATION - name: Restore shell: bash - run: build/build.sh restore -platform $PLATFORM + run: build/build.sh restore -platform $PLATFORM -configuration $BUILD_CONFIGURATION - name: Build shell: bash - run: build/build.sh -platform $PLATFORM -build_only + run: build/build.sh -platform $PLATFORM -build_only -configuration $BUILD_CONFIGURATION - name: Test (.NET) shell: bash - run: build/test.sh -platform $PLATFORM + run: build/test.sh -platform $PLATFORM -configuration $BUILD_CONFIGURATION - name: Build (QuickJS runtime) shell: bash @@ -88,7 +105,7 @@ jobs: - name: Pack shell: bash - run: build/build.sh prepack -platform $PLATFORM + run: build/build.sh prepack -platform $PLATFORM -configuration $BUILD_CONFIGURATION - uses: actions/upload-artifact@v3 with: @@ -107,6 +124,7 @@ jobs: env: DOTNET_NOLOGO: true DOTNET_CLI_TELEMETRY_OPTOUT: true + BUILD_CONFIGURATION: Release steps: - uses: actions/checkout@v4 @@ -122,11 +140,11 @@ jobs: - name: Setup shell: bash - run: build/build.sh generate_config + run: build/build.sh generate_config -configuration $BUILD_CONFIGURATION - name: Create package shell: bash - run: build/build.sh pack + run: build/build.sh pack -configuration $BUILD_CONFIGURATION - name: Upload package uses: actions/upload-artifact@v3