6
6
pull_request :
7
7
workflow_dispatch :
8
8
jobs :
9
- test :
10
- name : Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.libLLVMExtra }} libLLVMExtra - assertions=${{ matrix.assertions }}
9
+ binary_test :
10
+ name : Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }}
11
11
runs-on : ${{ matrix.os }}
12
12
strategy :
13
13
fail-fast : false
14
14
matrix :
15
15
version : ['1.6', '1.7', '^1.8.0-beta3', 'nightly']
16
16
os : [ubuntu-latest, macOS-latest, windows-latest]
17
17
arch : [x64]
18
- libLLVMExtra : [packaged]
19
- assertions : [false]
20
- include :
21
- # special test with a locally-built libLLVMExtra
22
- - os : ubuntu-latest
23
- arch : x64
24
- libLLVMExtra : local
25
- version : ' 1.7'
26
- assertions : true
27
- # special test with LLVM assertions enabled
28
- # TODO: enable this across all versions
29
- # (needs LLVM.jl fixes, and julia-actions/setup-julia support)
30
- - os : ubuntu-latest
31
- arch : x64
32
- libLLVMExtra : packaged
33
- version : ' 1.7'
34
- assertions : true
35
- - os : ubuntu-latest
36
- arch : x64
37
- libLLVMExtra : packaged
38
- version : ' 1.8'
39
- assertions : true
40
18
steps :
41
19
- uses : actions/checkout@v2
42
- # install Julia
43
20
- uses : julia-actions/setup-julia@v1
44
- if : ${{ ! matrix.assertions }}
45
21
with :
46
22
version : ${{ matrix.version }}
47
23
arch : ${{ matrix.arch }}
48
- - name : Download Julia with assertions
49
- if : ${{ matrix.assertions }}
24
+ - uses : actions/cache@v1
50
25
env :
51
- version : ${{ matrix.version }}
52
- arch : ${{ matrix.arch }}
26
+ cache-name : cache-artifacts
27
+ with :
28
+ path : ~/.julia/artifacts
29
+ key : ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
30
+ restore-keys : |
31
+ ${{ runner.os }}-test-${{ env.cache-name }}-
32
+ ${{ runner.os }}-test-
33
+ ${{ runner.os }}-
34
+ - uses : julia-actions/julia-buildpkg@v1
35
+ - name : Run tests
36
+ run : |
37
+ julia --project -e 'using Pkg; Pkg.test(; coverage=true, julia_args=`-g2`)'
38
+ - uses : julia-actions/julia-processcoverage@v1
39
+ - uses : codecov/codecov-action@v1
40
+ with :
41
+ file : lcov.info
42
+
43
+ # development versions of Julia, built with assertions enabled.
44
+ # we also build LLVMExtra from source here.
45
+ source_test :
46
+ name : Julia ${{ matrix.branch }} - ${{ matrix.os }} - ${{ matrix.arch }}
47
+ runs-on : ${{ matrix.os }}
48
+ strategy :
49
+ fail-fast : false
50
+ matrix :
51
+ branch : ['release-1.7', 'release-1.8', 'master']
52
+ os : [ubuntu-latest, macOS-latest]
53
+ arch : [x64]
54
+ assertions : [false]
55
+ steps :
56
+ - uses : actions/checkout@v2
57
+ - uses : actions/checkout@v2
58
+ with :
59
+ repository : ' JuliaLang/julia'
60
+ ref : ${{ matrix.branch }}
61
+ path : ' julia'
62
+ - name : Compile Julia
53
63
run : |
54
- wget https://julialangnightlies.s3.amazonaws.com/assert_bin/linux/$arch/$version/julia-latest-linux64.tar.gz
55
- tar -xvzf julia-latest-linux64.tar.gz
56
- rm -rf julia-latest-linux64.tar.gz
57
- echo $PWD/julia-*/bin >> $GITHUB_PATH
58
- # prepare
64
+ make -C julia -j $(nproc) FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1 JULIA_PRECOMPILE=0
65
+ echo $PWD/julia/usr/bin >> $GITHUB_PATH
59
66
- uses : actions/cache@v1
60
67
env :
61
68
cache-name : cache-artifacts
@@ -68,19 +75,17 @@ jobs:
68
75
${{ runner.os }}-
69
76
- uses : julia-actions/julia-buildpkg@v1
70
77
- name : Build libLLVMExtra
71
- if : ${{ matrix.libLLVMExtra == 'local' }}
72
78
run : |
73
79
julia --project=deps -e 'using Pkg; Pkg.instantiate()'
74
80
julia --project=deps deps/build_local.jl
75
- # test
76
81
- name : Run tests
77
82
run : |
78
83
julia --project -e 'using Pkg; Pkg.test(; coverage=true, julia_args=`-g2`)'
79
- # process results
80
84
- uses : julia-actions/julia-processcoverage@v1
81
85
- uses : codecov/codecov-action@v1
82
86
with :
83
87
file : lcov.info
88
+
84
89
docs :
85
90
name : Documentation
86
91
runs-on : ubuntu-latest
0 commit comments