From 780fe704898b20dda212d8c78de705384547f8c2 Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Wed, 17 Jun 2026 17:03:14 -0400 Subject: [PATCH 1/5] Execute `trim` tests in `JuliaC` GROUP These replace the previous separate "trimming" task. --- pipelines/main/launch_unsigned_jobs.yml | 1 - .../main/misc/juliac/test_juliac_linux.yml | 3 ++ .../main/misc/juliac/test_juliac_macos.yml | 3 ++ .../main/misc/juliac/test_juliac_windows.yml | 3 ++ pipelines/main/misc/trimming.yml | 39 ------------------- 5 files changed, 9 insertions(+), 40 deletions(-) delete mode 100644 pipelines/main/misc/trimming.yml diff --git a/pipelines/main/launch_unsigned_jobs.yml b/pipelines/main/launch_unsigned_jobs.yml index d06b0e94..4d4bf652 100644 --- a/pipelines/main/launch_unsigned_jobs.yml +++ b/pipelines/main/launch_unsigned_jobs.yml @@ -84,7 +84,6 @@ steps: buildkite-agent pipeline upload .buildkite/pipelines/main/misc/doctest.yml buildkite-agent pipeline upload .buildkite/pipelines/main/misc/pdf_docs/build_pdf_docs.yml buildkite-agent pipeline upload .buildkite/pipelines/main/misc/embedding.yml - buildkite-agent pipeline upload .buildkite/pipelines/main/misc/trimming.yml buildkite-agent pipeline upload .buildkite/pipelines/main/misc/llvmpasses.yml # buildkite-agent pipeline upload .buildkite/pipelines/main/misc/whitespace.yml # Currently runs in GitHub Actions instead of Buildkite diff --git a/pipelines/main/misc/juliac/test_juliac_linux.yml b/pipelines/main/misc/juliac/test_juliac_linux.yml index 5ebb9f9e..8219e6d4 100644 --- a/pipelines/main/misc/juliac/test_juliac_linux.yml +++ b/pipelines/main/misc/juliac/test_juliac_linux.yml @@ -34,6 +34,9 @@ steps: else JULIA_PKG_PRECOMPILE_AUTO=0 ./julia -e 'using Pkg; Pkg.add(name="JuliaC", rev="main"); ENV["JULIA_PKG_PRECOMPILE_AUTO"]=1; Pkg.test("JuliaC")' fi + + echo "--- Test trimming the Julia repo's projects (test/trim)" + ./julia test/trim.jl timeout_in_minutes: ${TIMEOUT?} soft_fail: ${ALLOW_FAIL?} agents: diff --git a/pipelines/main/misc/juliac/test_juliac_macos.yml b/pipelines/main/misc/juliac/test_juliac_macos.yml index 5b880162..549f086d 100644 --- a/pipelines/main/misc/juliac/test_juliac_macos.yml +++ b/pipelines/main/misc/juliac/test_juliac_macos.yml @@ -26,6 +26,9 @@ steps: else JULIA_PKG_PRECOMPILE_AUTO=0 ./julia -e 'using Pkg; Pkg.add(name="JuliaC", rev="main"); ENV["JULIA_PKG_PRECOMPILE_AUTO"]=1; Pkg.test("JuliaC")' fi + + echo "--- Test trimming the Julia repo's projects (test/trim)" + ./julia test/trim.jl timeout_in_minutes: ${TIMEOUT?} soft_fail: ${ALLOW_FAIL?} agents: diff --git a/pipelines/main/misc/juliac/test_juliac_windows.yml b/pipelines/main/misc/juliac/test_juliac_windows.yml index 37980bd5..83a1cc81 100644 --- a/pipelines/main/misc/juliac/test_juliac_windows.yml +++ b/pipelines/main/misc/juliac/test_juliac_windows.yml @@ -21,6 +21,9 @@ steps: else JULIA_PKG_PRECOMPILE_AUTO=0 ./usr/bin/julia.exe -e 'using Pkg; Pkg.add(name="JuliaC", rev="main"); ENV["JULIA_PKG_PRECOMPILE_AUTO"]=1; Pkg.test("JuliaC")' fi + + echo "--- Test trimming the Julia repo's projects (test/trim)" + ./usr/bin/julia.exe test/trim.jl timeout_in_minutes: ${TIMEOUT?} soft_fail: ${ALLOW_FAIL?} agents: diff --git a/pipelines/main/misc/trimming.yml b/pipelines/main/misc/trimming.yml deleted file mode 100644 index 514beb77..00000000 --- a/pipelines/main/misc/trimming.yml +++ /dev/null @@ -1,39 +0,0 @@ -steps: - - group: "Check" - steps: - - label: "trimming" - key: "trimming" - depends_on: - - "build_x86_64-linux-gnu" - plugins: - - JuliaCI/external-buildkite#v1: - version: "./.buildkite-external-version" - repo_url: "https://github.com/JuliaCI/julia-buildkite" - - JuliaCI/julia#v1: - # Drop default "registries" directory, so it is not persisted from execution to execution - persist_depot_dirs: packages,artifacts,compiled - version: '1.10' # GREP_ME: Keep this updated to LTS. Do not set it to '1' or 'stable' or 'latest'. - - staticfloat/sandbox#v1: - rootfs_url: https://github.com/JuliaCI/rootfs-images/releases/download/v6.00/package_linux.x86_64.tar.gz - rootfs_treehash: "4dcde853eb5baaa0a8f087b633eaf955dc94b5dc" - uid: 1000 - gid: 1000 - workspaces: - # Include `/cache/repos` so that our `git` version introspection works. - - "/cache/repos:/cache/repos" - if: | # We only run the `trimming` job on Julia 1.12 and later. - (pipeline.slug != "julia-release-1-dot-10") && (pipeline.slug != "julia-release-1-dot-11") - commands: | - # Download pre-built julia, extract into `usr/` - buildkite-agent artifact download --step "build_x86_64-linux-gnu" 'julia-*-linux-x86_64.tar.gz' . - mkdir -p usr - tar -C usr --strip-components=1 -zxf julia-*-linux-x86_64.tar.gz - rm -f julia-*-linux-x86_64.tar.gz - - make --output-sync -j$${JULIA_CPU_THREADS:?} -C test/trimming check JULIA="$$(pwd)/usr/bin/julia" BIN="$$(pwd)/usr/bin" - timeout_in_minutes: 60 - agents: - queue: "test" - sandbox_capable: "true" - os: "linux" - arch: "x86_64" From 3ca40d3c7dc59ebea681ca22300e31d41f9d9a0e Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Wed, 17 Jun 2026 17:06:51 -0400 Subject: [PATCH 2/5] Add JuliaC FreeBSD target --- pipelines/main/misc/juliac/test_juliac.yml | 5 +++ .../misc/juliac/test_juliac_freebsd.arches | 9 +++++ .../main/misc/juliac/test_juliac_freebsd.yml | 38 +++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 pipelines/main/misc/juliac/test_juliac_freebsd.arches create mode 100644 pipelines/main/misc/juliac/test_juliac_freebsd.yml diff --git a/pipelines/main/misc/juliac/test_juliac.yml b/pipelines/main/misc/juliac/test_juliac.yml index 658e1303..c1087cb0 100644 --- a/pipelines/main/misc/juliac/test_juliac.yml +++ b/pipelines/main/misc/juliac/test_juliac.yml @@ -26,6 +26,11 @@ steps: bash .buildkite/utilities/arches_pipeline_upload.sh \ .buildkite/pipelines/main/misc/juliac/test_juliac_windows.arches \ .buildkite/pipelines/main/misc/juliac/test_juliac_windows.yml + ### Launch FreeBSD JuliaC test jobs: + GROUP="JuliaC" \ + bash .buildkite/utilities/arches_pipeline_upload.sh \ + .buildkite/pipelines/main/misc/juliac/test_juliac_freebsd.arches \ + .buildkite/pipelines/main/misc/juliac/test_juliac_freebsd.yml agents: queue: "launch" os: "linux" diff --git a/pipelines/main/misc/juliac/test_juliac_freebsd.arches b/pipelines/main/misc/juliac/test_juliac_freebsd.arches new file mode 100644 index 00000000..2db04f2b --- /dev/null +++ b/pipelines/main/misc/juliac/test_juliac_freebsd.arches @@ -0,0 +1,9 @@ +# OS TRIPLET ARCH TIMEOUT +freebsd x86_64-unknown-freebsd x86_64 . + +# These special lines allow us to embed default values for the columns above. +# Any column without a default mapping here will simply substitute a `.` to the empty string + +# FreeBSD hardware is slow and this job also runs the trim builds, so allow more +# time than the other JuliaC platforms. +#default TIMEOUT 90 diff --git a/pipelines/main/misc/juliac/test_juliac_freebsd.yml b/pipelines/main/misc/juliac/test_juliac_freebsd.yml new file mode 100644 index 00000000..b6dc7975 --- /dev/null +++ b/pipelines/main/misc/juliac/test_juliac_freebsd.yml @@ -0,0 +1,38 @@ +steps: + - group: "${GROUP?}" + steps: + - label: ":freebsd: test JuliaC ${TRIPLET?}" + key: "test-juliac-${TRIPLET?}" + depends_on: + - "build_${TRIPLET?}" + plugins: + - JuliaCI/external-buildkite#v1: + version: "./.buildkite-external-version" + repo_url: "https://github.com/JuliaCI/julia-buildkite" + commands: | + # Download pre-built julia, extract into `usr/` + buildkite-agent artifact download --step "build_${TRIPLET}" 'julia-*-freebsd-*.tar.gz' . + mkdir -p ./usr + tar -C ./usr --strip-components=1 -zxf julia-*-freebsd-*.tar.gz + ln -s ./usr/bin/julia ./julia + + echo "--- Install and test JuliaC" + unset JULIA_DEPOT_PATH + if [ -f deps/jlutilities/juliac/Manifest.toml ]; then + JULIA_PKG_PRECOMPILE_AUTO=0 ./julia -e 'using Pkg; Pkg.activate("deps/jlutilities/juliac"); Pkg.instantiate(); ENV["JULIA_PKG_PRECOMPILE_AUTO"]=1; Pkg.test("JuliaC")' + else + JULIA_PKG_PRECOMPILE_AUTO=0 ./julia -e 'using Pkg; Pkg.add(name="JuliaC", rev="main"); ENV["JULIA_PKG_PRECOMPILE_AUTO"]=1; Pkg.test("JuliaC")' + fi + + echo "--- Test trimming the Julia repo's projects (test/trim)" + ./julia test/trim.jl + timeout_in_minutes: ${TIMEOUT?} + soft_fail: ${ALLOW_FAIL?} + agents: + queue: "test" + os: "freebsd" + arch: "${ARCH}" + env: + JULIA_SHELL: "/usr/local/bin/bash" + TRIPLET: "${TRIPLET?}" + BUILDKITE_CANCEL_SIGNAL: "SIGQUIT" From 8dc869ece41de5193b74c4571ddf1fa52b4d1b9a Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Wed, 17 Jun 2026 17:07:18 -0400 Subject: [PATCH 3/5] Add i686 Linux / Windows JuliaC targets --- pipelines/main/misc/juliac/test_juliac_linux.arches | 1 + pipelines/main/misc/juliac/test_juliac_windows.arches | 1 + 2 files changed, 2 insertions(+) diff --git a/pipelines/main/misc/juliac/test_juliac_linux.arches b/pipelines/main/misc/juliac/test_juliac_linux.arches index 08ea4732..77c8d52b 100644 --- a/pipelines/main/misc/juliac/test_juliac_linux.arches +++ b/pipelines/main/misc/juliac/test_juliac_linux.arches @@ -1,6 +1,7 @@ # ROOTFS_IMAGE_NAME TRIPLET ARCH ARCH_ROOTFS TIMEOUT ROOTFS_TAG ROOTFS_HASH ALLOW_FAIL package_linux x86_64-linux-gnu x86_64 x86_64 . v7.3 d8de9e0051c5cd69f3dde8ddaefc594d0a71043b . package_linux aarch64-linux-gnu aarch64 aarch64 . v7.3 d39fb11781df9b03e448ad9318df2d195a3acf26 true +package_linux i686-linux-gnu x86_64 i686 . v7.3 002717b31100993dd232c6b35775b3e2e6941840 . # These special lines allow us to embed default values for the columns above. # Any column without a default mapping here will simply substitute a `.` to the empty string diff --git a/pipelines/main/misc/juliac/test_juliac_windows.arches b/pipelines/main/misc/juliac/test_juliac_windows.arches index b5629978..f33b24a1 100644 --- a/pipelines/main/misc/juliac/test_juliac_windows.arches +++ b/pipelines/main/misc/juliac/test_juliac_windows.arches @@ -1,5 +1,6 @@ # OS TRIPLET ARCH TIMEOUT windows x86_64-w64-mingw32 x86_64 . +windows i686-w64-mingw32 x86_64 . # These special lines allow us to embed default values for the columns above. # Any column without a default mapping here will simply substitute a `.` to the empty string From 44531f7a8727384321c9f1649a4356d743757dda Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Thu, 18 Jun 2026 13:29:45 -0400 Subject: [PATCH 4/5] Remove FreeBSD (for now) --- pipelines/main/misc/juliac/test_juliac.yml | 5 --- .../misc/juliac/test_juliac_freebsd.arches | 9 ----- .../main/misc/juliac/test_juliac_freebsd.yml | 38 ------------------- 3 files changed, 52 deletions(-) delete mode 100644 pipelines/main/misc/juliac/test_juliac_freebsd.arches delete mode 100644 pipelines/main/misc/juliac/test_juliac_freebsd.yml diff --git a/pipelines/main/misc/juliac/test_juliac.yml b/pipelines/main/misc/juliac/test_juliac.yml index c1087cb0..658e1303 100644 --- a/pipelines/main/misc/juliac/test_juliac.yml +++ b/pipelines/main/misc/juliac/test_juliac.yml @@ -26,11 +26,6 @@ steps: bash .buildkite/utilities/arches_pipeline_upload.sh \ .buildkite/pipelines/main/misc/juliac/test_juliac_windows.arches \ .buildkite/pipelines/main/misc/juliac/test_juliac_windows.yml - ### Launch FreeBSD JuliaC test jobs: - GROUP="JuliaC" \ - bash .buildkite/utilities/arches_pipeline_upload.sh \ - .buildkite/pipelines/main/misc/juliac/test_juliac_freebsd.arches \ - .buildkite/pipelines/main/misc/juliac/test_juliac_freebsd.yml agents: queue: "launch" os: "linux" diff --git a/pipelines/main/misc/juliac/test_juliac_freebsd.arches b/pipelines/main/misc/juliac/test_juliac_freebsd.arches deleted file mode 100644 index 2db04f2b..00000000 --- a/pipelines/main/misc/juliac/test_juliac_freebsd.arches +++ /dev/null @@ -1,9 +0,0 @@ -# OS TRIPLET ARCH TIMEOUT -freebsd x86_64-unknown-freebsd x86_64 . - -# These special lines allow us to embed default values for the columns above. -# Any column without a default mapping here will simply substitute a `.` to the empty string - -# FreeBSD hardware is slow and this job also runs the trim builds, so allow more -# time than the other JuliaC platforms. -#default TIMEOUT 90 diff --git a/pipelines/main/misc/juliac/test_juliac_freebsd.yml b/pipelines/main/misc/juliac/test_juliac_freebsd.yml deleted file mode 100644 index b6dc7975..00000000 --- a/pipelines/main/misc/juliac/test_juliac_freebsd.yml +++ /dev/null @@ -1,38 +0,0 @@ -steps: - - group: "${GROUP?}" - steps: - - label: ":freebsd: test JuliaC ${TRIPLET?}" - key: "test-juliac-${TRIPLET?}" - depends_on: - - "build_${TRIPLET?}" - plugins: - - JuliaCI/external-buildkite#v1: - version: "./.buildkite-external-version" - repo_url: "https://github.com/JuliaCI/julia-buildkite" - commands: | - # Download pre-built julia, extract into `usr/` - buildkite-agent artifact download --step "build_${TRIPLET}" 'julia-*-freebsd-*.tar.gz' . - mkdir -p ./usr - tar -C ./usr --strip-components=1 -zxf julia-*-freebsd-*.tar.gz - ln -s ./usr/bin/julia ./julia - - echo "--- Install and test JuliaC" - unset JULIA_DEPOT_PATH - if [ -f deps/jlutilities/juliac/Manifest.toml ]; then - JULIA_PKG_PRECOMPILE_AUTO=0 ./julia -e 'using Pkg; Pkg.activate("deps/jlutilities/juliac"); Pkg.instantiate(); ENV["JULIA_PKG_PRECOMPILE_AUTO"]=1; Pkg.test("JuliaC")' - else - JULIA_PKG_PRECOMPILE_AUTO=0 ./julia -e 'using Pkg; Pkg.add(name="JuliaC", rev="main"); ENV["JULIA_PKG_PRECOMPILE_AUTO"]=1; Pkg.test("JuliaC")' - fi - - echo "--- Test trimming the Julia repo's projects (test/trim)" - ./julia test/trim.jl - timeout_in_minutes: ${TIMEOUT?} - soft_fail: ${ALLOW_FAIL?} - agents: - queue: "test" - os: "freebsd" - arch: "${ARCH}" - env: - JULIA_SHELL: "/usr/local/bin/bash" - TRIPLET: "${TRIPLET?}" - BUILDKITE_CANCEL_SIGNAL: "SIGQUIT" From af4d7ae52e9e712418a6e22c9a1d67d2f3b1e056 Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Thu, 18 Jun 2026 21:17:06 -0400 Subject: [PATCH 5/5] Increase `i686-*` timeouts to 40 minutes I'll have to debug why 32-bit platforms are so slow for JuliaC later, but for now this at least gets the tests running. --- pipelines/main/misc/juliac/test_juliac_linux.arches | 2 +- pipelines/main/misc/juliac/test_juliac_windows.arches | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pipelines/main/misc/juliac/test_juliac_linux.arches b/pipelines/main/misc/juliac/test_juliac_linux.arches index 77c8d52b..f81d116f 100644 --- a/pipelines/main/misc/juliac/test_juliac_linux.arches +++ b/pipelines/main/misc/juliac/test_juliac_linux.arches @@ -1,7 +1,7 @@ # ROOTFS_IMAGE_NAME TRIPLET ARCH ARCH_ROOTFS TIMEOUT ROOTFS_TAG ROOTFS_HASH ALLOW_FAIL package_linux x86_64-linux-gnu x86_64 x86_64 . v7.3 d8de9e0051c5cd69f3dde8ddaefc594d0a71043b . package_linux aarch64-linux-gnu aarch64 aarch64 . v7.3 d39fb11781df9b03e448ad9318df2d195a3acf26 true -package_linux i686-linux-gnu x86_64 i686 . v7.3 002717b31100993dd232c6b35775b3e2e6941840 . +package_linux i686-linux-gnu x86_64 i686 40 v7.3 002717b31100993dd232c6b35775b3e2e6941840 . # These special lines allow us to embed default values for the columns above. # Any column without a default mapping here will simply substitute a `.` to the empty string diff --git a/pipelines/main/misc/juliac/test_juliac_windows.arches b/pipelines/main/misc/juliac/test_juliac_windows.arches index f33b24a1..b6dcf87f 100644 --- a/pipelines/main/misc/juliac/test_juliac_windows.arches +++ b/pipelines/main/misc/juliac/test_juliac_windows.arches @@ -1,6 +1,6 @@ # OS TRIPLET ARCH TIMEOUT windows x86_64-w64-mingw32 x86_64 . -windows i686-w64-mingw32 x86_64 . +windows i686-w64-mingw32 x86_64 40 # These special lines allow us to embed default values for the columns above. # Any column without a default mapping here will simply substitute a `.` to the empty string