Skip to content

Commit

Permalink
Update CI to build all configurations
Browse files Browse the repository at this point in the history
  • Loading branch information
duckdoom5 committed Jan 22, 2025
1 parent 979d90b commit c21a50f
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 24 deletions.
59 changes: 35 additions & 24 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,34 @@ 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" }
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: windows-2022
platform: x64
build-cfg: Debug

runs-on: ${{ matrix.config.os }}
runs-on: ${{ matrix.os }}

env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
VS_VERSION: ${{ matrix.config.vs }}
PLATFORM: ${{ matrix.config.platform }}
CC: ${{ startsWith(matrix.os, 'ubuntu') && 'gcc-11' || 'clang' }}
CXX: ${{ startsWith(matrix.os, 'ubuntu') && 'g++-11' || 'clang++' }}
VS_VERSION: "Program Files/Microsoft Visual Studio/2022"
PLATFORM: ${{ matrix.platform }}
BUILD_CONFIGURATION: ${{ matrix.build-cfg }}
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
EMSCRIPTEN_VERSION: 3.1.65
Expand All @@ -41,54 +51,54 @@ 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
- name: Set version
run: nbgv cloud --all-vars

- name: Environment
if: matrix.config.vs
if: startsWith(matrix.os, 'windows')
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)
if: runner.os != 'Windows'
shell: bash
run: tests/quickjs/bootstrap.sh
if: runner.os != 'Windows'

- name: Test (QuickJS)
shell: bash
run: tests/quickjs/test.sh
if: runner.os != 'Windows'
shell: bash
run: tests/quickjs/test.sh -dotnet_configuration $BUILD_CONFIGURATION

- name: Test (Emscripten)
shell: bash
run: tests/emscripten/test.sh
if: runner.os != 'Windows'
shell: bash
run: tests/emscripten/test.sh -dotnet_configuration $BUILD_CONFIGURATION

- 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:
Expand All @@ -107,6 +117,7 @@ jobs:
env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
BUILD_CONFIGURATION: Release

steps:
- uses: actions/checkout@v4
Expand All @@ -122,11 +133,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
Expand Down
8 changes: 8 additions & 0 deletions tests/emscripten/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@ for arg in "$@"; do
jsinterp="${arg#*=}"
shift
;;
-configuration)
configuration=$2
shift
;;
-dotnet_configuration)
dotnet_configuration=$2
shift
;;
esac
done

Expand Down
13 changes: 13 additions & 0 deletions tests/quickjs/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@ dotnet_configuration=Release
configuration=debug
jsinterp="$dir/runtime/build/qjs"

for arg in "$@"; do
case $arg in
-configuration)
configuration=$2
shift
;;
-dotnet_configuration)
dotnet_configuration=$2
shift
;;
esac
done

cd $dir

if [ "$CI" = "true" ]; then
Expand Down

0 comments on commit c21a50f

Please sign in to comment.