diff --git a/.github/workflows/aarch64.yml b/.github/workflows/aarch64.yml index 14e7c3d9f564..08709685033f 100644 --- a/.github/workflows/aarch64.yml +++ b/.github/workflows/aarch64.yml @@ -14,13 +14,13 @@ jobs: if: github.repository == 'crystal-lang/crystal' steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build Crystal uses: docker://crystallang/crystal:1.13.2-alpine-84codes-build with: args: make crystal - name: Upload Crystal executable - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: crystal-aarch64-musl path: | @@ -32,9 +32,9 @@ jobs: if: github.repository == 'crystal-lang/crystal' steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download Crystal executable - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal-aarch64-musl - name: Mark downloaded compiler as executable @@ -49,9 +49,9 @@ jobs: if: github.repository == 'crystal-lang/crystal' steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download Crystal executable - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal-aarch64-musl - name: Mark downloaded compiler as executable @@ -65,13 +65,13 @@ jobs: if: github.repository == 'crystal-lang/crystal' steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build Crystal uses: docker://crystallang/crystal:1.13.2-ubuntu-84codes-build with: args: make crystal - name: Upload Crystal executable - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: crystal-aarch64-gnu path: | @@ -83,9 +83,9 @@ jobs: if: github.repository == 'crystal-lang/crystal' steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download Crystal executable - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal-aarch64-gnu - name: Mark downloaded compiler as executable @@ -100,9 +100,9 @@ jobs: if: github.repository == 'crystal-lang/crystal' steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download Crystal executable - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal-aarch64-gnu - name: Mark downloaded compiler as executable diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 9e576303f479..cb237458cae3 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Prepare System run: bin/ci prepare_system @@ -34,7 +34,7 @@ jobs: run: echo $GITHUB_SHA > ./docs/revision.txt - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/interpreter.yml b/.github/workflows/interpreter.yml index 103dc766509b..b5f46be2d4d3 100644 --- a/.github/workflows/interpreter.yml +++ b/.github/workflows/interpreter.yml @@ -13,29 +13,29 @@ env: jobs: test-interpreter_spec: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: crystallang/crystal:1.14.0-build name: "Test Interpreter" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Test interpreter_spec run: make interpreter_spec junit_output=.junit/interpreter_spec.xml build-interpreter: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: crystallang/crystal:1.14.0-build name: Build interpreter steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Build compiler run: make interpreter=1 release=1 - name: Upload compiler artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: crystal-interpreter path: | @@ -43,7 +43,7 @@ jobs: test-interpreter-std_spec: needs: build-interpreter - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: crystallang/crystal:1.14.0-build strategy: @@ -51,10 +51,10 @@ jobs: part: [0, 1, 2, 3] name: "Test std_spec with interpreter (${{ matrix.part }})" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Download compiler artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal-interpreter path: .build/ @@ -67,15 +67,15 @@ jobs: test-interpreter-primitives_spec: needs: build-interpreter - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: crystallang/crystal:1.14.0-build name: "Test primitives_spec with interpreter" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Download compiler artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal-interpreter path: .build/ diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 79c3f143d303..f2663391fcf0 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -41,7 +41,7 @@ jobs: flags: "USE_PCRE1=true" steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Prepare System run: bin/ci prepare_system @@ -59,7 +59,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Prepare System run: bin/ci prepare_system @@ -77,7 +77,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Prepare System run: bin/ci prepare_system @@ -98,7 +98,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Prepare System run: bin/ci prepare_system diff --git a/.github/workflows/llvm.yml b/.github/workflows/llvm.yml index a69383319542..2d22f386fa20 100644 --- a/.github/workflows/llvm.yml +++ b/.github/workflows/llvm.yml @@ -28,7 +28,7 @@ jobs: name: "LLVM ${{ matrix.llvm_version }}" steps: - name: Checkout Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install LLVM ${{ matrix.llvm_version }} run: | diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 77e9e0b3371c..326667b58d30 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -25,14 +25,14 @@ jobs: arch: aarch64-darwin steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - - uses: cachix/install-nix-action@v27 + - uses: cachix/install-nix-action@v31 with: extra_nix_config: | experimental-features = nix-command - - uses: cachix/cachix-action@v15 + - uses: cachix/cachix-action@v16 with: name: crystal-ci signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' diff --git a/.github/workflows/mingw-w64.yml b/.github/workflows/mingw-w64.yml index 8e5db39a5fa1..840ac869d844 100644 --- a/.github/workflows/mingw-w64.yml +++ b/.github/workflows/mingw-w64.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install LLVM 18 run: | @@ -34,24 +34,24 @@ jobs: run: make && make -B target=x86_64-windows-gnu release=1 interpreter=1 - name: Upload crystal.obj - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: x86_64-mingw-w64-crystal-obj path: .build/crystal.obj - name: Upload standard library - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: x86_64-mingw-w64-crystal-stdlib path: src x86_64-mingw-w64-link: - runs-on: windows-2022 + runs-on: windows-2025 needs: [x86_64-mingw-w64-cross-compile] steps: - name: Setup MSYS2 id: msys2 - uses: msys2/setup-msys2@ddf331adaebd714795f1042345e6ca57bd66cea8 # v2.24.1 + uses: msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2.30.0 with: msystem: UCRT64 update: true @@ -66,12 +66,12 @@ jobs: mingw-w64-ucrt-x86_64-libffi - name: Download crystal.obj - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: x86_64-mingw-w64-crystal-obj - name: Download standard library - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: x86_64-mingw-w64-crystal-stdlib path: share/crystal/src @@ -87,7 +87,7 @@ jobs: ldd bin/crystal.exe | grep -iv /c/windows/system32 | sed 's/.* => //; s/ (.*//' | xargs -t -i cp '{}' bin/ - name: Upload Crystal - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: x86_64-mingw-w64-crystal path: | @@ -95,12 +95,12 @@ jobs: share/ x86_64-mingw-w64-test: - runs-on: windows-2022 + runs-on: windows-2025 needs: [x86_64-mingw-w64-link] steps: - name: Setup MSYS2 id: msys2 - uses: msys2/setup-msys2@ddf331adaebd714795f1042345e6ca57bd66cea8 # v2.24.1 + uses: msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2.30.0 with: msystem: UCRT64 update: true @@ -125,10 +125,10 @@ jobs: git config --global core.autocrlf false - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download Crystal executable - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: x86_64-mingw-w64-crystal path: crystal diff --git a/.github/workflows/openssl.yml b/.github/workflows/openssl.yml index 611413e7e678..a37ecd420a9c 100644 --- a/.github/workflows/openssl.yml +++ b/.github/workflows/openssl.yml @@ -31,7 +31,7 @@ jobs: repository: http://dl-cdn.alpinelinux.org/alpine/v3.20/community steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Uninstall openssl and conflicts run: apk del openssl-dev openssl-libs-static libxml2-static - name: Install ${{ matrix.pkg }} diff --git a/.github/workflows/regex-engine.yml b/.github/workflows/regex-engine.yml index 26b406b84d3f..934d65a3ef13 100644 --- a/.github/workflows/regex-engine.yml +++ b/.github/workflows/regex-engine.yml @@ -15,7 +15,7 @@ jobs: container: crystallang/crystal:1.14.0-alpine steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Remove PCRE2 run: apk del pcre2-dev - name: Assert using PCRE @@ -30,7 +30,7 @@ jobs: container: crystallang/crystal:1.14.0-alpine steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Assert using PCRE2 run: bin/crystal eval 'abort unless Regex::Engine == Regex::PCRE2' - name: Assert select PCRE diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index 5a83a26e815a..b90243ee2f98 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -64,7 +64,7 @@ jobs: steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build fresh compiler run: bin/ci with_build_env make diff --git a/.github/workflows/wasm32.yml b/.github/workflows/wasm32.yml index 9a6472ca2d6e..d862b267f25b 100644 --- a/.github/workflows/wasm32.yml +++ b/.github/workflows/wasm32.yml @@ -17,7 +17,7 @@ jobs: container: crystallang/crystal:1.14.0-build steps: - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install wasmtime uses: mwilliamson/setup-wasmtime-action@v2 diff --git a/.github/workflows/win.yml b/.github/workflows/win.yml index aacf1a4aae4f..4e460bc71f49 100644 --- a/.github/workflows/win.yml +++ b/.github/workflows/win.yml @@ -14,7 +14,7 @@ env: jobs: x86_64-windows-libs: - runs-on: windows-2022 + runs-on: windows-2025 steps: - name: Disable CRLF line ending substitution run: | @@ -24,18 +24,18 @@ jobs: uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 - name: Set up Cygwin - uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401 # v4 + uses: cygwin/cygwin-install-action@711d29f3da23c9f4a1798e369a6f01198c13b11a # v6 with: packages: make install-dir: C:\cygwin64 add-to-path: false - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Cache libraries id: cache-libs - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | # openssl and llvm take much longer to build so they are cached separately libs/pcre.lib @@ -78,7 +78,7 @@ jobs: - name: Cache OpenSSL id: cache-openssl - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | libs/crypto.lib @@ -87,13 +87,13 @@ jobs: key: win-openssl-libs-3.1.0-${{ hashFiles('etc/win-ci/build-openssl.ps1') }}-msvc - name: Set up NASM if: steps.cache-openssl.outputs.cache-hit != 'true' - uses: ilammy/setup-nasm@13cbeb366c45c4379d3478cdcbadd8295feb5028 # v1.5.1 + uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2 - name: Build OpenSSL if: steps.cache-openssl.outputs.cache-hit != 'true' run: .\etc\win-ci\build-openssl.ps1 -BuildTree deps\openssl -Version 3.1.0 x86_64-windows-dlls: - runs-on: windows-2022 + runs-on: windows-2025 steps: - name: Disable CRLF line ending substitution run: | @@ -103,18 +103,18 @@ jobs: uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 - name: Set up Cygwin - uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401 # v4 + uses: cygwin/cygwin-install-action@711d29f3da23c9f4a1798e369a6f01198c13b11a # v6 with: packages: make install-dir: C:\cygwin64 add-to-path: false - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Cache libraries id: cache-dlls - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | # openssl and llvm take much longer to build so they are cached separately libs/pcre-dynamic.lib @@ -166,7 +166,7 @@ jobs: - name: Cache OpenSSL id: cache-openssl-dlls - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | libs/crypto-dynamic.lib @@ -176,20 +176,20 @@ jobs: key: win-openssl-dlls-3.1.0-${{ hashFiles('etc/win-ci/build-openssl.ps1') }}-msvc - name: Set up NASM if: steps.cache-openssl-dlls.outputs.cache-hit != 'true' - uses: ilammy/setup-nasm@13cbeb366c45c4379d3478cdcbadd8295feb5028 # v1.5.1 + uses: ilammy/setup-nasm@72793074d3c8cdda771dba85f6deafe00623038b # v1.5.2 - name: Build OpenSSL if: steps.cache-openssl-dlls.outputs.cache-hit != 'true' run: .\etc\win-ci\build-openssl.ps1 -BuildTree deps\openssl -Version 3.1.0 -Dynamic x86_64-windows-llvm-libs: - runs-on: windows-2022 + runs-on: windows-2025 steps: - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 - name: Cache LLVM id: cache-llvm-libs - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: llvm key: llvm-libs-${{ env.CI_LLVM_VERSION }}-msvc @@ -205,7 +205,7 @@ jobs: cmake "-DCMAKE_INSTALL_PREFIX=$(pwd)\..\llvm" -P cmake_install.cmake x86_64-windows-llvm-dlls: - runs-on: windows-2022 + runs-on: windows-2025 steps: - name: Disable CRLF line ending substitution run: | @@ -215,11 +215,11 @@ jobs: uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Cache LLVM id: cache-llvm-dlls - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | libs/llvm_VERSION @@ -238,7 +238,7 @@ jobs: llvm_version: "18.1.1" x86_64-windows-test: - runs-on: windows-2022 + runs-on: windows-2025 needs: [x86_64-windows-release] steps: - name: Disable CRLF line ending substitution @@ -249,16 +249,16 @@ jobs: uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download Crystal executable - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal path: build - name: Restore LLVM - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: llvm key: llvm-libs-${{ env.CI_LLVM_VERSION }}-msvc @@ -286,7 +286,7 @@ jobs: run: make -f Makefile.win samples x86_64-windows-test-interpreter: - runs-on: windows-2022 + runs-on: windows-2025 needs: [x86_64-windows-release] steps: - name: Disable CRLF line ending substitution @@ -294,16 +294,16 @@ jobs: git config --global core.autocrlf false - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download Crystal executable - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal path: build - name: Restore LLVM - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: llvm key: llvm-libs-${{ env.CI_LLVM_VERSION }}-msvc @@ -322,7 +322,7 @@ jobs: x86_64-windows-installer: if: github.repository_owner == 'crystal-lang' && (startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/ci/')) - runs-on: windows-2022 + runs-on: windows-2025 needs: [x86_64-windows-release] steps: - name: Disable CRLF line ending substitution @@ -330,16 +330,16 @@ jobs: git config --global core.autocrlf false - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download Crystal executable - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: crystal path: etc/win-ci/portable - name: Restore LLVM - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: llvm key: llvm-libs-${{ env.CI_LLVM_VERSION }}-msvc @@ -359,7 +359,7 @@ jobs: iscc.exe crystal.iss - name: Upload Crystal installer - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: crystal-installer path: etc/win-ci/Output/crystal-setup.exe diff --git a/.github/workflows/win_build_portable.yml b/.github/workflows/win_build_portable.yml index a81b9e8083ed..932a2850bb6d 100644 --- a/.github/workflows/win_build_portable.yml +++ b/.github/workflows/win_build_portable.yml @@ -14,7 +14,7 @@ permissions: {} jobs: build: - runs-on: windows-2022 + runs-on: windows-2025 steps: - name: Disable CRLF line ending substitution run: | @@ -30,10 +30,10 @@ jobs: crystal: "1.14.0" - name: Download Crystal source - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Restore libraries - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: | libs/pcre.lib @@ -48,7 +48,7 @@ jobs: key: win-libs-${{ hashFiles('.github/workflows/win.yml', 'etc/win-ci/*.ps1') }}-msvc fail-on-cache-miss: true - name: Restore OpenSSL - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: | libs/crypto.lib @@ -57,7 +57,7 @@ jobs: key: win-openssl-libs-3.1.0-${{ hashFiles('etc/win-ci/build-openssl.ps1') }}-msvc fail-on-cache-miss: true - name: Restore DLLs - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: | libs/pcre-dynamic.lib @@ -81,7 +81,7 @@ jobs: key: win-dlls-${{ hashFiles('.github/workflows/win.yml', 'etc/win-ci/*.ps1') }}-msvc fail-on-cache-miss: true - name: Restore OpenSSL DLLs - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: | libs/crypto-dynamic.lib @@ -91,13 +91,13 @@ jobs: key: win-openssl-dlls-3.1.0-${{ hashFiles('etc/win-ci/build-openssl.ps1') }}-msvc fail-on-cache-miss: true - name: Restore LLVM - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: llvm key: llvm-libs-${{ inputs.llvm_version }}-msvc fail-on-cache-miss: true - name: Restore LLVM DLLs - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: | libs/llvm_VERSION @@ -124,7 +124,7 @@ jobs: make -f Makefile.win -B ${{ inputs.release && 'release=1' || '' }} interpreter=1 - name: Download shards release - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: crystal-lang/shards ref: v0.18.0 @@ -145,7 +145,7 @@ jobs: cp README.md crystal/ - name: Upload Crystal binaries - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: crystal path: crystal