Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overhaul CI strategy #142

Merged
merged 39 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
6959b6a
Only run RegressionTests in tests if specifically requested by ENV dict
LilithHafner Nov 24, 2024
0c30da6
fix indentation
LilithHafner Nov 24, 2024
c062cd0
larger matrix
LilithHafner Nov 24, 2024
53b2c57
update matrix
LilithHafner Nov 24, 2024
b74d453
fixup
LilithHafner Nov 24, 2024
c07c859
skip aarch on Julia 1.0.0
LilithHafner Nov 24, 2024
c8ee5aa
Run 1 ubuntu x64 first before starting matrix
LilithHafner Nov 24, 2024
ebc0e6b
add ssh access to debug 32bit failure
LilithHafner Nov 24, 2024
3bca76f
fix test that overflows on the test side on 32-bit
LilithHafner Nov 24, 2024
d87265e
Allow calibration to request a number of evals up to and exceeding ty…
LilithHafner Nov 24, 2024
d655ed4
Add tests for long runtime
LilithHafner Nov 24, 2024
2631cca
Revert "Allow calibration to request a number of evals up to and exce…
LilithHafner Nov 24, 2024
c3f2214
Reapply "Allow calibration to request a number of evals up to and exc…
LilithHafner Nov 24, 2024
8cb9bce
Revert "Reapply "Allow calibration to request a number of evals up to…
LilithHafner Nov 24, 2024
d55d552
Remove interactive inturrupt
LilithHafner Nov 24, 2024
a8dfc4c
switch const to let
LilithHafner Nov 24, 2024
6ac0d78
Reapply "Allow calibration to request a number of evals up to and exc…
LilithHafner Nov 24, 2024
2410164
Re-add interactive intervention
LilithHafner Nov 24, 2024
56a5559
Add a test for good failure mode when requesting too many samples
LilithHafner Nov 24, 2024
14d7af3
Remove interactivity
LilithHafner Nov 24, 2024
0342d4a
cut down on matrix size
LilithHafner Nov 24, 2024
00e811b
unroll matrix
LilithHafner Nov 25, 2024
006b85a
Allow ErrorException thrown in early versions of Julia
LilithHafner Nov 25, 2024
cf67f17
Add regression tests
LilithHafner Nov 25, 2024
ccb4fce
Move env variables
LilithHafner Nov 25, 2024
0983883
Remove buildpkg
LilithHafner Nov 25, 2024
34dc502
Update to checkout@v4 and cache@v2
LilithHafner Nov 25, 2024
82a41e7
Update to checkout@v4 and cache@v2
LilithHafner Nov 25, 2024
9fc09d5
Add comment to tests
LilithHafner Nov 25, 2024
c69e3c7
Remove caching
LilithHafner Nov 25, 2024
c503297
Put back caching (and add it to the quick-test)
LilithHafner Nov 25, 2024
c1c832c
remove comment from tests
LilithHafner Nov 25, 2024
333973f
remove caching again
LilithHafner Nov 25, 2024
b446713
skip codecov on quick-test
LilithHafner Nov 25, 2024
2ec9827
remove unnecessary version specifier
LilithHafner Nov 25, 2024
38201d5
fix typo
LilithHafner Nov 25, 2024
b251f4d
revert indentation changes
LilithHafner Nov 25, 2024
7637659
fix indentation
LilithHafner Nov 25, 2024
0f0882f
Merge branch 'main' into lh/CI-overhaull
LilithHafner Nov 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 93 additions & 25 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,51 +6,119 @@ on:
tags: ['*']
pull_request:
jobs:
quick-test:
name: Julia 1 - ubuntu-latest - x64 - ${{ github.event_name }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: 1
arch: x64
- uses: julia-actions/julia-runtest@v1
# Skip coverage on the quick test to save serial time.
# If something is only covered here and nowhere else, it's not adequately covered.
test:
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
name: Julia ${{ matrix.julia-version }} - ${{ matrix.os }} - ${{ matrix.julia-arch }} - ${{ github.event_name }}
needs: quick-test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version:
- 'min'
- 'lts'
- '1'
- 'pre'
- 'nightly'
os:
- ubuntu-latest
- macOS-latest
- windows-latest
arch:
- x64
exclude:
- version: '1.6'
os: 'windows-latest'
include:
- os: ubuntu-latest
julia-arch: x64
julia-version: nightly
- os: ubuntu-latest
julia-arch: x64
julia-version: pre
- os: ubuntu-latest
julia-arch: x64
julia-version: lts
- os: ubuntu-latest
julia-arch: x64
julia-version: min

- os: ubuntu-latest
julia-arch: x86
julia-version: 1
- os: macOS-latest
julia-arch: aarch64
julia-version: 1
- os: macOS-latest
julia-arch: x64
julia-version: 1
- os: windows-latest
julia-arch: x64
julia-version: 1
- os: windows-latest
julia-arch: x86
julia-version: 1

- os: ubuntu-latest
julia-arch: x86
julia-version: nightly
- os: ubuntu-latest
julia-arch: x86
julia-version: min

- os: macOS-latest
julia-arch: aarch64
julia-version: lts
- os: macOS-latest
julia-arch: aarch64
julia-version: pre
- os: windows-latest
julia-arch: x86
julia-version: lts
- os: windows-latest
julia-arch: x86
julia-version: pre
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: julia-actions/cache@v1
- uses: julia-actions/julia-buildpkg@v1
version: ${{ matrix.julia-version }}
arch: ${{ matrix.julia-arch }}
- uses: julia-actions/julia-runtest@v1
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v2
with:
files: lcov.info
regression-tests:
needs: quick-test
name: RegressionTests.jl Julia ${{ matrix.julia-version }} - ${{ matrix.os }} - ${{ matrix.julia-arch }} - ${{ github.event_name }}
runs-on: ${{ matrix.os }}
env:
RegressionTests: true
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
julia-arch: x64
julia-version: 1
- os: ubuntu-latest
julia-arch: x64
julia-version: nightly
- os: macOS-latest
julia-arch: aarch64
julia-version: pre
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.julia-version }}
arch: ${{ matrix.julia-arch }}
- uses: julia-actions/julia-runtest@v1
docs:
name: Documentation
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
with:
version: '1'
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-docdeploy@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
12 changes: 8 additions & 4 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ using Test
using Chairmarks: Sample, Benchmark
using Random: rand!

if ("RegressionTests" => "true") ∈ ENV
@testset "Regression Tests" begin
import RegressionTests
RegressionTests.test(workers=8)
end
else

@testset "Chairmarks" begin
@testset "Standard tests" begin
@testset "Test within a benchmark" begin
Expand Down Expand Up @@ -550,9 +557,6 @@ using Random: rand!
Aqua.test_all(Chairmarks, deps_compat=false, persistent_tasks=false)
Aqua.test_deps_compat(Chairmarks, check_extras=false)
end
end

@testset "Regression Tests" begin
import RegressionTests
("CI" => "true") ∈ ENV && RegressionTests.test(workers=8, skip_unsupported_platforms=true)
end
end
Loading