From b9b8a86aa9fd97a066d67510ab5a9c459fc36583 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:16:05 -0400 Subject: [PATCH 01/29] Integration test workflow stub --- .github/workflows/integration.yml | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/integration.yml diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml new file mode 100644 index 00000000000000..7857cb2dc7e500 --- /dev/null +++ b/.github/workflows/integration.yml @@ -0,0 +1,48 @@ +name: integration tests + +on: + workflow_dispatch: + workflow_call: + pull_request: + branches: + - develop + - releases/** + +concurrency: + group: intergrations-${{github.ref}}-${{github.event.pull_request.number || github.run_number}} + cancel-in-progress: true + +jobs: + scan: + runs-on: ubuntu-latest + outputs: + install_jobs: ${{ steps.scan-tests.integration_tests }} + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + if: ${{ github.event_name == 'push' || github.event_name == 'merge_group' }} + with: + fetch-depth: 0 + # - name: "Add Integration test repo" + # run: | + # . share/spack/setup-env.sh + # spack config --scope user add repos:builtin:git:'https://github.com/johnwparent/spack-integration-test-repo.git' + - name: "List repo packages" + id: scan-tests + run: | + packages_list="$(spack list | tr '\n' ',')" + echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" + + run: + needs: scan + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-13, macos-14, windows-latest] + package: ${{ needs.scan.outputs.install_jobs }} # list of spack intergration test packages to run + steps: + # - name: "Spack install" + # run: | + # spack install ${{ matrix.package }} + - name: "matrix check" + run: | + echo ${{ matrix.package }} From f3d9a555f5f7e10765ad26500b2dee5c6c616d42 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:23:13 -0400 Subject: [PATCH 02/29] inspect scan job results --- .github/workflows/integration.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 7857cb2dc7e500..06c88d21970530 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -35,14 +35,14 @@ jobs: run: needs: scan runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-13, macos-14, windows-latest] - package: ${{ needs.scan.outputs.install_jobs }} # list of spack intergration test packages to run + # strategy: + # matrix: + # os: [ubuntu-latest, macos-13, macos-14, windows-latest] + # package: [ ${{ needs.scan.outputs.install_jobs }}, "a" ] # list of spack intergration test packages to run steps: # - name: "Spack install" # run: | # spack install ${{ matrix.package }} - name: "matrix check" run: | - echo ${{ matrix.package }} + echo ${{ needs.scan.outputs.install_jobs }} From 36af469f30af090000bfe997e52ba78b08adbfc6 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:24:17 -0400 Subject: [PATCH 03/29] still testing --- .github/workflows/integration.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 06c88d21970530..ed63437f1a1c18 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -34,7 +34,8 @@ jobs: run: needs: scan - runs-on: ${{ matrix.os }} + # runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest # strategy: # matrix: # os: [ubuntu-latest, macos-13, macos-14, windows-latest] From 44efa90ff19e439a6dd27fdf5cdac8ea891c7c0f Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:26:15 -0400 Subject: [PATCH 04/29] Need to source spack --- .github/workflows/integration.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index ed63437f1a1c18..ec66ae56bf716d 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -29,6 +29,7 @@ jobs: - name: "List repo packages" id: scan-tests run: | + . share/spack/setup-env.sh packages_list="$(spack list | tr '\n' ',')" echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" From 6f7e1448baaa63e027af712dbd12b59683fe1368 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:27:01 -0400 Subject: [PATCH 05/29] No conditional checkout --- .github/workflows/integration.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index ec66ae56bf716d..db2e1d7a75b823 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -19,7 +19,6 @@ jobs: install_jobs: ${{ steps.scan-tests.integration_tests }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - if: ${{ github.event_name == 'push' || github.event_name == 'merge_group' }} with: fetch-depth: 0 # - name: "Add Integration test repo" From 134b9ce883740fdaa2426bd8f5286b188ed167c3 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:32:41 -0400 Subject: [PATCH 06/29] GHA is so fragile --- .github/workflows/integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index db2e1d7a75b823..88dd97b6cae3f8 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -33,7 +33,7 @@ jobs: echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" run: - needs: scan + needs: [scan] # runs-on: ${{ matrix.os }} runs-on: ubuntu-latest # strategy: @@ -46,4 +46,4 @@ jobs: # spack install ${{ matrix.package }} - name: "matrix check" run: | - echo ${{ needs.scan.outputs.install_jobs }} + echo '${{ needs.scan.outputs.install_jobs }}' From e6133a9b89209b7e638086bedefbcf53946cae2f Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:35:52 -0400 Subject: [PATCH 07/29] consistent naming --- .github/workflows/integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 88dd97b6cae3f8..25ccb1ced82c0f 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -16,7 +16,7 @@ jobs: scan: runs-on: ubuntu-latest outputs: - install_jobs: ${{ steps.scan-tests.integration_tests }} + packages: ${{ steps.scan-tests.integration_tests }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: @@ -46,4 +46,4 @@ jobs: # spack install ${{ matrix.package }} - name: "matrix check" run: | - echo '${{ needs.scan.outputs.install_jobs }}' + echo '${{ needs.scan.outputs.packages }}' From 6797c8a6b1c61ff45d9047f7f18c93fe7e6c8c21 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:47:31 -0400 Subject: [PATCH 08/29] try again IG --- .github/workflows/integration.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 25ccb1ced82c0f..ad497b8501ab93 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -16,7 +16,7 @@ jobs: scan: runs-on: ubuntu-latest outputs: - packages: ${{ steps.scan-tests.integration_tests }} + packages: ${{ steps.scan.outputs.packages }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: @@ -26,10 +26,11 @@ jobs: # . share/spack/setup-env.sh # spack config --scope user add repos:builtin:git:'https://github.com/johnwparent/spack-integration-test-repo.git' - name: "List repo packages" - id: scan-tests + id: scan run: | . share/spack/setup-env.sh packages_list="$(spack list | tr '\n' ',')" + echo ${packages_list} echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" run: @@ -46,4 +47,4 @@ jobs: # spack install ${{ matrix.package }} - name: "matrix check" run: | - echo '${{ needs.scan.outputs.packages }}' + echo '${{ toJSON(needs.scan.outputs) }}' From ac7c7ec2edc34b9afc5b9f2ee851ad6f38c9a823 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:51:38 -0400 Subject: [PATCH 09/29] try to get correct format for data --- .github/workflows/integration.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index ad497b8501ab93..6feb69add40743 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -30,7 +30,6 @@ jobs: run: | . share/spack/setup-env.sh packages_list="$(spack list | tr '\n' ',')" - echo ${packages_list} echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" run: @@ -47,4 +46,4 @@ jobs: # spack install ${{ matrix.package }} - name: "matrix check" run: | - echo '${{ toJSON(needs.scan.outputs) }}' + echo '${{ needs.scan.outputs }}' From 61ba567632ed3987f8cc380f6b6978551cc7e8ee Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 15:55:17 -0400 Subject: [PATCH 10/29] Get specific attr from object --- .github/workflows/integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 6feb69add40743..5d2628bdc798dc 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -46,4 +46,4 @@ jobs: # spack install ${{ matrix.package }} - name: "matrix check" run: | - echo '${{ needs.scan.outputs }}' + echo '${{ needs.scan.outputs.packages }}' From d820c0705b38a3a551667e5330fa1d6973b4bfc8 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 16:12:19 -0400 Subject: [PATCH 11/29] try making it the matrix --- .github/workflows/integration.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 5d2628bdc798dc..2c0b8328200a02 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -34,16 +34,16 @@ jobs: run: needs: [scan] - # runs-on: ${{ matrix.os }} - runs-on: ubuntu-latest - # strategy: - # matrix: - # os: [ubuntu-latest, macos-13, macos-14, windows-latest] - # package: [ ${{ needs.scan.outputs.install_jobs }}, "a" ] # list of spack intergration test packages to run + runs-on: ${{ matrix.os }} + # runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-latest, macos-13, macos-14, windows-latest] + package: [ ${{ needs.scan.outputs.packages }} ] # list of spack intergration test packages to run steps: # - name: "Spack install" # run: | # spack install ${{ matrix.package }} - name: "matrix check" run: | - echo '${{ needs.scan.outputs.packages }}' + echo '${{ matrix.package }}' From 8bd2b04cf875f7418c31701f187f32de6715c10a Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 16:17:11 -0400 Subject: [PATCH 12/29] try again --- .github/workflows/integration.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 2c0b8328200a02..1260800ee9a9af 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -35,7 +35,6 @@ jobs: run: needs: [scan] runs-on: ${{ matrix.os }} - # runs-on: ubuntu-latest strategy: matrix: os: [ubuntu-latest, macos-13, macos-14, windows-latest] From 9c8127b7b1c0ab5618d4e8ae20ff42e651f7d904 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 16:17:55 -0400 Subject: [PATCH 13/29] sanity check --- .github/workflows/integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 1260800ee9a9af..b940a21cb222f7 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-13, macos-14, windows-latest] - package: [ ${{ needs.scan.outputs.packages }} ] # list of spack intergration test packages to run + # package: [ ${{ needs.scan.outputs.packages }} ] # list of spack intergration test packages to run steps: # - name: "Spack install" # run: | From 81449fcab9b4a7cb3fb09868b29d828350b90146 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 16:26:06 -0400 Subject: [PATCH 14/29] Try include --- .github/workflows/integration.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index b940a21cb222f7..faa4633b645452 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -38,7 +38,8 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-13, macos-14, windows-latest] - # package: [ ${{ needs.scan.outputs.packages }} ] # list of spack intergration test packages to run + include: + ${{ toJSON(needs.scan.outputs) }} # list of spack intergration test packages to run steps: # - name: "Spack install" # run: | From ff4842b0181269ca3ada965a1a82ddae37e87afe Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 16:35:08 -0400 Subject: [PATCH 15/29] from json --- .github/workflows/integration.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index faa4633b645452..0787b8f5178bdb 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -38,8 +38,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-13, macos-14, windows-latest] - include: - ${{ toJSON(needs.scan.outputs) }} # list of spack intergration test packages to run + include: ${{ fromJSON(needs.scan.outputs) }} # list of spack intergration test packages to run steps: # - name: "Spack install" # run: | From 71abc72059108121d6898bcc5567f346faf2fb67 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 17:05:20 -0400 Subject: [PATCH 16/29] Format output as json --- .github/workflows/integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 0787b8f5178bdb..0b9e8d119121ae 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -30,7 +30,7 @@ jobs: run: | . share/spack/setup-env.sh packages_list="$(spack list | tr '\n' ',')" - echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" + echo "packages=[${packages_list}]" >> "$GITHUB_OUTPUT" run: needs: [scan] @@ -38,7 +38,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-13, macos-14, windows-latest] - include: ${{ fromJSON(needs.scan.outputs) }} # list of spack intergration test packages to run + include: ${{ fromJSON(needs.scan.outputs.packages) }} # list of spack intergration test packages to run steps: # - name: "Spack install" # run: | From e13c45c4d5eb1ee79b6baa6466ee6b597f8f017b Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 17:33:26 -0400 Subject: [PATCH 17/29] Quote vars --- .github/workflows/integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 0b9e8d119121ae..83d5f76fa066b8 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -29,8 +29,8 @@ jobs: id: scan run: | . share/spack/setup-env.sh - packages_list="$(spack list | tr '\n' ',')" - echo "packages=[${packages_list}]" >> "$GITHUB_OUTPUT" + packages_list="$(spack list | python3 -c "import sys; print([f'"{x}"' for x in sys.stdin.read().split('\n')])")" + echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" run: needs: [scan] From e7bc120bfb5a97d3c5d4d8c1df8927f35bf98512 Mon Sep 17 00:00:00 2001 From: John Parent Date: Thu, 26 Jun 2025 17:59:58 -0400 Subject: [PATCH 18/29] No include --- .github/workflows/integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 83d5f76fa066b8..b12a0ca630de51 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-13, macos-14, windows-latest] - include: ${{ fromJSON(needs.scan.outputs.packages) }} # list of spack intergration test packages to run + package: ${{ fromJSON(needs.scan.outputs.packages) }} # list of spack intergration test packages to run steps: # - name: "Spack install" # run: | From f6d515c1d805c8e828928dfdf097ab5aef3ec958 Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 27 Jun 2025 12:26:35 -0400 Subject: [PATCH 19/29] Use actual smoketest repo --- .github/workflows/integration.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index b12a0ca630de51..b20585dfcc836d 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -21,15 +21,15 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - # - name: "Add Integration test repo" - # run: | - # . share/spack/setup-env.sh - # spack config --scope user add repos:builtin:git:'https://github.com/johnwparent/spack-integration-test-repo.git' + - name: "Add Integration test repo" + run: | + . share/spack/setup-env.sh + spack repo add https://github.com/johnwparent/test-spack-smoke-repo.git - name: "List repo packages" id: scan run: | . share/spack/setup-env.sh - packages_list="$(spack list | python3 -c "import sys; print([f'"{x}"' for x in sys.stdin.read().split('\n')])")" + packages_list="$(spack list --repo smoketest | python3 -c "import sys; print([f'"{x}"' for x in sys.stdin.read().split('\n')])")" echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" run: From e9838052d7501cb1692db624a7ff351a4c299c66 Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 27 Jun 2025 13:56:39 -0400 Subject: [PATCH 20/29] fail-fast and no emptry string entry --- .github/workflows/integration.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index b20585dfcc836d..6bae58ded6532e 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -29,7 +29,7 @@ jobs: id: scan run: | . share/spack/setup-env.sh - packages_list="$(spack list --repo smoketest | python3 -c "import sys; print([f'"{x}"' for x in sys.stdin.read().split('\n')])")" + packages_list="$(spack list --repo smoketest | python3 -c "import sys; print([f'"{x}"' for x in sys.stdin.read().split('\n') if x])")" echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" run: @@ -39,10 +39,8 @@ jobs: matrix: os: [ubuntu-latest, macos-13, macos-14, windows-latest] package: ${{ fromJSON(needs.scan.outputs.packages) }} # list of spack intergration test packages to run + fail-fast: true steps: - # - name: "Spack install" - # run: | - # spack install ${{ matrix.package }} - - name: "matrix check" + - name: "Spack install" run: | - echo '${{ matrix.package }}' + spack install ${{ matrix.package }} From daf1b878e10899d9d71d2d5e820788d26c2386ca Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 27 Jun 2025 14:01:06 -0400 Subject: [PATCH 21/29] setup spack properly --- .github/workflows/integration.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 6bae58ded6532e..f4fd1332abd0df 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -41,6 +41,11 @@ jobs: package: ${{ fromJSON(needs.scan.outputs.packages) }} # list of spack intergration test packages to run fail-fast: true steps: + - name: "Add Integration test repo" + run: | + . share/spack/setup-env.sh + spack repo add https://github.com/johnwparent/test-spack-smoke-repo.git - name: "Spack install" run: | + . share/spack/setup-env.sh spack install ${{ matrix.package }} From 7e7c795a9c9c85a48672dca0608c2beb9ec64e5d Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 27 Jun 2025 14:06:12 -0400 Subject: [PATCH 22/29] checkout spack --- .github/workflows/integration.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index f4fd1332abd0df..542326c56ff95f 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -41,6 +41,9 @@ jobs: package: ${{ fromJSON(needs.scan.outputs.packages) }} # list of spack intergration test packages to run fail-fast: true steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + fetch-depth: 0 - name: "Add Integration test repo" run: | . share/spack/setup-env.sh @@ -48,4 +51,6 @@ jobs: - name: "Spack install" run: | . share/spack/setup-env.sh + spack compiler find + spack external find cmake ninja spack install ${{ matrix.package }} From 7fa81bad072833fe61e45d17cc6e2caf4ce60589 Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 27 Jun 2025 14:12:56 -0400 Subject: [PATCH 23/29] Windows support --- .github/workflows/integration.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 542326c56ff95f..e395775d38bf44 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -49,8 +49,17 @@ jobs: . share/spack/setup-env.sh spack repo add https://github.com/johnwparent/test-spack-smoke-repo.git - name: "Spack install" + if: matrix.os != 'windows-latest' run: | . share/spack/setup-env.sh spack compiler find spack external find cmake ninja spack install ${{ matrix.package }} + - name: "Spack install" + if: matrix.os == 'windows-latest' + shell: + powershell Invoke-Expression -Command "./share/spack/qa/windows_test_setup.ps1"; {0} + run: | + spack compiler find + spack external find cmake ninja + spack install ${{ matrix.package }} From 07e08fb86571bfcf22721735288a25aaf7db4f3b Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 27 Jun 2025 14:26:22 -0400 Subject: [PATCH 24/29] Better win support --- .github/workflows/integration.yml | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index e395775d38bf44..222de9251cca05 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -32,12 +32,12 @@ jobs: packages_list="$(spack list --repo smoketest | python3 -c "import sys; print([f'"{x}"' for x in sys.stdin.read().split('\n') if x])")" echo "packages=${packages_list}" >> "$GITHUB_OUTPUT" - run: + run-nix: needs: [scan] runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-13, macos-14, windows-latest] + os: [ubuntu-latest, macos-13, macos-14] package: ${{ fromJSON(needs.scan.outputs.packages) }} # list of spack intergration test packages to run fail-fast: true steps: @@ -55,11 +55,26 @@ jobs: spack compiler find spack external find cmake ninja spack install ${{ matrix.package }} - - name: "Spack install" - if: matrix.os == 'windows-latest' + run-win: + defaults: + run: shell: powershell Invoke-Expression -Command "./share/spack/qa/windows_test_setup.ps1"; {0} + needs: [scan] + runs-on: windows-latest + strategy: + matrix: + package: ${{ fromJSON(needs.scan.outputs.packages) }} # list of spack intergration test packages to run + fail-fast: true + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + fetch-depth: 0 + - name: "Add Integration test repo" + run: | + spack repo add https://github.com/johnwparent/test-spack-smoke-repo.git + - name: "Spack install" run: | spack compiler find spack external find cmake ninja - spack install ${{ matrix.package }} + spack install ${{ matrix.package }} \ No newline at end of file From 1433d7d5560a9962f5633716bcd03b84a267a4f1 Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 27 Jun 2025 17:08:51 -0400 Subject: [PATCH 25/29] test root --- .github/workflows/integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 222de9251cca05..99aed38a7b9faf 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -54,7 +54,7 @@ jobs: . share/spack/setup-env.sh spack compiler find spack external find cmake ninja - spack install ${{ matrix.package }} + spack install --test root ${{ matrix.package }} run-win: defaults: run: @@ -77,4 +77,4 @@ jobs: run: | spack compiler find spack external find cmake ninja - spack install ${{ matrix.package }} \ No newline at end of file + spack install --test root ${{ matrix.package }} \ No newline at end of file From 92e44e9912a061f29d74b695e56d955764497969 Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 11 Jul 2025 10:27:11 -0400 Subject: [PATCH 26/29] Remove OS check for windows from nix job --- .github/workflows/integration.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 99aed38a7b9faf..de93216b5252ba 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -49,7 +49,6 @@ jobs: . share/spack/setup-env.sh spack repo add https://github.com/johnwparent/test-spack-smoke-repo.git - name: "Spack install" - if: matrix.os != 'windows-latest' run: | . share/spack/setup-env.sh spack compiler find From 3866febddbb6c38d2e0b6bb5825cc8300d2469a4 Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 11 Jul 2025 11:01:27 -0400 Subject: [PATCH 27/29] add artifact collection fallback and debugging --- .github/workflows/integration.yml | 33 +++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index de93216b5252ba..d3e03786dfe4c2 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -49,11 +49,27 @@ jobs: . share/spack/setup-env.sh spack repo add https://github.com/johnwparent/test-spack-smoke-repo.git - name: "Spack install" + id: install run: | . share/spack/setup-env.sh spack compiler find spack external find cmake ninja - spack install --test root ${{ matrix.package }} + spack -dv install --test root ${{ matrix.package }} + - name: "Determine failure stage" + if: always() && (steps.install.outcome == 'failure') + run: | + . share/spack/setup-env.sh + echo "FAILURE_STAGE=$(spack location -s ${{ matrix.package }})" >> $GITHUB_ENV + + - name: "Collect failure artifacts" + if: always() && (steps.install.outcome == 'failure') + uses: actions/upload-artifact@v4 + with: + name: "${{ matrix.package }}-stage" + path: $FAILURE_STAGE + + + run-win: defaults: run: @@ -73,7 +89,20 @@ jobs: run: | spack repo add https://github.com/johnwparent/test-spack-smoke-repo.git - name: "Spack install" + id: install run: | spack compiler find spack external find cmake ninja - spack install --test root ${{ matrix.package }} \ No newline at end of file + spack -dv install --test root ${{ matrix.package }} + - name: "Determine failure stage" + if: always() && (steps.install.outcome == 'failure') + run: | + . share/spack/setup-env.sh + echo "FAILURE_STAGE=$(spack location -s ${{ matrix.package }})" >> $GITHUB_ENV + + - name: "Collect failure artifacts" + if: always() && (steps.install.outcome == 'failure') + uses: actions/upload-artifact@v4 + with: + name: "${{ matrix.package }}-stage" + path: $FAILURE_STAGE \ No newline at end of file From 67764deea6499e213309aea871765127d6103e0c Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 11 Jul 2025 11:02:09 -0400 Subject: [PATCH 28/29] try removing test from windows --- .github/workflows/integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index d3e03786dfe4c2..c6595743243cb7 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -93,7 +93,7 @@ jobs: run: | spack compiler find spack external find cmake ninja - spack -dv install --test root ${{ matrix.package }} + spack -dv install ${{ matrix.package }} - name: "Determine failure stage" if: always() && (steps.install.outcome == 'failure') run: | From 13b589d933d02bea5232915ead645fcf22e50902 Mon Sep 17 00:00:00 2001 From: John Parent Date: Fri, 11 Jul 2025 11:33:59 -0400 Subject: [PATCH 29/29] re-add testing to Windows --- .github/workflows/integration.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index c6595743243cb7..1073d8d47fe5a8 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -93,11 +93,10 @@ jobs: run: | spack compiler find spack external find cmake ninja - spack -dv install ${{ matrix.package }} + spack -dv install --test root ${{ matrix.package }} - name: "Determine failure stage" if: always() && (steps.install.outcome == 'failure') run: | - . share/spack/setup-env.sh echo "FAILURE_STAGE=$(spack location -s ${{ matrix.package }})" >> $GITHUB_ENV - name: "Collect failure artifacts"