Skip to content

Commit da6917e

Browse files
Fix CI, and temporarily disable some CI jobs (#965)
* Use HelloWorldC as an artifact too (cherry picked from commit 714d658) * More CI stuff * Disable 1.11 for now * For now, skip 32-bit Julia on Windows * Disable macOS for now. --------- Co-authored-by: gbaraldi <[email protected]>
1 parent 0c8c5c7 commit da6917e

File tree

6 files changed

+206
-90
lines changed

6 files changed

+206
-90
lines changed

.github/dependabot.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
21
version: 2
32
updates:
43
- package-ecosystem: "github-actions"
5-
directory: "/" # Location of package manifests
4+
directory: "/"
65
schedule:
76
interval: "monthly"
7+
open-pull-requests-limit: 100
8+
labels:
9+
- "dependencies"
10+
- "github-actions"

.github/workflows/MyLib.yml

Lines changed: 0 additions & 31 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 70 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,40 @@
11
name: CI
2+
23
on:
34
pull_request:
4-
branches:
5-
- 'master'
6-
- 'release-*'
75
push:
86
branches:
97
- 'master'
108
- 'release-*'
119
tags: '*'
10+
1211
concurrency:
13-
group: ${{ github.head_ref || github.ref_name || github.run_id }}
14-
cancel-in-progress: true
12+
# Skip intermediate builds: all builds except for builds on the `master` branch
13+
# Cancel intermediate builds: only pull request builds
14+
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || github.run_number }}
15+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
16+
1517
jobs:
18+
finalize-pr-checks:
19+
if: always() # this line is important to keep the `finalize` job from being marked as skipped; do not change or delete this line
20+
runs-on: ubuntu-latest
21+
timeout-minutes: 10
22+
needs:
23+
- ci_started
24+
- test
25+
- docs
26+
- build-mylib
27+
steps:
28+
- run: |
29+
echo ci_started: ${{ needs.ci_started.result }}
30+
echo test: ${{ needs.test.result }}
31+
echo docs: ${{ needs.docs.result }}
32+
echo build-mylib: ${{ needs.build-mylib.result }}
33+
- run: exit 1
34+
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }}
1635
ci_started:
17-
timeout-minutes: 3
1836
runs-on: ubuntu-latest
37+
timeout-minutes: 10
1938
steps:
2039
- run: exit 0
2140
test:
@@ -26,40 +45,49 @@ jobs:
2645
fail-fast: false
2746
matrix:
2847
julia-version:
29-
- '1.6'
30-
- '1.9'
31-
- '1.10'
32-
- 'nightly'
48+
- '1.6' # previous LTS
49+
- '1.9' # TODO: comment out this line once I am finished debugging.
50+
- '1.10' # current LTS
51+
# - '1.11' # TODO: uncomment this line once we fix the tests on 1.11
52+
# - 'nightly' # TODO: decide whether we want to run any CI jobs on nightly.
3353
julia-arch:
34-
- 'x64'
35-
- 'x86'
54+
- 'x64' # 32-bit Julia
55+
- 'x86' # 64-bit Julia
3656
os:
3757
- ubuntu-latest
38-
- macOS-latest
3958
- windows-latest
59+
# - macos-13 # macos-13 = Intel. # TODO: uncomment this line once we merge #930
60+
# TODO: uncomment the next line, so that we can start testing on macos-14:
61+
# - macos-14 # macos-14 = Apple Silicon.
4062
coverage:
4163
- 'true'
42-
- 'false' # needed for 1.9+ to test from a session using pkgimages
64+
- 'false' # needed for Julia 1.9+ to test from a session using pkgimages
4365
exclude:
44-
- os: macOS-latest
66+
# For now, we'll disable testing 32-bit Julia on Windows.
67+
# TODO: remove the following once we fix the tests for 32-bit Julia on Windows.
68+
- os: windows-latest
69+
julia-arch: x86
70+
# We don't have 32-bit builds of Julia for macOS:
71+
- os: macos-latest
4572
julia-arch: x86
73+
# We don't need to run the coverage=false job for Julia < 1.9:
4674
- julia-version: '1.6'
4775
coverage: 'false'
4876
- julia-version: '1.7'
4977
coverage: 'false'
5078
- julia-version: '1.8'
5179
coverage: 'false'
5280
steps:
53-
- uses: actions/checkout@v4
54-
- uses: julia-actions/setup-julia@latest
81+
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
82+
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
5583
with:
5684
version: ${{ matrix.julia-version }}
57-
- uses: julia-actions/cache@v2
58-
- uses: julia-actions/julia-runtest@latest
85+
- uses: julia-actions/cache@824243901fb567ccb490b0d0e2483ccecde46834 # v2.0.5
86+
- uses: julia-actions/julia-runtest@d0c4f093badade621cd041bba567d1e832480ac2 # v1.10.0
5987
with:
6088
coverage: ${{ matrix.coverage }}
61-
- uses: julia-actions/julia-processcoverage@latest
62-
- uses: codecov/codecov-action@v4
89+
- uses: julia-actions/julia-processcoverage@03114f09f119417c3242a9fb6e0b722676aedf38 # v1.2.2
90+
- uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4.6.0
6391
with:
6492
file: lcov.info
6593
env:
@@ -68,12 +96,31 @@ jobs:
6896
runs-on: ubuntu-latest
6997
timeout-minutes: 30
7098
steps:
71-
- uses: actions/checkout@v4
72-
- uses: julia-actions/setup-julia@latest
99+
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
100+
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
73101
with:
74102
version: '1'
75103
- name: Build and deploy docs
76104
env:
77105
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # If authenticating with GitHub Actions token
78106
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # If authenticating with SSH deploy key
79107
run: julia --project=docs/ -e 'using Pkg; Pkg.instantiate(); include("docs/make.jl")'
108+
build-mylib:
109+
runs-on: ubuntu-latest
110+
steps:
111+
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
112+
- uses: julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
113+
with:
114+
version: '1'
115+
- uses: julia-actions/julia-buildpkg@90dd6f23eb49626e4e6612cb9d64d456f86e6a1c # v1.6.0
116+
with:
117+
project: 'examples/MyLib'
118+
- uses: julia-actions/julia-buildpkg@90dd6f23eb49626e4e6612cb9d64d456f86e6a1c # v1.6.0
119+
with:
120+
project: 'examples/MyLib/build'
121+
- run: |
122+
cd examples/MyLib
123+
make
124+
- run: ./examples/MyLib/my_application.out
125+
env:
126+
LD_LIBRARY_PATH: 'examples/MyLib/MyLibCompiled/lib'

examples/MyApp/Artifacts.toml

Lines changed: 126 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,143 @@
1-
[[fooifier]]
2-
arch = "x86_64"
3-
git-tree-sha1 = "98d93024ca384050c59d554415b75d61e467fd8c"
1+
[[HelloWorldC]]
2+
arch = "aarch64"
3+
git-tree-sha1 = "d4036700fbbf29b31f5d1d5d948547edd3b70e11"
4+
os = "macos"
5+
6+
[[HelloWorldC.download]]
7+
sha256 = "1fd55f038a73c89f4e22b437a9182421e0d31c50bd4912c719215f6a736d50f1"
8+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.aarch64-apple-darwin.tar.gz"
9+
[[HelloWorldC]]
10+
arch = "aarch64"
11+
git-tree-sha1 = "c82465bd6d0aa1369ff2fd961b73884d1f5de49a"
12+
libc = "glibc"
13+
os = "linux"
14+
15+
[[HelloWorldC.download]]
16+
sha256 = "5bfa84332c7ee485ca8e2eee216ad9fa77b2c43d5f261baa823e301b7c789ec4"
17+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.aarch64-linux-gnu.tar.gz"
18+
[[HelloWorldC]]
19+
arch = "aarch64"
20+
git-tree-sha1 = "cb4b8c88778c6cd93b6df38ec5b95a2678434f5d"
21+
libc = "musl"
22+
os = "linux"
23+
24+
[[HelloWorldC.download]]
25+
sha256 = "924df1c2a386f79a2727a2f989393102649a24863214f2e88cb4a677d3d22e14"
26+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.aarch64-linux-musl.tar.gz"
27+
[[HelloWorldC]]
28+
arch = "armv6l"
29+
call_abi = "eabihf"
30+
git-tree-sha1 = "20a32b71145b67e708f63fb5880a7243727aec0f"
431
libc = "glibc"
532
os = "linux"
633

7-
[[fooifier.download]]
8-
sha256 = "5208c63a9d07e592c78f541fc13caa8cd191b11e7e77b31d407237c2b13ec391"
9-
url = "https://github.com/staticfloat/small_bin/raw/master/libfoo/libfoo.x86_64-linux-gnu.tar.gz"
34+
[[HelloWorldC.download]]
35+
sha256 = "6f0997b0aad387ba6e2402530642bb4ded85b0243460d2e4b13d94f2c8340a44"
36+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.armv6l-linux-gnueabihf.tar.gz"
37+
[[HelloWorldC]]
38+
arch = "armv6l"
39+
call_abi = "eabihf"
40+
git-tree-sha1 = "c1179604ea37fa66ee6d5d592c7bbfd1f20292c3"
41+
libc = "musl"
42+
os = "linux"
1043

11-
[[fooifier]]
44+
[[HelloWorldC.download]]
45+
sha256 = "0aca47bce6f09c38a7939277a593deb988123fe59f7992225a1ede8e174f1b06"
46+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.armv6l-linux-musleabihf.tar.gz"
47+
[[HelloWorldC]]
48+
arch = "armv7l"
49+
call_abi = "eabihf"
50+
git-tree-sha1 = "0a8e7b523ef6be31311aefe9983a488616e58201"
51+
libc = "glibc"
52+
os = "linux"
53+
54+
[[HelloWorldC.download]]
55+
sha256 = "f29f4da556d2b4ee9eaff7740aa0f9436406b75b0f1ec428e881a47ab7b7477b"
56+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.armv7l-linux-gnueabihf.tar.gz"
57+
[[HelloWorldC]]
58+
arch = "armv7l"
59+
call_abi = "eabihf"
60+
git-tree-sha1 = "ca94b4d87f1a276066a2994733142e35046c41dd"
61+
libc = "musl"
62+
os = "linux"
63+
64+
[[HelloWorldC.download]]
65+
sha256 = "5fb4019d6d797e5e3860cfec90cab12f6865fa624e87b51c20220a44bb94846a"
66+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.armv7l-linux-musleabihf.tar.gz"
67+
[[HelloWorldC]]
1268
arch = "i686"
13-
git-tree-sha1 = "c3a9f27382862092e064bcf4aeb3cb7190578338"
69+
git-tree-sha1 = "cb1aefe048a6c0395b6b664695c20cb50dbec8e3"
1470
libc = "glibc"
1571
os = "linux"
1672

17-
[[fooifier.download]]
18-
sha256 = "97655b6a218d61284723b6923d7c96e6a256fa68b9419d723c588aa24404b102"
19-
url = "https://github.com/staticfloat/small_bin/raw/master/libfoo/libfoo.i686-linux-gnu.tar.gz"
73+
[[HelloWorldC.download]]
74+
sha256 = "c79def491d702590b9c82599d40c4e755251dbb49669d0290f9a1a7bf1d91a1a"
75+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.i686-linux-gnu.tar.gz"
76+
[[HelloWorldC]]
77+
arch = "i686"
78+
git-tree-sha1 = "b50220be02e9c839749f91a70694ae68c2712c8e"
79+
libc = "musl"
80+
os = "linux"
2081

21-
[[fooifier]]
82+
[[HelloWorldC.download]]
83+
sha256 = "6aecc06cf803ad16703744610deb243a21b39e19ae1951a38977610881698f9e"
84+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.i686-linux-musl.tar.gz"
85+
[[HelloWorldC]]
86+
arch = "i686"
87+
git-tree-sha1 = "0f7597f042d16d438f9684e20ca57ea22e4e15c1"
88+
os = "windows"
89+
90+
[[HelloWorldC.download]]
91+
sha256 = "5f14f5ade1314e777432bd85cd075ae9d31e28352e646f90adf0444a7a54f76b"
92+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.i686-w64-mingw32.tar.gz"
93+
[[HelloWorldC]]
94+
arch = "powerpc64le"
95+
git-tree-sha1 = "5e9c87fc4e3372c27a77061a49d97fa5002df0e4"
96+
libc = "glibc"
97+
os = "linux"
98+
99+
[[HelloWorldC.download]]
100+
sha256 = "e2a728b29124fc7408d6e47cc6fc943d0336d1386e56a3775a0665b34528881b"
101+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.powerpc64le-linux-gnu.tar.gz"
102+
[[HelloWorldC]]
22103
arch = "x86_64"
23-
git-tree-sha1 = "f413ff2438a4e9e9dd69b23c35ca30de6af069cc"
104+
git-tree-sha1 = "09ed293f6f5ebfcaf90eef2b4d45c402d834d33e"
24105
os = "macos"
25106

26-
[[fooifier.download]]
27-
sha256 = "fcc268772d6f21d65b45fcf3854a3142679b78e53c7673dac26c95d6ccc89a24"
28-
url = "https://github.com/staticfloat/small_bin/raw/master/libfoo/libfoo.x86_64-apple-darwin14.tar.gz"
107+
[[HelloWorldC.download]]
108+
sha256 = "9feabdcb8341d37d0c8b1acb5840e1c9d524632c5aff40c05b5e0e1d621a7e30"
109+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.x86_64-apple-darwin.tar.gz"
110+
[[HelloWorldC]]
111+
arch = "x86_64"
112+
git-tree-sha1 = "8c8251b0c21615bce0701995eded26ac7697b5cc"
113+
libc = "glibc"
114+
os = "linux"
29115

30-
[[fooifier]]
116+
[[HelloWorldC.download]]
117+
sha256 = "974f7e1d1cdbebad149e51fed4f1b7c6a0b5ccfa350f7d252dfcf66c2dbf9f63"
118+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.x86_64-linux-gnu.tar.gz"
119+
[[HelloWorldC]]
31120
arch = "x86_64"
32-
git-tree-sha1 = "1351b831192db9091d97e9b4bc84231ade05d210"
33-
os = "windows"
121+
git-tree-sha1 = "cfaaf0517421585561e3b30dd6f53f6c14b2835f"
122+
libc = "musl"
123+
os = "linux"
34124

35-
[[fooifier.download]]
36-
sha256 = "7f8939e9529835b83810d3ae7e2556f6e002d571f619894e54ece42ea5262b7f"
37-
url = "https://github.com/staticfloat/small_bin/raw/master/libfoo/libfoo.x86_64-w64-mingw32.tar.gz"
125+
[[HelloWorldC.download]]
126+
sha256 = "25d3d6ecc753f4dbbcaab0db7b6c20b29b0a79b0c31f7a26a0cf18c365d27809"
127+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.x86_64-linux-musl.tar.gz"
128+
[[HelloWorldC]]
129+
arch = "x86_64"
130+
git-tree-sha1 = "9adaeee1375ffd66613afe71f111dad3a88fb302"
131+
os = "freebsd"
38132

39-
[[fooifier]]
40-
arch = "aarch64"
41-
git-tree-sha1 = "281cbe3dd65aa4bdb887bfb29651da500c81e242"
42-
os = "linux"
133+
[[HelloWorldC.download]]
134+
sha256 = "8e59a00a9238d1605af09ec3a76c8bb5ad012b5621f5ccb7de6cf73f89fbf18f"
135+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.x86_64-unknown-freebsd.tar.gz"
136+
[[HelloWorldC]]
137+
arch = "x86_64"
138+
git-tree-sha1 = "59955b315ce95abd82f71d29389be3b734b14821"
139+
os = "windows"
43140

44-
[[fooifier.download]]
45-
sha256 = "36886ac25cf5678c01fe20630b413f9354b7a3721c6a2c2043162f7ebd147ff5"
46-
url = "https://github.com/staticfloat/small_bin/raw/master/libfoo/libfoo.aarch64-linux-gnu.tar.gz"
141+
[[HelloWorldC.download]]
142+
sha256 = "47bbead5cbdfca1b23544b1b398e8a2194c78ab8a772ca3075084c4a9ab75fb7"
143+
url = "https://github.com/JuliaBinaryWrappers/HelloWorldC_jll.jl/releases/download/HelloWorldC-v1.3.0+0/HelloWorldC.v1.3.0.x86_64-w64-mingw32.tar.gz"

examples/MyApp/src/MyApp.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const outputo = begin
1818
o == C_NULL ? "ok" : unsafe_string(o)
1919
end
2020

21-
fooifier_path() = joinpath(artifact"fooifier", "bin", "fooifier" * (Sys.iswindows() ? ".exe" : ""))
21+
hello_world_path() = joinpath(artifact"HelloWorldC", "bin", "hello_world" * (Sys.iswindows() ? ".exe" : ""))
2222

2323
function julia_main()::Cint
2424
try
@@ -61,8 +61,8 @@ function real_main()
6161
@show is_crayons_loaded()
6262

6363
println("Running the artifact")
64-
res = read(`$(fooifier_path()) 5 10`, String)
65-
println("The result of 2*5^2 - 10 == $res")
64+
res = readchomp(`$(hello_world_path())`)
65+
println("Artifact printed: $res")
6666

6767
@show unsafe_string(Base.JLOptions().image_file)
6868
@show Example.domath(5)

0 commit comments

Comments
 (0)