Skip to content

Commit a84e84e

Browse files
committed
Split CI into two jobs
1 parent b256449 commit a84e84e

File tree

5 files changed

+67
-8
lines changed

5 files changed

+67
-8
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
FROM ubuntu:22.04
2+
3+
WORKDIR /build
4+
5+
ARG DEBIAN_FRONTEND=noninteractive
6+
RUN apt-get update && apt-get install -y --no-install-recommends \
7+
ca-certificates \
8+
cmake \
9+
curl \
10+
g++ \
11+
git \
12+
make \
13+
ninja-build \
14+
python3 \
15+
xz-utils
16+
17+
COPY host-x86_64/dist-windows-gnullvm/install-llvm-mingw.sh /build
18+
RUN ./install-llvm-mingw.sh
19+
20+
COPY scripts/sccache.sh /scripts/
21+
RUN sh /scripts/sccache.sh
22+
23+
ENV CC_aarch64_pc_windows_gnullvm=aarch64-w64-mingw32-clang \
24+
CXX_aarch64_pc_windows_gnullvm=aarch64-w64-mingw32-clang++
25+
26+
ENV HOST=aarch64-pc-windows-gnullvm
27+
28+
# We are bootstrapping this target and cannot use previously built artifacts.
29+
# Without this option Clang is given `"-I/checkout/obj/build/aarch64-pc-windows-gnullvm/ci-llvm/include"`
30+
# despite no such directory existing:
31+
# ❯ ls obj/dist-windows-gnullvm/build/aarch64-pc-windows-gnullvm/ -1
32+
#  llvm
33+
#  stage2
34+
ENV NO_DOWNLOAD_CI_LLVM 1
35+
36+
ENV RUST_CONFIGURE_ARGS \
37+
--enable-extended \
38+
--enable-profiler \
39+
--enable-sanitizers \
40+
--disable-docs \
41+
--set llvm.download-ci-llvm=false \
42+
--set rust.llvm-tools=false
43+
# LLVM cross tools are not installed into expected location so copying fails.
44+
# Probably will solve itself when building from Windows.
45+
# --enable-full-tools \
46+
47+
ENV SCRIPT python3 ../x.py dist --host $HOST --target $HOST
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
release_date=20250430
6+
archive=llvm-mingw-${release_date}-ucrt-ubuntu-22.04-x86_64.tar.xz
7+
curl -L https://github.com/mstorsjo/llvm-mingw/releases/download/${release_date}/${archive} | \
8+
tar --extract --xz --strip 1 --directory /usr/local
9+
10+
# https://github.com/mstorsjo/llvm-mingw/issues/493
11+
ln -s $aarch64-w64-windows-gnu.cfg /usr/local/bin/$arch-pc-windows-gnu.cfg

src/ci/docker/host-x86_64/dist-windows-gnullvm/Dockerfile renamed to src/ci/docker/host-x86_64/dist-x86_64-windows-gnullvm/Dockerfile

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@ RUN ./install-llvm-mingw.sh
2020
COPY scripts/sccache.sh /scripts/
2121
RUN sh /scripts/sccache.sh
2222

23-
ENV CC_aarch64_pc_windows_gnullvm=aarch64-w64-mingw32-clang \
24-
CXX_aarch64_pc_windows_gnullvm=aarch64-w64-mingw32-clang++ \
25-
CC_i686_pc_windows_gnullvm=i686-w64-mingw32-clang \
23+
ENV CC_i686_pc_windows_gnullvm=i686-w64-mingw32-clang \
2624
CC_x86_64_pc_windows_gnullvm=x86_64-w64-mingw32-clang \
2725
CXX_x86_64_pc_windows_gnullvm=x86_64-w64-mingw32-clang++
2826

29-
ENV HOSTS=aarch64-pc-windows-gnullvm,x86_64-pc-windows-gnullvm
30-
ENV TARGETS=aarch64-pc-windows-gnullvm,i686-pc-windows-gnullvm,x86_64-pc-windows-gnullvm
27+
ENV HOST=x86_64-pc-windows-gnullvm
28+
ENV TARGETS=i686-pc-windows-gnullvm,x86_64-pc-windows-gnullvm
3129

3230
# We are bootstrapping this target and cannot use previously built artifacts.
3331
# Without this option Clang is given `"-I/checkout/obj/build/aarch64-pc-windows-gnullvm/ci-llvm/include"`
@@ -48,4 +46,4 @@ ENV RUST_CONFIGURE_ARGS \
4846
# Probably will solve itself when building from Windows.
4947
# --enable-full-tools \
5048

51-
ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $TARGETS
49+
ENV SCRIPT python3 ../x.py dist --host $HOST --target $TARGETS

src/ci/docker/host-x86_64/dist-windows-gnullvm/install-llvm-mingw.sh renamed to src/ci/docker/host-x86_64/dist-x86_64-windows-gnullvm/install-llvm-mingw.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ curl -L https://github.com/mstorsjo/llvm-mingw/releases/download/${release_date}
88
tar --extract --xz --strip 1 --directory /usr/local
99

1010
# https://github.com/mstorsjo/llvm-mingw/issues/493
11-
for arch in aarch64 x86_64; do
11+
for arch in i686 x86_64; do
1212
ln -s $arch-w64-windows-gnu.cfg /usr/local/bin/$arch-pc-windows-gnu.cfg
1313
done

src/ci/github-actions/jobs.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,10 @@ auto:
204204
- name: dist-s390x-linux
205205
<<: *job-linux-4c
206206

207-
- name: dist-windows-gnullvm
207+
- name: dist-aarch64-windows-gnullvm
208+
<<: *job-linux-4c
209+
210+
- name: dist-x86_64-windows-gnullvm
208211
<<: *job-linux-4c
209212

210213
- name: dist-various-1

0 commit comments

Comments
 (0)