1- name : CI
2- on : [push, pull_request]
3-
41jobs :
52 test :
63 runs-on : ${{ matrix.os }}
74 strategy :
85 matrix :
96 os : [ubuntu-latest, macos-latest, windows-latest]
10- julia-version : ['1.10', '1.11', 'nightly ']
7+ julia-version : ['1.11 ']
118
129 steps :
1310 - uses : actions/checkout@v4
1411
1512 - uses : julia-actions/setup-julia@v1
1613 with :
17- version : ' 1.11 '
14+ version : ${{ matrix.julia-version }}
1815
1916 - name : Cache Julia artifacts
2017 uses : actions/cache@v4
@@ -44,14 +41,24 @@ jobs:
4441 if : runner.os == 'macOS'
4542 run : julia -e 'ENV["PYTHON"] = ""; using Pkg; Pkg.add("PyCall"); Pkg.build("PyCall")'
4643
47- - name : Install dependencies
44+ - name : Install dependencies with retry and heartbeat
4845 run : |
49- julia --project=@. -e 'using Pkg; Pkg.instantiate()' &
50- pid=$!
51- while kill -0 $pid 2>/dev/null; do echo "Still working..."; sleep 60; done
46+ for i in 1 2 3; do
47+ julia --project=@. -e 'using Pkg; Pkg.instantiate()' &
48+ pid=$!
49+ while kill -0 $pid 2>/dev/null; do echo "Still working..."; sleep 60; done
50+ wait $pid && break
51+ echo "Retry $i/3 after failure..."
52+ sleep 10
53+ done
5254
53- - name : Run tests
55+ - name : Run tests with retry and heartbeat
5456 run : |
55- julia --project=@. -e 'using Pkg; Pkg.test()' &
56- pid=$!
57- while kill -0 $pid 2>/dev/null; do echo "Still testing..."; sleep 60; done
57+ for i in 1 2 3; do
58+ julia --project=@. -e 'using Pkg; Pkg.test()' &
59+ pid=$!
60+ while kill -0 $pid 2>/dev/null; do echo "Still testing..."; sleep 60; done
61+ wait $pid && break
62+ echo "Retry $i/3 after failure..."
63+ sleep 10
64+ done
0 commit comments