|
1 | | -name: IntegrationTestChainRules |
| 1 | +name: IntegrationTest |
2 | 2 | on: |
3 | 3 | push: |
4 | 4 | branches: [master] |
|
7 | 7 |
|
8 | 8 | jobs: |
9 | 9 | test: |
10 | | - name: Julia v${{ matrix.julia-version }} - ${{ matrix.os }} |
| 10 | + name: ${{ matrix.package.repo }} |
11 | 11 | runs-on: ${{ matrix.os }} |
12 | 12 | strategy: |
| 13 | + fail-fast: false |
13 | 14 | matrix: |
14 | 15 | julia-version: [1] |
15 | 16 | os: [ubuntu-latest] |
| 17 | + package: |
| 18 | + - {user: JuliaDiff, repo: ChainRules.jl} |
| 19 | + - {user: JuliaMath, repo: SpecialFunctions.jl} |
| 20 | + - {user: invenia, repo: BlockDiagonals.jl} |
| 21 | + - {user: invenia, repo: PDMatsExtras.jl} |
| 22 | + - {user: chrisbrahms, repo: Hankel.jl} |
| 23 | + - {user: SciML, repo: DiffEqBase.jl} |
| 24 | + - {user: dfdx, repo: Yota.jl} |
| 25 | + |
16 | 26 | steps: |
17 | 27 | - uses: actions/checkout@v2 |
18 | 28 | - uses: julia-actions/setup-julia@v1 |
19 | 29 | with: |
20 | 30 | version: ${{ matrix.julia-version }} |
21 | 31 | arch: x64 |
22 | 32 | - uses: julia-actions/julia-buildpkg@latest |
23 | | - - name: Clone ChainRules |
| 33 | + - name: Clone Downstream |
24 | 34 | uses: actions/checkout@v2 |
25 | 35 | with: |
26 | | - repository: JuliaDiff/ChainRules.jl |
27 | | - path: "ChainRules.jl" |
28 | | - - name: Run the tests |
29 | | - run: julia --project="ChainRules.jl" -e "using Pkg; Pkg.develop(PackageSpec(path=\"./\")); Pkg.update(); Pkg.test()" |
30 | | - shell: bash |
| 36 | + repository: ${{ matrix.package.user }}/${{ matrix.package.repo }} |
| 37 | + path: downstream |
| 38 | + - name: Load this and run the downstream tests |
| 39 | + shell: julia --project=downstream {0} |
| 40 | + run: | |
| 41 | + using Pkg |
| 42 | + try |
| 43 | + # force it to use this PR's version of the package |
| 44 | + Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps |
| 45 | + Pkg.update() |
| 46 | + Pkg.test() # resolver may fail with test time deps |
| 47 | + catch err |
| 48 | + err isa Pkg.Resolve.ResolverError || rethrow() |
| 49 | + # If we can't resolve that means this is incompatible by SemVer and this is fine |
| 50 | + # It means we marked this as a breaking change, so we don't need to worry about |
| 51 | + # Mistakenly introducing a breaking change, as we have intentionally made one |
| 52 | +
|
| 53 | + @info "Not compatible with this release. No problem." exception=err |
| 54 | + exit(0) # Exit immediately, as a success |
| 55 | + end |
0 commit comments