Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pin CI runner images to explicit versions #507

Merged
merged 6 commits into from
Jan 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 12 additions & 16 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
matrix:
include:
- artifact: x86_64-linux
os: ubuntu-latest
os: ubuntu-24.04

- artifact: arm64-linux
os: ubuntu-latest
os: ubuntu-24.04
rust_target: aarch64-unknown-linux-gnu
env:
# Don't build a sysroot for this cross-compiled target since it
Expand All @@ -41,15 +41,15 @@ jobs:
-DRUST_TARGET=aarch64-unknown-linux-gnu

- artifact: arm64-macos
os: macos-latest
os: macos-14
rust_target: aarch64-apple-darwin
env:
WASI_SDK_CI_TOOLCHAIN_LLVM_CMAKE_ARGS: >-
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12
-DCMAKE_OSX_ARCHITECTURES=arm64

- artifact: x86_64-macos
os: macos-latest
os: macos-14
rust_target: x86_64-apple-darwin
env:
WASI_SDK_CI_SKIP_SYSROOT: 1
Expand All @@ -58,7 +58,7 @@ jobs:
-DCMAKE_OSX_ARCHITECTURES=x86_64

- artifact: x86_64-windows
os: windows-latest
os: windows-2022

env: ${{ matrix.env || fromJSON('{}') }}
steps:
Expand Down Expand Up @@ -165,25 +165,21 @@ jobs:

build-only-sysroot:
name: Build only sysroot
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/checkout
- uses: ./.github/actions/install-deps
- run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
name=$(lsb_release -s -c)
sudo add-apt-repository -y "deb http://apt.llvm.org/$name/ llvm-toolchain-$name-18 main"
sudo add-apt-repository -y "deb-src http://apt.llvm.org/$name/ llvm-toolchain-$name-18 main"
sudo apt-get install -y clang-18 llvm-18 lld-18
- run: cargo install [email protected]
- run: cargo install [email protected]
- run: |
cmake -G Ninja -B build -S . \
-DCMAKE_C_COMPILER=/usr/lib/llvm-18/bin/clang \
-DCMAKE_SYSTEM_NAME=WASI \
-DWASI_SDK_INCLUDE_TESTS=ON
-DWASI_SDK_INCLUDE_TESTS=ON \
-DCMAKE_C_LINKER_DEPFILE_SUPPORTED=OFF \
-DCMAKE_CXX_LINKER_DEPFILE_SUPPORTED=OFF
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is need here and below?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately I believe so yeah. This layer is for the cmake build of wasi-sdk itself, aka when building tests. The cmake layer is then for the sub-cmake-builds of libraries like libcxx themselves. At least from CI it looked like both were necessary to get things passing when just using "clang" as the compiler.

- run: ninja -C build
- run: ctest --output-on-failure --parallel 10 --test-dir build/tests

Expand All @@ -193,7 +189,7 @@ jobs:
finalize:
name: Finalize wasi-sdk artifacts
needs: build
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -253,7 +249,7 @@ jobs:
test-standalone:
name: Test standalone toolchain
needs: build
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
Expand Down
8 changes: 7 additions & 1 deletion cmake/wasi-sdk-sysroot.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,13 @@ set(default_cmake_args
-DCMAKE_C_COMPILER_WORKS=ON
-DCMAKE_CXX_COMPILER_WORKS=ON
-DCMAKE_SYSROOT=${wasi_sysroot}
-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_SOURCE_DIR}/cmake)
-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_SOURCE_DIR}/cmake
# CMake detects this based on `CMAKE_C_COMPILER` alone and when that compiler
# is just a bare "clang" installation then it can mistakenly deduce that this
# feature is supported when it's not actually supported for WASI targets.
# Currently `wasm-ld` does not support the linker flag for this.
-DCMAKE_C_LINKER_DEPFILE_SUPPORTED=OFF
-DCMAKE_CXX_LINKER_DEPFILE_SUPPORTED=OFF)

if(CMAKE_C_COMPILER_LAUNCHER)
list(APPEND default_cmake_args -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER})
Expand Down