Skip to content

Commit 2610b80

Browse files
committed
Simplify, run inside of a sandbox
1 parent 6aa65ed commit 2610b80

File tree

3 files changed

+64
-23
lines changed

3 files changed

+64
-23
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# This file represents what is put into the webUI.
2+
# It is purely for keeping track of the changes we make to the webUI configuration; modifying this file has no effect.
3+
# We use the `cryptic` buildkite plugin to provide secrets management, which requires some integration into the WebUI's steps.
4+
agents:
5+
queue: "julia"
6+
sandbox.jl: "true"
7+
8+
steps:
9+
- label: ":unlock: Unlock secrets, launch pipelines"
10+
plugins:
11+
- staticfloat/cryptic:
12+
# Our signed pipelines must have a `signature` or `signature_file` parameter that
13+
# verifies the treehash of the pipeline itself and the inputs listed in `inputs`
14+
signed_pipelines:
15+
- pipeline: .buildkite/coverage-linux64/pipeline.yml
16+
signature: "U2FsdGVkX1+/lr4O7tYOavO3zubp1KCSw0nbznj1mH354bH3UTM0HaDX2CpkmOYYxpE5klotf9mo366YvVeS/fbpazKlKDnetPgI8eWFLJh7ho9nbq9jPJUYscddla9R"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Coverage pipeline
2+
3+
We run coverage on a separate pipeline, that uses a scheduled build rather than webhooks.
4+
The pipeline is here: https://buildkite.com/julialang/julia-coverage-linux64
5+
6+
It contains [its own webui steps](0_webuiy.ml) (listed here in this repository for clarity) and its own [pipeline.yml](pipeline.yml).
Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,43 @@
1+
# These steps should only run on `sandbox.jl` machines, not `docker`-isolated ones
2+
# since we need nestable sandboxing. The rootfs images being used here are built from
3+
# the `.buildkite/rootfs_images/llvm-passes.jl` file.
4+
agents:
5+
queue: "julia"
6+
# Only run on `sandbox.jl` machines (not `docker`-isolated ones) since we need nestable sandboxing
7+
sandbox.jl: "true"
8+
os: "linux"
9+
110
steps:
2-
- label: "coverage-linux64"
3-
commands:
4-
- echo "--- Print the Git status"
5-
- git status
6-
- git log -n 1
7-
- echo ""
8-
- echo "--- Install build dependencies"
9-
- apt-get update
10-
- apt-get install -y build-essential cmake curl gfortran git libatomic1 m4 perl pkg-config python python3 wget
11-
- echo "--- Build Julia from source"
12-
- make -j 6
13-
- echo "--- Print Julia version info"
14-
- ./julia -e 'using InteractiveUtils; InteractiveUtils.versioninfo()'
15-
- ./julia -e '@info "" Sys.CPU_THREADS'
16-
- echo "--- Run Julia tests with code coverage enabled"
17-
- git config --global init.defaultBranch master # this is necessary to make sure that the LibGit2 tests passes
18-
- ./julia --code-coverage=all --sysimage-native-code=no .buildkite/coverage-linux64/run_tests_base.jl
19-
- echo "--- Process and upload coverage information"
20-
- ./julia .buildkite/coverage-linux64/upload_coverage.jl
21-
agents:
22-
queue: "juliacpu" # this should be julia -- also in pipeline settings
23-
# os: linux # tag missing for juliacpu queue
24-
timeout_in_minutes: 480 # 480 minutes = 8 hours
11+
- label: ":unlock: :coverage: Run coverage test"
12+
plugins:
13+
- staticfloat/cryptic:
14+
variables:
15+
- CODECOV_TOKEN="U2FsdGVkX19l0fhdBabbuiEdysyEabkJLRHfxm7CNRkuGbnwPV365sxxC7Czs/CVcws0N1oB4pVwALRRMe36oA=="
16+
- JuliaCI/julia#v1:
17+
version: 1.6
18+
- staticfloat/sandbox#v1:
19+
rootfs_url: https://github.com/JuliaCI/rootfs-images/releases/download/v1/llvm-passes.tar.gz
20+
rootfs_treehash: "f3ed53f159e8f13edfba8b20ebdb8ece73c1b8a8"
21+
uid: 1000
22+
gid: 1000
23+
commands: |
24+
echo "--- Build Julia from source"
25+
make -j 6
26+
27+
echo "--- Print Julia version info"
28+
./julia -e 'using InteractiveUtils; InteractiveUtils.versioninfo()'
29+
./julia -e '@info "" Sys.CPU_THREADS'
30+
# this is necessary to make sure that the LibGit2 tests passes
31+
git config --global init.defaultBranch master
32+
33+
echo "--- Run Julia tests with code coverage enabled"
34+
# Run the actual tests
35+
./julia --code-coverage=all --sysimage-native-code=no .buildkite/coverage-linux64/run_tests_base.jl
36+
37+
echo "--- Process and upload coverage information"
38+
./julia .buildkite/coverage-linux64/upload_coverage.jl
39+
timeout_in_minutes: 600 # 600 minutes = 10 hours
40+
41+
# We must accept the signed job id secret in order to propagate secrets
42+
env:
43+
BUILDKITE_PLUGIN_CRYPTIC_BASE64_SIGNED_JOB_ID_SECRET: ${BUILDKITE_PLUGIN_CRYPTIC_BASE64_SIGNED_JOB_ID_SECRET?}

0 commit comments

Comments
 (0)