From 1a48ce67ac7b4fd55a7ea74088ca6b66c1182650 Mon Sep 17 00:00:00 2001 From: Matt Fishman Date: Wed, 8 May 2024 17:37:16 -0400 Subject: [PATCH] [CI] Unified downstream tests (#1418) --- .github/workflows/Downstream.yml | 57 +++++++++++++++++++ .github/workflows/test_itensortdvp_ubuntu.yml | 53 ----------------- 2 files changed, 57 insertions(+), 53 deletions(-) create mode 100644 .github/workflows/Downstream.yml delete mode 100644 .github/workflows/test_itensortdvp_ubuntu.yml diff --git a/.github/workflows/Downstream.yml b/.github/workflows/Downstream.yml new file mode 100644 index 0000000000..8526f4ed96 --- /dev/null +++ b/.github/workflows/Downstream.yml @@ -0,0 +1,57 @@ +name: IntegrationTest +on: + push: + branches: [master] + tags: [v*] + pull_request: + +jobs: + test: + name: ${{ matrix.package.repo }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + julia-version: [1] + os: [ubuntu-latest] + package: + - {user: ITensor, repo: ITensorGaussianMPS.jl} + - {user: ITensor, repo: ITensorTDVP.jl} + - {user: ITensor, repo: ITensorUnicodePlots.jl} + - {user: ITensor, repo: ITensorVisualizationBase.jl} + + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.julia-version }} + arch: x64 + - uses: julia-actions/julia-buildpkg@latest + - name: Clone Downstream + uses: actions/checkout@v4 + with: + repository: ${{ matrix.package.user }}/${{ matrix.package.repo }} + path: downstream + - name: Load this and run the downstream tests + shell: julia --color=yes --project=downstream {0} + run: | + using Pkg + try + # force it to use this PR's version of the package + Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps + Pkg.update() + Pkg.test(coverage=true) # resolver may fail with test time deps + catch err + err isa Pkg.Resolve.ResolverError || rethrow() + # If we can't resolve that means this is incompatible by SemVer and this is fine + # It means we marked this as a breaking change, so we don't need to worry about + # Mistakenly introducing a breaking change, as we have intentionally made one + @info "Not compatible with this release. No problem." exception=err + exit(0) # Exit immediately, as a success + end +## - uses: julia-actions/julia-processcoverage@v1 +## - uses: codecov/codecov-action@v4 +## with: +## token: ${{ secrets.CODECOV_TOKEN }} +## file: lcov.info +## fail_ci_if_error: true diff --git a/.github/workflows/test_itensortdvp_ubuntu.yml b/.github/workflows/test_itensortdvp_ubuntu.yml deleted file mode 100644 index 0e8611ff44..0000000000 --- a/.github/workflows/test_itensortdvp_ubuntu.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Run ITensorTDVP tests (Unbuntu) - -on: - push: - branches: - - main - tags: '*' - pull_request: - -jobs: - test: - name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.threads }} thread(s) - runs-on: ${{ matrix.os }} - env: - JULIA_NUM_THREADS: ${{ matrix.threads }} - strategy: - matrix: - version: - - '1.6' - - '1' - os: - - ubuntu-latest - threads: - - '2' - arch: - - x64 - exclude: - # MacOS not available on x86 - - {os: 'macOS-latest', arch: 'x86'} - steps: - - uses: actions/checkout@v2 - - uses: julia-actions/setup-julia@latest - with: - version: ${{ matrix.version }} - arch: ${{ matrix.arch }} - - name: Install Julia dependencies and run tests - shell: julia {0} - run: | - using Pkg; - try - Pkg.activate(temp=true); - Pkg.develop(path="./NDTensors"); - Pkg.develop(path="."); - Pkg.add("ITensorTDVP"); - Pkg.test("ITensorTDVP"); - catch err - err isa Pkg.Resolve.ResolverError || rethrow() - # If we can't resolve that means this is incompatible by SemVer and this is fine - # It means we marked this as a breaking change, so we don't need to worry about - # Mistakenly introducing a breaking change, as we have intentionally made one - @info "ITensorTDVP not compatible with this release. Skipping this test." exception=err - exit(0) # Exit immediately, as a success - end