1
1
name : CI
2
+
2
3
on :
3
4
push :
4
5
branches :
5
6
- master
6
7
pull_request :
7
8
workflow_dispatch :
9
+
10
+ concurrency :
11
+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
12
+ cancel-in-progress : true
13
+
8
14
jobs :
9
- # released versions, downloaded as binaries
10
15
binary_test :
11
- name : Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }}
16
+ name : Julia ${{ matrix.version }} ${{ matrix.llvm_args }} - ${{ matrix.os }} - ${{ matrix.arch }}
12
17
runs-on : ${{ matrix.os }}
13
18
strategy :
14
19
fail-fast : false
15
20
matrix :
16
- version : ['1.8', '1.9', '1.10.0-beta2 ']
21
+ version : ['1.8', '1.9', '1.10.0-beta3', 'nightly ']
17
22
os : [ubuntu-latest, macOS-latest, windows-latest]
18
23
arch : [x64]
24
+ llvm_args : ['']
25
+ include :
26
+ # starting with Julia 1.10, we can enable opaque pointers
27
+ - version : ' 1.10.0-beta3'
28
+ os : ' ubuntu-latest'
29
+ arch : ' x64'
30
+ llvm_args : ' --opaque-pointers'
31
+ - version : ' 1.10.0-beta3'
32
+ os : ' macOS-latest'
33
+ arch : ' x64'
34
+ llvm_args : ' --opaque-pointers'
35
+ - version : ' 1.10.0-beta3'
36
+ os : ' windows-latest'
37
+ arch : ' x64'
38
+ llvm_args : ' --opaque-pointers'
39
+ - version : ' nightly'
40
+ os : ' ubuntu-latest'
41
+ arch : ' x64'
42
+ llvm_args : ' --opaque-pointers'
43
+ - version : ' nightly'
44
+ os : ' macOS-latest'
45
+ arch : ' x64'
46
+ llvm_args : ' --opaque-pointers'
47
+ - version : ' nightly'
48
+ os : ' windows-latest'
49
+ arch : ' x64'
50
+ llvm_args : ' --opaque-pointers'
19
51
steps :
20
52
- uses : actions/checkout@v4
53
+
54
+ # install Julia
21
55
- uses : julia-actions/setup-julia@v1
22
56
with :
23
57
version : ${{ matrix.version }}
24
58
arch : ${{ matrix.arch }}
59
+
60
+ # set-up packages
25
61
- uses : actions/cache@v3
26
62
env :
27
63
cache-name : cache-artifacts
@@ -33,76 +69,40 @@ jobs:
33
69
${{ runner.os }}-test-
34
70
${{ runner.os }}-
35
71
- uses : julia-actions/julia-buildpkg@v1
36
- - uses : julia-actions/julia-runtest@v1
72
+
73
+ - name : Run tests
74
+ uses : julia-actions/julia-runtest@v1
75
+ env :
76
+ JULIA_LLVM_ARGS : ${{ matrix.llvm_args }}
77
+
78
+ # post-process
37
79
- uses : julia-actions/julia-processcoverage@v1
38
80
- uses : codecov/codecov-action@v3
39
81
with :
40
82
file : lcov.info
41
83
42
- # development versions, built from source ( with assertions enabled)
43
- source_test :
44
- name : Julia ${{ matrix.branch }} - ${{ matrix.os }} - ${{ matrix.arch }}
84
+ # fetching builds from Buildkite with assertions enabled
85
+ assert_test :
86
+ name : Julia-master ${{ matrix.build }} ${{ matrix.llvm_args }}
45
87
runs-on : ${{ matrix.os }}
46
88
strategy :
47
89
fail-fast : false
48
90
matrix :
49
- branch : ['release-1.8', 'release-1.9', 'release-1.10', 'master']
50
- os : ['ubuntu-latest', 'macOS-latest', 'windows-latest']
51
- arch : [x64]
52
- exclude :
53
- # unknown segfault in LLVM
54
- - branch : ' release-1.10'
55
- os : ' windows-latest'
56
- arch : ' x64'
57
- # JuliaLang/julia#48081
58
- - branch : ' master'
59
- os : ' windows-latest'
60
- arch : ' x64'
61
- # hangs during compilation
62
- - branch : ' release-1.10'
63
- os : ' macOS-latest'
64
- arch : ' x64'
65
- - branch : ' master'
66
- os : ' macOS-latest'
67
- arch : ' x64'
68
- # compilation failure
69
- - branch : ' release-1.8'
70
- os : ' windows-latest'
71
- arch : ' x64'
91
+ build : ['x86_64-linux-gnuassert']
92
+ os : ['ubuntu-latest']
93
+ arch : ['x64']
94
+ llvm_args : ['', '--opaque-pointers']
72
95
steps :
73
96
- uses : actions/checkout@v4
74
- - uses : actions/checkout@v4
75
- with :
76
- repository : ' JuliaLang/julia'
77
- ref : ${{ matrix.branch }}
78
- path : ' julia'
79
97
80
- - name : Install MSYS2
81
- uses : msys2/setup-msys2@v2
82
- with :
83
- path-type : inherit
84
- install : mingw-w64-x86_64-gcc cmake diffutils git m4 make patch tar p7zip curl python
85
- if : runner.os == 'Windows'
86
-
87
- # compile Julia
88
- - name : Compile Julia
89
- run : |
90
- mv julia ../ # move julia checkout out of the way, for ReTestItems.jl
91
- sed -i.bak 's/exit 2/exit 0/g' ../julia/deps/tools/jlchecksum
92
- make -C ../julia -j $(nproc) FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1 JULIA_PRECOMPILE=0
93
- echo $PWD/../julia/usr/bin >> $GITHUB_PATH
94
- if : runner.os != 'Windows'
95
- - name : Compile Julia (in msys2)
96
- shell : msys2 {0}
98
+ - name : Download Julia
99
+ env :
100
+ BUILDKITE_TOKEN : ${{ secrets.BUILDKITE_TOKEN }}
97
101
run : |
98
- mv julia ../ # move julia checkout out of the way, for ReTestItems.jl
99
- sed -i.bak 's/exit 2/exit 0/g' ../julia/deps/tools/jlchecksum
100
- # XXX: workaround for JuliaLang/julia#48081
101
- make -C ../julia/deps install-csl && \
102
- cp ${MINGW_PREFIX}/lib/libmsvcrt.a ../julia/usr/lib/libmsvcrt.a && \
103
- make -C ../julia -j $(nproc) FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1 JULIA_PRECOMPILE=0
104
- echo $PWD/../julia/usr/bin >> $GITHUB_PATH
105
- if : runner.os == 'Windows'
102
+ ./.github/download_build.sh build_${{ matrix.build }} julia.tar.gz
103
+ tar -xf julia.tar.gz -C ../
104
+ rm julia.tar.gz
105
+ echo $PWD/../julia-*/bin >> $GITHUB_PATH
106
106
107
107
# set-up packages
108
108
- uses : actions/cache@v3
@@ -117,8 +117,12 @@ jobs:
117
117
${{ runner.os }}-
118
118
- uses : julia-actions/julia-buildpkg@v1
119
119
120
- - uses : julia-actions/julia-runtest@v1
120
+ - name : Run tests
121
+ uses : julia-actions/julia-runtest@v1
122
+ env :
123
+ JULIA_LLVM_ARGS : ${{ matrix.llvm_args }}
121
124
125
+ # post-process
122
126
- uses : julia-actions/julia-processcoverage@v1
123
127
- uses : codecov/codecov-action@v3
124
128
with :
0 commit comments