1+ name : ReleaseTest
2+ on :
3+ push :
4+ branches : [master]
5+ tags : [v*]
6+ pull_request :
7+ paths-ignore :
8+ - ' docs/**'
9+
10+ concurrency :
11+ # Skip intermediate builds: always, but for the master branch and tags.
12+ # Cancel intermediate builds: always, but for the master branch and tags.
13+ group : ${{ github.workflow }}-${{ github.ref }}
14+ cancel-in-progress : ${{ github.ref != 'refs/heads/master' && github.refs != 'refs/tags/*' }}
15+
16+ jobs :
17+ test :
18+ name : ${{ matrix.package.package }}/${{ matrix.package.group }}/${{ matrix.julia-version }}
19+ runs-on : ${{ matrix.os }}
20+ env :
21+ GROUP : ${{ matrix.package.group }}
22+ strategy :
23+ fail-fast : false
24+ matrix :
25+ julia-version : [1]
26+ os : [ubuntu-latest]
27+ package :
28+ - {package: Catalyst, group: All}
29+ steps :
30+ - uses : actions/checkout@v4
31+ - uses : julia-actions/setup-julia@v1
32+ with :
33+ version : ${{ matrix.julia-version }}
34+ arch : x64
35+ - uses : julia-actions/julia-buildpkg@latest
36+ - name : Create test directory
37+ run : mkdir downstream
38+ - name : Load this and run the downstream tests
39+ shell : julia --color=yes --project=downstream {0}
40+ run : |
41+ using Pkg
42+ try
43+ Pkg.activate("downstream")
44+ # force it to use this PR's version of the package
45+ Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps
46+ Pkg.add("${{ matrix.package.package }}")
47+ Pkg.update()
48+ Pkg.test("Catalyst"; coverage=true) # resolver may fail with test time deps
49+ catch err
50+ err isa Pkg.Resolve.ResolverError || rethrow()
51+ # If we can't resolve that means this is incompatible by SemVer and this is fine
52+ # It means we marked this as a breaking change, so we don't need to worry about
53+ # Mistakenly introducing a breaking change, as we have intentionally made one
54+ @info "Not compatible with this release. No problem." exception=err
55+ exit(0) # Exit immediately, as a success
56+ end
57+ - uses : julia-actions/julia-processcoverage@v1
58+ - uses : codecov/codecov-action@v5
59+ with :
60+ files : lcov.info
61+ token : ${{ secrets.CODECOV_TOKEN }}
62+ fail_ci_if_error : false
0 commit comments