Skip to content

Commit fef6ecc

Browse files
committed
Add buildkite config
We're going to test on buildkite, since there's something wrong with the GHA environment and I don't control that as tightly as I control buildkite.
1 parent da464b8 commit fef6ecc

File tree

4 files changed

+138
-0
lines changed

4 files changed

+138
-0
lines changed

.buildkite/pipeline.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
steps:
2+
- label: ":rocket: Launch matrix of options"
3+
commands: |
4+
# These variables are available for templating in our child pipelines
5+
export JULIA_VERSION OS ARCH AGENT_ARCH ROOTFS_URL ROOTFS_HASH DOCKER_IMAGE
6+
7+
function upload_pipeline() {
8+
buildkite-agent pipeline upload .buildkite/test_$${OS}.yml
9+
}
10+
11+
# We'll test on the following julia versions
12+
for JULIA_VERSION in 1.8 nightly; do
13+
# First, linux
14+
OS="linux"
15+
16+
ARCH="x86_64"
17+
AGENT_ARCH="x86_64"
18+
ROOTFS_URL="https://github.com/JuliaCI/rootfs-images/releases/download/v5.26/package_linux.x86_64.tar.gz"
19+
ROOTFS_HASH="5b0b851aca3c941b900a1301c13922c6cfc7f211"
20+
upload_pipeline
21+
22+
# We still schedule this one on an x86_64 machine, but use an i686 rootfs
23+
ARCH="i686"
24+
AGENT_ARCH="x86_64"
25+
ROOTFS_URL="https://github.com/JuliaCI/rootfs-images/releases/download/v5.26/package_linux.i686.tar.gz"
26+
ROOTFS_HASH="abe9ca251b93980e444738b3996779d60ea7045d"
27+
upload_pipeline
28+
29+
ARCH="aarch64"
30+
AGENT_ARCH="aarch64"
31+
ROOTFS_URL="https://github.com/JuliaCI/rootfs-images/releases/download/v5.26/package_linux.aarch64.tar.gz"
32+
ROOTFS_HASH="dcf39d10ba43bf13c75d5031c3a88f125780033b"
33+
upload_pipeline
34+
35+
36+
# Next, windows
37+
OS="windows"
38+
ARCH="x86_64"
39+
AGENT_ARCH="x86_64"
40+
DOCKER_IMAGE="juliapackaging/package-windows-x86_64:v5.44"
41+
upload_pipeline
42+
43+
# same as for Linux, we schedule on an x86_64 machine, but use an i686 docker image
44+
OS="windows"
45+
ARCH="i686"
46+
AGENT_ARCH="x86_64"
47+
DOCKER_IMAGE="juliapackaging/package-windows-i686:v5.44"
48+
upload_pipeline
49+
50+
51+
52+
# Finally, macOS
53+
OS="macos"
54+
for ARCH in x86_64 aarch64; do
55+
AGENT_ARCH="$${ARCH}"
56+
upload_pipeline
57+
done
58+
done
59+
agents:
60+
queue: "juliaecosystem"
61+
62+
- label: "func_list idempotency"
63+
commands: |
64+
cd ext/gensymbol
65+
./generate_func_list.sh
66+
git diff --exit-code
67+
agents:
68+
queue: "juliaecosystem"
69+
os: "linux"
70+
arch: "x86_64"

.buildkite/test_linux.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
steps:
2+
- label: ":julia: :linux: ${ARCH?} Julia ${JULIA_VERSION?}"
3+
plugins:
4+
- JuliaCI/julia#v1:
5+
version: "${JULIA_VERSION?}"
6+
- staticfloat/sandbox#v1:
7+
rootfs_url: "${ROOTFS_URL?}"
8+
rootfs_treehash: "${ROOTFS_HASH?}"
9+
uid: 0
10+
gid: 0
11+
workspaces:
12+
- "/cache:/cache"
13+
- staticfloat/metahook#sf/windows_backslashes:
14+
pre-command: |
15+
# Upgrade our debian package to bullseye (wowza)
16+
if [[ $$(uname -m) == "x86_64" ]] || [[ $$(uname -m) == "aarch64" ]]; then
17+
echo "deb http://deb.debian.org/debian bullseye main" > /etc/apt/sources.list.d/bullseye.list
18+
apt update && apt install -y libblas64-dev liblapack64-dev
19+
fi
20+
commands: |
21+
julia --project=test -e 'import Pkg; Pkg.instantiate()'
22+
echo "+++ run tests"
23+
julia --project=test test/runtests.jl
24+
agents:
25+
queue: "juliaecosystem"
26+
os: "linux"
27+
sandbox.jl: "true"
28+
arch: "${AGENT_ARCH?}"

.buildkite/test_macos.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
steps:
2+
- label: ":julia: :macos: ${ARCH?} Julia ${JULIA_VERSION?}"
3+
plugins:
4+
- JuliaCI/julia#v1:
5+
version: "${JULIA_VERSION?}"
6+
- staticfloat/metahook#sf/windows_backslashes:
7+
pre-command: |
8+
echo "This is a test"
9+
commands: |
10+
julia --project=test -e 'import Pkg; Pkg.instantiate()'
11+
echo "+++ run tests"
12+
julia --project=test test/runtests.jl
13+
agents:
14+
queue: "juliaecosystem"
15+
os: "macos"
16+
arch: "${AGENT_ARCH?}"

.buildkite/test_windows.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
steps:
2+
- label: ":julia: :windows: ${ARCH?} Julia ${JULIA_VERSION?}"
3+
plugins:
4+
- JuliaCI/julia#v1:
5+
version: "${JULIA_VERSION?}"
6+
- staticfloat/metahook#sf/windows_backslashes:
7+
# Copy our julia installation to a known location that we can mount with docker
8+
pre-command: |
9+
cp $(dirname $(dirname $(which julia))) /c/buildkite-agent
10+
- docker#v3.13.0:
11+
image: "${DOCKER_IMAGE?}"
12+
always-pull: true
13+
volumes:
14+
# Abuse the fact that we have a `PATH` mapping for `buildkite-agent`
15+
# to mount in our build of Julia for use within the container:
16+
- "C:\\buildkite-agent\\bin:C:\\buildkite-agent\\bin"
17+
commands: |
18+
julia --project=test -e 'import Pkg; Pkg.instantiate()'
19+
echo "+++ run tests"
20+
julia --project=test test/runtests.jl
21+
agents:
22+
queue: "juliaecosystem"
23+
os: "windows"
24+
arch: "${AGENT_ARCH?}"

0 commit comments

Comments
 (0)