diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d30d592b6cd1..2861a0a0ba20 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,17 +21,21 @@ jobs: env: ARCH: x86_64 ARCH_CMD: linux64 - DOCKER_TEST_PREFIX: crystallang/crystal:${{ matrix.crystal_bootstrap_version }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: - flags: [""] + env: + - FLAGS: "" + - FLAGS: "-Devloop=libevent" + - FLAGS: "-Dpreview_mt -Dexecution_context" include: - # libffi is only available starting from the 1.2.2 build images - - crystal_bootstrap_version: 1.0.0 - flags: "FLAGS=-Dwithout_ffi USE_PCRE1=true" - - crystal_bootstrap_version: 1.18.2 # LATEST RELEASE + - env: + CRYSTAL_BOOTSTRAP_VERSION: 1.0.0 + # libffi is only available starting from the 1.2.2 build images + FLAGS: "-Dwithout_ffi" + # pcre2 is only available starting from the 1.8.0 build images + USE_PCRE1: true steps: - name: Download Crystal source uses: actions/checkout@v5 @@ -45,13 +49,21 @@ jobs: run: bin/ci prepare_build - name: Test - run: ${{ matrix.flags }} bin/ci build + run: bin/ci build + env: ${{ matrix.env }} x86_64-musl-test: env: ARCH: x86_64-musl ARCH_CMD: linux64 runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + env: + - FLAGS: "" + - FLAGS: "-Devloop=libevent" + - FLAGS: "-Dpreview_mt -Dexecution_context" steps: - name: Download Crystal source uses: actions/checkout@v5 @@ -66,29 +78,7 @@ jobs: - name: Test run: bin/ci build - - x86_64-gnu-test-preview_mt: - env: - ARCH: x86_64 - ARCH_CMD: linux64 - runs-on: ubuntu-latest - steps: - - name: Download Crystal source - uses: actions/checkout@v5 - with: - persist-credentials: false - - - name: Prepare System - run: bin/ci prepare_system - - - name: Prepare Build - run: bin/ci prepare_build - - - name: Make Crystal - run: bin/ci with_build_env 'make crystal' - - - name: Test - run: bin/ci with_build_env 'CRYSTAL_WORKERS=4 make std_spec threads=1 FLAGS="-D preview_mt"' + env: ${{ matrix.env }} check_format: env: diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 191e66ec988d..53660a2e43ef 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -15,16 +15,13 @@ env: jobs: darwin-test: runs-on: ${{ matrix.runs-on }} - name: "${{ matrix.runs-on }} (${{ matrix.arch }})" strategy: matrix: - include: - - runs-on: macos-15-intel - arch: x86_64-darwin - - runs-on: macos-14 - arch: aarch64-darwin - - runs-on: macos-15 - arch: aarch64-darwin + runs-on: [macos-15-intel, macos-15] + env: + - FLAGS: "" + - FLAGS: "-Devloop=libevent" + - FLAGS: "-Dpreview_mt -Dexecution_context" fail-fast: false steps: - name: Download Crystal source @@ -50,6 +47,8 @@ jobs: - name: Test run: bin/ci build + env: ${{ matrix.env }} - name: Test interpreter run: bin/ci with_build_env 'make interpreter_spec' + env: ${{ matrix.env }} diff --git a/.github/workflows/mingw-w64-steps.yml b/.github/workflows/mingw-w64-steps.yml index f4740a9c425f..41595e197166 100644 --- a/.github/workflows/mingw-w64-steps.yml +++ b/.github/workflows/mingw-w64-steps.yml @@ -81,6 +81,12 @@ jobs: test-stdlib: runs-on: ${{ inputs.runs-on }} + strategy: + fail-fast: false + matrix: + env: + - FLAGS: "" + - FLAGS: "-Dpreview_mt -Dexecution_context" steps: - name: Setup MSYS2 id: msys2 @@ -109,6 +115,7 @@ jobs: run: | export CRYSTAL_SPEC_COMPILER_BIN="$(which crystal.exe)" make std_spec + env: ${{ matrix.env }} test-compiler: runs-on: ${{ inputs.runs-on }} diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index c16cb6101cb1..f3efa74d52db 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -57,7 +57,6 @@ env: jobs: smoke-test: - name: ${{ matrix.target }} runs-on: ubuntu-latest strategy: @@ -74,6 +73,13 @@ jobs: - x86_64-netbsd - x86_64-openbsd - x86_64-solaris + env: + - FLAGS: "" + - FLAGS: "-Dpreview_mt -Dexecution_context" + include: + - target: x86_64-freebsd + env: + FLAGS: "-Devloop=libevent" steps: - name: Download Crystal source @@ -86,3 +92,4 @@ jobs: - name: Run smoke test run: bin/ci with_build_env make smoke_test target=${{ matrix.target }} + env: ${{ matrix.env }} diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index 2d2f9a3bcc00..ba589236757b 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -228,6 +228,13 @@ jobs: x86_64-windows-test: runs-on: windows-2025 needs: [x86_64-windows-release] + strategy: + fail-fast: false + matrix: + env: + - FLAGS: "" + - FLAGS: "-Dpreview_mt -Dexecution_context" + env: ${{ matrix.env }} steps: - name: Disable CRLF line ending substitution run: | diff --git a/bin/ci b/bin/ci index fabeae18cbab..a47600b5c952 100755 --- a/bin/ci +++ b/bin/ci @@ -189,7 +189,7 @@ with_build_env() { on_linux verify_linux_environment - export DOCKER_TEST_PREFIX="${DOCKER_TEST_PREFIX:=crystallang/crystal:1.18.2}" + export DOCKER_TEST_PREFIX="${DOCKER_TEST_PREFIX:="crystallang/crystal:${CRYSTAL_BOOTSTRAP_VERSION:-1.18.2}"}" case $ARCH in x86_64)