Any idea, why the following (Julia 1.0) BinaryBuilder project, https://github.com/IHPSystems/pylon_julia_wrapper/tree/feature/travis_ci_2021, builds (using BB) just fine on Travis CI (in 2019 and today in Aug. 2021), but has trouble building on GitLab CI?
The project,
- builds just fine on Travis CI,
- builds just fine “on my machine” (Mac using the Docker BB runner),
BINARYBUILDER_RUNNER=docker BINARYBUILDER_AUTOMATIC_APPLE=true julia --color=yes build_tarballs.jl --verbose
- but fails to build tarballs on (a private) GitLab CI running BB in a julia-1.0 container (Julia 1.0 on Debian - on Kubernetes, where the GitLab CI runner is running in privileged mode - it can run docker-in-docker etc.).
Here is the GitLab CI YAML - just a copy of the working Travis CI YAML, except from not defining BINARYBUILDER_DOWNLOADS_CACHE=downloads
:
.julia:1.0:
image: julia:1.0-buster
build:1.0:
extends:
- .julia:1.0
variables:
BINARYBUILDER_AUTOMATIC_APPLE: "true"
before_script:
- julia --project -e 'using Pkg; pkg"add BinaryProvider@0.5.3"; pkg"add BinaryBuilder@0.1.4"; Pkg.build()'
script:
- julia --color=yes --project build_tarballs.jl --verbose
- ls -la products || true
The failure on the GitLab CI runner seems to stem from not being able to write to /workspace/destdir
- even a touch $prefix/lib/libfoo.txt
in the BB build script fails:
touch: /workspace/destdir/lib/libfoo.txt: Permission denied
I have experimented with setting
-
BINARYBUILDER_RUNNER=privileged
, -
BINARYBUILDER_RUNNER=userns
, - just setting
BINARYBUILDER_USE_SQUASHFS=true
- and combining
BINARYBUILDER_RUNNER=privileged
withBINARYBUILDER_USE_SQUASHFS=true
(it seems SquashFS images are used on Travis (without setting any env. variables)
Any ideas? What is different/special with Travis?
My last resort (which may come very soon) is trying to upgrade to Julia 1.3+