ararslan / cirrusci.jl Goto Github PK
View Code? Open in Web Editor NEWJulia setup for testing on Cirrus CI
License: BSD 2-Clause "Simplified" License
Julia setup for testing on Cirrus CI
License: BSD 2-Clause "Simplified" License
On other CI systems, you can set the architecture to x86 or x64 and the corresponding Julia binaries will be installed regardless of the host's architecture. This permits testing 32-bit Julia builds on 64-bit hosts. However, it may be the case that Cirrus supports 32-bit x86 and/or ARMv7 hosts, in which case this would be unnecessary since folks can just use an image that matches the target architecture.
I opened a pull request in Krylov.jl repository for testing the package on platforms not supported by GitHub Actions and I have the following error with Linux ARMv8:
cirrusjl build
/tmp/scripts9566c74d10037c4d7bbb0407d1e2c649.sh: line 5: cirrusjl: command not found
Exit status: 127
Thanks for fixing #15. There's a different error now:
/tmp/scripts9566c74d10037c4d7bbb0407d1e2c649.sh: julia: not found
in the run job.
Hi, I've been using CirrusCI.jl to setup tests on FreeBSD and noticed some errors that may be related to the test failures on 1.4 and nightly.
WARNING: Error during initialization of module LinearAlgebra:
ErrorException("could not load library "libopenblas64_"
Shared object "libgfortran.so.5" not found, required by "libopenblas64_.so"")
┌ Error: Error during initialization of module CHOLMOD
│ exception =
│ could not load library "libcholmod"
│ Shared object "libgfortran.so.5" not found, required by "libopenblas64_.so"
│ Stacktrace:
│ [1] dlopen(::String, ::UInt32; throw_error::Bool) at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:109
│ [2] dlopen at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:109 [inlined] (repeats 2 times)
│ [3] __init__() at /usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.4/SuiteSparse/src/cholmod.jl:90
└ @ SuiteSparse.CHOLMOD ~/usr/home/julia/buildbot/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.4/SuiteSparse/src/cholmod.jl:177
See https://cirrus-ci.com/github/JuliaApproximation/FastTransforms.jl. Note that the this error is also present in other repositories testing on FreeBSD, e.g. https://cirrus-ci.com/github/fhs/ZipFile.jl, though I haven't looked into why one instance results in a build error and the other not.
Thank you for this package! Would you mind showing an example where the nightly build is allowed to fail? This syntax doesn't seem to do it: https://github.com/JuliaSmoothOptimizers/SolverBenchmark.jl/pull/34/files#diff-0f7067c31caedf7df2739c9b07efa122R12
Thanks!
For matrix:
matrix:
- JULIA_VERSION: 1.0
- JULIA_VERSION: 1.1
- JULIA_VERSION: 1.2
- JULIA_VERSION: nightly
1.2 fails with:
sh -c "$(fetch https://raw.githubusercontent.com/ararslan/CirrusCI.jl/master/bin/install.sh -o -)"
- 4669 B 33 MBps 00s
Updating FreeBSD repository catalogue...
Fetching meta.txz: . done
Fetching packagesite.txz: .......... done
Processing entries: .......... done
FreeBSD repository update completed. 31672 packages processed.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
curl: 7.62.0 -> 7.65.0_2
Number of packages to be upgraded: 1
1 MiB to be downloaded.
[1/1] Fetching curl-7.65.0_2.txz: .......... done
Checking integrity... done (0 conflicting)
[1/1] Upgrading curl from 7.62.0 to 7.65.0_2...
[1/1] Extracting curl-7.65.0_2: .......... done
tar: Error opening archive: Unrecognized archive format
I get a number of seemingly random failures of this sort on FreeBSD: https://github.com/JuliaSmoothOptimizers/NLPModelsJuMP.jl/pull/40/checks?check_run_id=456072504
Any idea what causes them?
sh -c "$(fetch https://raw.githubusercontent.com/ararslan/CirrusCI.jl/master/bin/install.sh -o -)"
- 8809 B 81 MBps 00s
�[0;34m[CIRRUSCI.JL]�[0m: OS name: freebsd
�[0;34m[CIRRUSCI.JL]�[0m: Architecture name: x86_64
�[0;34m[CIRRUSCI.JL]�[0m: Downloading Julia from https://julialang-s3.julialang.org/bin/freebsd/x64/1.9/julia-1.9-latest-freebsd-x86_64.tar.gz
ERROR: Unable to load dependent library /julia/bin/../lib/julia/libjulia-internal.so.1
Message:/julia/bin/../lib/julia/libjulia-internal.so.1: Undefined symbol "srand@FBSD_1.6"
Doing it the Right Way™ is blocked on codecov/uploader#849 but it could be possible to get an approach like what I tried in #11 to work.
The installer is written as a POSIX shell script and assumes it's running in a Unix-like environment. We could have a separate installer for Windows that's effectively a reimplementation in PowerShell or Batch. It would be fairly annoying to maintain two separate installers, though we could likely reuse a decent amount of what's implemented in AppVeyor.jl. That uses environment variables to construct the commands executed by cmd.exe which is a different approach than CirrusCI.jl takes. #14 will hopefully help significantly here by hiding the installation logic entirely from the user, I just need to finish it.
Recently, FreeBSD CI jobs have been failing at the install step with
sh -c "$(fetch https://raw.githubusercontent.com/ararslan/CirrusCI.jl/master/bin/install.sh -o -)"
- 5031 B 94 MBps 00s
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Updating database digests format: . done
The following 5 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
libidn2: 2.3.2
libpsl: 0.21.1_4
libssh2: 1.10.0,3
libunistring: 1.0
Installed packages to be UPGRADED:
curl: 7.74.0 -> 7.85.0
Number of packages to be installed: 4
Number of packages to be upgraded: 1
The process will require 5 MiB more space.
2 MiB to be downloaded.
[1/5] Fetching libidn2-2.3.2.pkg: .......... done
[2/5] Fetching libunistring-1.0.pkg: .......... done
[3/5] Fetching libssh2-1.10.0,3.pkg: .......... done
[4/5] Fetching libpsl-0.21.1_4.pkg: ........ done
[5/5] Fetching curl-7.85.0.pkg: .......... done
Checking integrity... done (0 conflicting)
[1/5] Installing libunistring-1.0...
[1/5] Extracting libunistring-1.0: .......... done
[2/5] Installing libidn2-2.3.2...
[2/5] Extracting libidn2-2.3.2: .......... done
[3/5] Installing libssh2-1.10.0,3...
[3/5] Extracting libssh2-1.10.0,3: .......... done
[4/5] Installing libpsl-0.21.1_4...
[4/5] Extracting libpsl-0.21.1_4: .......... done
[5/5] Upgrading curl from 7.74.0 to 7.85.0...
[5/5] Extracting curl-7.85.0: .......... done
tar: Error opening archive: Unrecognized archive format
Is it something with the install
script or something with CirrusCI?
The failure occurs with FreeBSD 12.1 and 13.
Example: https://cirrus-ci.com/task/5487976753922048?logs=install
Thanks!
@ararslan
In the repository ralna/GALAHAD, we have a Julia interface GALAHAD.jl
that we want to test automatically with continuous integration.
I tried to use CirrusCI.jl
for that (see ralna/GALAHAD#219) but I was not able to make it work.
Is it possible to add an option subdir
or something similar for cirrusjl
?
I'm getting this kind of failure on CirrusCI in the "install phase" of the build:
sh -c "$(fetch https://raw.githubusercontent.com/ararslan/CirrusCI.jl/master/bin/install.sh -o -)"
- 4905 B 8585 kBps 00s
Updating FreeBSD repository catalogue...
Fetching meta.txz: . done
pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
repository FreeBSD has no meta file, using default settings
Fetching packagesite.txz: .......... done
pkg: repository meta /var/db/pkg/FreeBSD.meta has wrong version 2
pkg: Repository FreeBSD load error: meta cannot be loaded No error: 0
Unable to open created repository FreeBSD
Unable to update repository FreeBSD
Error updating repositories!
Exit status: 3
Example: https://cirrus-ci.com/task/6087836260630528?command=install
Any ideas what's happening?
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.