Skip to content

[RFC] Backports for v0.8.5 #173

[RFC] Backports for v0.8.5

[RFC] Backports for v0.8.5 #173

Workflow file for this run

name: Unit test for Arm
on:
push:
branches:
- master
- release-*
tags: ['*']
pull_request:
workflow_dispatch:
permissions:
actions: write
contents: read
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
julia-version: ['1.0', '1.6', '1', 'nightly']
os: [ubuntu-latest]
distro: [ubuntu_latest]
arch: [aarch64]
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.julia-version }}
- uses: julia-actions/cache@v1
- name: Download Julia Binary
run: >
julia -e '
using Pkg; Pkg.add("JSON"); using JSON;
if "${{ matrix.julia-version }}" == "nightly";
url = "https://julialangnightlies-s3.julialang.org/bin/linux/${{ matrix.arch }}/julia-latest-linux-${{ matrix.arch }}.tar.gz";
else;
path = download("https://julialang-s3.julialang.org/bin/versions.json");
json = JSON.parsefile(path);
try rm(path) catch end;
vspec = Pkg.Types.VersionSpec("${{ matrix.julia-version }}");
a(f) = f["arch"] == "${{ matrix.arch }}" && f["os"] == "linux" && !occursin("musl", f["triplet"]);
m = filter(json) do v; vn = VersionNumber(v[1]); vn in vspec && isempty(vn.prerelease) && any(a, v[2]["files"]); end;
v = sort(VersionNumber.(keys(m)))[end];
url = filter(a, json[string(v)]["files"])[1]["url"];
end;
download(url, "/tmp/julia-aarch64.tar.gz");'
- name: Extract Julia Files
run: |
mkdir -p /home/runner/work/julia/
tar -xf /tmp/julia-aarch64.tar.gz --strip-components=1 -C /home/runner/work/julia/
rm /tmp/julia-aarch64.tar.gz
- uses: uraimo/run-on-arch-action@v2.7.2
name: Unit Test
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
dockerRunArgs: |
-v "/home/runner/work/julia:/home/runner/work/julia"
-v "/home/runner/.julia/registries:/root/.julia/registries"
--net=host
install: |
ln -s /home/runner/work/julia/bin/julia /usr/local/bin/julia
echo /home/runner/work/julia/lib > /etc/ld.so.conf.d/julia.conf
mkdir -p /root/.julia/registries/General
run: |
julia --compile=min -O0 -e 'using InteractiveUtils; versioninfo();'
julia --project=. --check-bounds=yes --color=yes -e 'using Pkg; Pkg.build(); Pkg.test(coverage=true)'
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }} # required
fail_ci_if_error: true
file: lcov.info