From e370b2b5efafdf207dc3ffe3b138b5886090522c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Wed, 5 Nov 2025 20:53:17 +0100 Subject: [PATCH 1/2] Add `CRYSTAL_BOOTSTRAP_VERSION` env var --- .github/workflows/forward-compatibility.yml | 2 +- .github/workflows/linux.yml | 2 +- bin/ci | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/forward-compatibility.yml b/.github/workflows/forward-compatibility.yml index 1fab549b5dc3..a67349aaef87 100644 --- a/.github/workflows/forward-compatibility.yml +++ b/.github/workflows/forward-compatibility.yml @@ -29,7 +29,7 @@ jobs: env: ARCH: x86_64 ARCH_CMD: linux64 - DOCKER_TEST_PREFIX: crystallang/crystal:${{ matrix.crystal_bootstrap_version }} + CRYSTAL_BOOTSTRAP_VERSION: ${{ matrix.crystal_bootstrap_version }} runs-on: ubuntu-latest strategy: fail-fast: false diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d30d592b6cd1..23a503f6ed41 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,7 +21,7 @@ jobs: env: ARCH: x86_64 ARCH_CMD: linux64 - DOCKER_TEST_PREFIX: crystallang/crystal:${{ matrix.crystal_bootstrap_version }} + CRYSTAL_BOOTSTRAP_VERSION: ${{ matrix.crystal_bootstrap_version }} runs-on: ubuntu-latest strategy: fail-fast: false 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) From 63a21a5bdeee6fb801cb1dec1ce8f8b34b05022c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Wed, 5 Nov 2025 12:09:29 +0100 Subject: [PATCH 2/2] Refactor matrix parameters into `env` --- .github/workflows/forward-compatibility.yml | 25 ++++++++++++++------- .github/workflows/linux.yml | 16 +++++++------ 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/.github/workflows/forward-compatibility.yml b/.github/workflows/forward-compatibility.yml index a67349aaef87..cbcc1cb07984 100644 --- a/.github/workflows/forward-compatibility.yml +++ b/.github/workflows/forward-compatibility.yml @@ -35,21 +35,29 @@ jobs: fail-fast: false matrix: crystal_bootstrap_version: [1.7.3, 1.8.2, 1.9.2, 1.10.1, 1.11.2, 1.12.2, 1.13.3, 1.14.1, 1.15.1, 1.16.3, 1.17.1] - flags: [""] + env: [{}] include: # libffi is only available starting from the 1.2.2 build images + # pcre2 is only available starting from the 1.7.0 build images - crystal_bootstrap_version: 1.1.1 - flags: "FLAGS=-Dwithout_ffi USE_PCRE1=true" + env: + FLAGS: -Dwithout_ffi + USE_PCRE1: true - crystal_bootstrap_version: 1.2.2 - flags: "USE_PCRE1=true" + env: + USE_PCRE1: true - crystal_bootstrap_version: 1.3.2 - flags: "USE_PCRE1=true" + env: + USE_PCRE1: true - crystal_bootstrap_version: 1.4.1 - flags: "USE_PCRE1=true" + env: + USE_PCRE1: true - crystal_bootstrap_version: 1.5.1 - flags: "USE_PCRE1=true" + env: + USE_PCRE1: true - crystal_bootstrap_version: 1.6.2 - flags: "USE_PCRE1=true" + env: + USE_PCRE1: true steps: - name: Download Crystal source uses: actions/checkout@v5 @@ -63,4 +71,5 @@ jobs: run: bin/ci prepare_build - name: Test - run: ${{ matrix.flags }} bin/ci build + run: bin/ci build + env: ${{ matrix.env }} diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 23a503f6ed41..a88f5bed050a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -21,17 +21,18 @@ jobs: env: ARCH: x86_64 ARCH_CMD: linux64 - CRYSTAL_BOOTSTRAP_VERSION: ${{ matrix.crystal_bootstrap_version }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: - flags: [""] + env: [{}] 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.7.0 build images + USE_PCRE1: true steps: - name: Download Crystal source uses: actions/checkout@v5 @@ -45,7 +46,8 @@ 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: