Skip to content

Commit e5591f9

Browse files
committed
ci: use gha-runner image
Customize the docker image for use on the self-hosted GHA runner. This allows us to elide installation steps from the CI workflow and enables us using a shared cache for builds.
1 parent 5b8a649 commit e5591f9

File tree

2 files changed

+47
-24
lines changed

2 files changed

+47
-24
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: build-test-linux-stable
1+
name: ci
22

33
on:
44
push:
@@ -23,30 +23,9 @@ jobs:
2323
build_and_test:
2424
name: Sugondat - latest
2525
runs-on: self-hosted
26-
strategy:
27-
matrix:
28-
toolchain:
29-
- stable
3026
steps:
3127
- uses: actions/checkout@v3
32-
- run: apt-get update
33-
- run: apt-get install -y protobuf-compiler
34-
- run: apt-get install -y build-essential
35-
- run: apt-get install -y libclang-dev
36-
- run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s -- -y
37-
- name: Setup toolchain
38-
run: |
39-
source "$HOME/.cargo/env"
40-
rustup update ${{ matrix.toolchain }}
41-
rustup default ${{ matrix.toolchain }}
42-
rustup target add wasm32-unknown-unknown
43-
rustup install nightly
44-
rustup target add wasm32-unknown-unknown --toolchain nightly
4528
- name: cargo build
46-
run: |
47-
source "$HOME/.cargo/env"
48-
cargo build --verbose --all
29+
run: cargo build --verbose --all
4930
- name: cargo test
50-
run: |
51-
source "$HOME/.cargo/env"
52-
cargo test --verbose --all
31+
run: cargo test --verbose --all

docker/gha-runner.Dockerfile

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# An image that acts as the base image for the GHA runner running in sysbox.
2+
#
3+
# Build: docker build -t ghcr.io/thrumdev/gha-runner -f docker/gha-runner.Dockerfile .
4+
# Push: docker push ghcr.io/thrumdev/gha-runner
5+
6+
FROM rodnymolina588/gha-sysbox-runner@sha256:d10a36f2da30aa0df71d1ac062cc79fc5114eec7b6ae8a0c42cadf568e6eefa8
7+
8+
ARG RUSTC_VERSION=nightly-2023-10-16
9+
10+
LABEL org.opencontainers.image.source=https://github.com/thrumdev/blobs
11+
12+
ENV CARGO_INCREMENTAL=0
13+
ENV CARGO_HOME=/cargo
14+
ENV CARGO_TARGET_DIR=/cargo_target
15+
ENV RUSTFLAGS=""
16+
ENV RUSTUP_HOME=/rustup
17+
18+
RUN \
19+
apt-get update && \
20+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
21+
ca-certificates \
22+
protobuf-compiler \
23+
curl \
24+
git \
25+
llvm \
26+
clang \
27+
cmake \
28+
make \
29+
libssl-dev \
30+
pkg-config
31+
32+
RUN \
33+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $RUSTC_VERSION
34+
ENV PATH=$CARGO_HOME/bin:$PATH
35+
36+
RUN rustup target add wasm32-unknown-unknown
37+
38+
# Install cargo binstall, using it install cargo-risczero, and using it install risc0 toolchain.
39+
RUN curl \
40+
-L --proto '=https' --tlsv1.2 -sSf \
41+
https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh \
42+
| bash
43+
RUN cargo binstall --no-confirm --no-symlinks cargo-risczero
44+
RUN cargo risczero install

0 commit comments

Comments
 (0)