-
-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This was a "fun" experiment, but we're not going to use these runners any time soon for the following reasons: 1. Alpine on ARM64 doesn't support Javascript actions, which is pretty much all of them. This was first reported back in 2020 (actions/runner#801), and knowing how these things go it's unlikely to be resolved any time soon. 2. The lack of Alpine support on ARM64 means we have to resort to a somewhat hacky cross-compilation approach to run tests for musl. 3. The runners are flaky and will randomly fail with Docker related errors, and produce a ton of permission errors (https://github.com/orgs/community/discussions/148648#discussioncomment-11858098). 4. Building multi-arch Docker containers is messy and requires a bunch of cargo-cult copy-pasting to get things to work. I don't want to repeat that for the nightly and stable containers _just_ so _some_ people can use those in CI jobs. 5. We already run tests on an ARM64 macOS host, so any ARM related errors are bound to pop up there, making all this effort rather redundant. We'll reconsider using the ARM64 runners at some point in the future when these issues are addressed and building multi-arch containers is made easier.
- Loading branch information
1 parent
5046f63
commit b35ed86
Showing
11 changed files
with
150 additions
and
167 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
FROM alpine:3 | ||
|
||
ENV LLVM_VERSION 17 | ||
ENV RUST_VERSION 1.78 | ||
|
||
ENV PATH /opt/cargo/bin:$PATH | ||
ENV RUSTUP_HOME /opt/rustup | ||
ENV CARGO_HOME /opt/cargo | ||
|
||
RUN apk add --update build-base tar git rustup \ | ||
llvm$LLVM_VERSION llvm$LLVM_VERSION-dev llvm$LLVM_VERSION-static \ | ||
libstdc++-dev zlib-static zstd-static libxml2-static | ||
|
||
RUN rustup-init --quiet -y --no-modify-path --profile minimal \ | ||
--component clippy,rustfmt --default-toolchain $RUST_VERSION |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
FROM debian:12 | ||
|
||
ENV LLVM_VERSION 17 | ||
ENV RUST_VERSION 1.78 | ||
|
||
ENV PATH /opt/cargo/bin:$PATH | ||
ENV CARGO_HOME /opt/cargo | ||
ENV RUSTUP_HOME /opt/rustup | ||
|
||
RUN apt update --quiet && apt install --quiet --yes curl build-essential tar git | ||
RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc | ||
RUN /usr/bin/echo -e "deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-$LLVM_VERSION main" \ | ||
> /etc/apt/sources.list.d/llvm$LLVM_VERSION.list | ||
|
||
RUN apt update --quiet && apt install --quiet --yes \ | ||
llvm-$LLVM_VERSION llvm-$LLVM_VERSION-dev \ | ||
libstdc++-11-dev libclang-common-$LLVM_VERSION-dev zlib1g-dev \ | ||
libpolly-$LLVM_VERSION-dev libzstd-dev | ||
|
||
RUN curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused --location \ | ||
--silent --show-error --fail "https://sh.rustup.rs" | \ | ||
sh -s -- --quiet -y --no-modify-path --profile minimal \ | ||
--component clippy,rustfmt --default-toolchain $RUST_VERSION | ||
|
||
RUN apt install --quiet --yes musl-tools |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
FROM debian:12 | ||
|
||
ENV LLVM_VERSION 17 | ||
ENV RUST_VERSION 1.78 | ||
|
||
ENV PATH /opt/cargo/bin:$PATH | ||
ENV CARGO_HOME /opt/cargo | ||
ENV RUSTUP_HOME /opt/rustup | ||
|
||
RUN apt update --quiet && apt install --quiet --yes curl build-essential tar git | ||
RUN curl https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc | ||
RUN /usr/bin/echo -e "deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-$LLVM_VERSION main" \ | ||
> /etc/apt/sources.list.d/llvm$LLVM_VERSION.list | ||
|
||
RUN apt update --quiet && apt install --quiet --yes \ | ||
llvm-$LLVM_VERSION llvm-$LLVM_VERSION-dev \ | ||
libstdc++-11-dev libclang-common-$LLVM_VERSION-dev zlib1g-dev \ | ||
libpolly-$LLVM_VERSION-dev libzstd-dev | ||
|
||
RUN curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused --location \ | ||
--silent --show-error --fail "https://sh.rustup.rs" | \ | ||
sh -s -- --quiet -y --no-modify-path --profile minimal \ | ||
--component clippy,rustfmt --default-toolchain $RUST_VERSION | ||
|
||
RUN dpkg --add-architecture arm64 \ | ||
&& apt update --quiet \ | ||
&& apt install --quiet --yes gcc-aarch64-linux-gnu musl-tools:arm64 |
Oops, something went wrong.