-
Notifications
You must be signed in to change notification settings - Fork 40
160 lines (148 loc) · 5.09 KB
/
Copy pathci.yml
File metadata and controls
160 lines (148 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
name: CI
on:
push:
branches: "master"
tags: ["*"]
paths:
- '.github/workflows/ci.yml'
- '*.toml'
- 'src/**'
- 'test/**'
pull_request:
paths:
- '.github/workflows/ci.yml'
- '*.toml'
- 'src/**'
- 'test/**'
release:
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: always.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
BINARYBUILDER_AUTOMATIC_APPLE: true
jobs:
test:
name: Julia ${{ matrix.julia-version }} - x64 - runner ${{ matrix.runner }} - SquashFS ${{ matrix.squashfs }}
timeout-minutes: 60
# With unprivileged runner on Ubuntu 24.04 we run into
#
# --> Creating overlay workdir at /proc
# At line 572, ABORTED (13: Permission denied)!
runs-on: ubuntu-22.04
env:
BINARYBUILDER_RUNNER: ${{ matrix.runner }}
BINARYBUILDER_USE_SQUASHFS: ${{ matrix.squashfs }}
# Run full tests only when we use the packed shards, because we constantly
# run out of disk on the free GitHub-hosted runners.
BINARYBUILDER_FULL_SHARD_TEST: ${{ matrix.squashfs }}
strategy:
fail-fast: false
matrix:
include:
# Add a job that uses the privileged builder with squashfs shards
- runner: privileged
squashfs: true
julia-version: "1.7"
- runner: privileged
squashfs: true
julia-version: "1.10"
- runner: privileged
squashfs: true
julia-version: "1.11"
- runner: privileged
squashfs: true
julia-version: "1.12"
- runner: privileged
squashfs: true
julia-version: "1.13-nightly"
- runner: privileged
squashfs: true
julia-version: "nightly"
# Add a job that uses the unprivileged builder with unpacked shards
- runner: unprivileged
squashfs: false
julia-version: "1.12"
# Add a job that uses the docker builder with unpacked shards
- runner: docker
squashfs: false
julia-version: "1.12"
steps:
- name: Show available storage before cleanup
run: |
echo " --> df -h /"
df -h /
echo " --> df -a /"
df -a /
- name: Free Disk Space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with:
tool-cache: true
# Removing "large packages" alone takes a couple of minutes, it could
# be switched to true if more space is needed (it'd save ~5 GB or so)
large-packages: false
- name: Cleanup /opt
run: |
sudo rm -rf /opt/*
- name: Show available storage after cleanup
run: |
echo " --> df -h /"
df -h /
echo " --> df -a /"
df -a /
- uses: actions/checkout@v6
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.julia-version }}
arch: x64
# We can't cache artifacts at the moment, it'd require more than 10 GiB.
# - uses: julia-actions/cache@v2
# # For the time being cache artifacts only for squashfs, we need too much
# # storage for the unpacked shards
# if: ${{ matrix.squashfs == true }}
# with:
# # Reserve entire cache to artifacts
# cache-name: ${{ matrix.squashfs }}
# cache-artifacts: "true"
# cache-packages: "false"
# cache-registries: "false"
- uses: julia-actions/julia-buildpkg@v1
with:
ignore-no-cache: true
- name: System info
run: |
args=(--check-bounds=yes --color=yes --depwarn=yes --inline=yes --project=@.)
# On Julia v1.8+ issue the code coverage info for this command.
if [[ "${{ matrix.julia-version }}" != "1.7" ]]; then
args+=(--code-coverage="@${PWD}")
fi
julia "${args[@]}" -e "using BinaryBuilderBase; BinaryBuilderBase.versioninfo()"
- name: Run tests
run: |
eval `ssh-agent`
chmod 0600 test/id_ecdsa_deploy_helloworld_c_jll_read_only
mkdir -p ~/.ssh
touch ~/.ssh/known_hosts
ssh-keyscan github.com >> ~/.ssh/known_hosts
ssh-add test/id_ecdsa_deploy_helloworld_c_jll_read_only
julia --check-bounds=yes --color=yes --depwarn=yes --inline=yes --project=@. -e 'using Pkg; Pkg.instantiate(); Pkg.test(coverage=true)'
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v7
continue-on-error: true
with:
files: lcov.info
- uses: coverallsapp/github-action@v2
continue-on-error: true
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: lcov.info
flag-name: run-${{ join(matrix.*, '-') }}
parallel: true
- name: Show available storage at the end
if: always()
run: |
echo " --> df -h /"
df -h /
echo " --> df -a /"
df -a /