From 2a99316c2060e7a6e37e30d3b643c98e1dcc0a5b Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 20 Oct 2025 12:01:58 +0200 Subject: [PATCH] #63 Add IntegrationTest.yml --- .github/workflows/IntegrationTest.yml | 57 +++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/IntegrationTest.yml diff --git a/.github/workflows/IntegrationTest.yml b/.github/workflows/IntegrationTest.yml new file mode 100644 index 0000000..0ca771c --- /dev/null +++ b/.github/workflows/IntegrationTest.yml @@ -0,0 +1,57 @@ +name: Test dependent packages + +# Based on https://github.com/SciML/SciMLBase.jl/blob/master/.github/workflows/Downstream.yml + +on: + workflow_dispatch: + push: + branches: + - main + pull_request: + +jobs: + test: + name: ${{ matrix.package.repo }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + julia-version: ['1'] + os: [ubuntu-latest] + package: + # Add downstream packages that depend on ExponentialFamilyProjection here + # Each entry runs as a separate parallel job + - { user: ReactiveBayes, repo: ReactiveMP.jl } + - { user: ReactiveBayes, repo: RxInfer.jl } + + steps: + - uses: actions/checkout@v5 + + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.julia-version }} + arch: x64 + + - uses: julia-actions/julia-buildpkg@v1 + + - name: Clone Downstream + uses: actions/checkout@v5 + with: + repository: ${{ matrix.package.user }}/${{ matrix.package.repo }} + path: downstream + + - name: Load this and run the downstream tests + shell: julia --project=downstream {0} + run: | + using Pkg + try + # Force downstream to use this PR version of ExponentialFamilyProjection + Pkg.develop(PackageSpec(path=".")) # add this version + Pkg.update() + Pkg.test() # run downstream tests + catch err + err isa Pkg.Resolve.ResolverError || rethrow() + # If resolver fails, assume intentional breaking change (SemVer) + @info "Not compatible with this release. No problem." exception=err + exit(0) # Treat as success + end