Single Stage ICD test #124
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Single Stage ICD test | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| job_name: | |
| description: 'Select an ICD stage to run' | |
| required: false | |
| type: choice | |
| options: | |
| - File-Browser-ICD-Tests | |
| - Animator-ICD-Tests | |
| - Region-Statistics-ICD-Tests | |
| - Region-Manipulation-ICD-Tests | |
| - Cube-Histogram-ICD-Tests | |
| - PV-Generator-ICD-Tests | |
| - Raster-Tiles-ICD-Tests | |
| - Catalog-ICD-Tests | |
| - Moment-ICD-Tests | |
| - Match-ICD-Tests | |
| - Close-File-ICD-Tests | |
| - Image-Fitting-ICD-Tests | |
| - Vector-Overlay-ICD-Tests | |
| - Resume-ICD-Tests | |
| carta_backend_branch: | |
| description: 'carta-backend branch to use' | |
| required: true | |
| default: 'dev' | |
| env: | |
| CARTA_BACKEND_BRANCH_NAME: ${{ inputs.carta_backend_branch }} | |
| jobs: | |
| Build: | |
| name: Build ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: CARTAvis/carta-backend | |
| ref: ${{ env.CARTA_BACKEND_BRANCH_NAME }} | |
| path: source | |
| - name: System information (macOS) | |
| if: matrix.os == 'macos' | |
| shell: bash | |
| run: | | |
| uname -a | |
| sw_vers | |
| - name: Build carta-backend (macOS-14) | |
| if: matrix.os_version == 'macOS-14' | |
| shell: bash | |
| run: | | |
| export CC=/usr/local/Cellar/llvm/20.1.3/bin/clang | |
| export CXX=/usr/local/Cellar/llvm/20.1.3/bin/clang++ | |
| export PROTOBUF_ROOT=$(brew --prefix protobuf@21) | |
| export PATH="$PROTOBUF_ROOT/bin:$PATH" | |
| export LIBRARY_PATH="$PROTOBUF_ROOT/lib:$LIBRARY_PATH" | |
| export CMAKE_PREFIX_PATH="$PROTOBUF_ROOT:$CMAKE_PREFIX_PATH" | |
| export PKG_CONFIG_PATH="$PROTOBUF_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH" | |
| SRC_DIR=$GITHUB_WORKSPACE/source | |
| BUILD_DIR=$GITHUB_WORKSPACE/build | |
| cd $SRC_DIR && git submodule update --init | |
| rm -rf $BUILD_DIR && mkdir -p $BUILD_DIR | |
| cd $BUILD_DIR | |
| cmake $SRC_DIR \ | |
| -Dtest=on \ | |
| -DCMAKE_BUILD_TYPE=Debug \ | |
| -DDevSuppressExternalWarnings=ON \ | |
| -DCMAKE_CXX_FLAGS="-O0 -g -fsanitize=address -fno-omit-frame-pointer" \ | |
| -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address" | |
| make -j 16 | |
| - name: Build carta-backend (macOS) | |
| if: matrix.os == 'macos' && matrix.os_version != 'macOS-14' | |
| shell: bash | |
| run: | | |
| SRC_DIR=$GITHUB_WORKSPACE/source | |
| BUILD_DIR=$GITHUB_WORKSPACE/build | |
| cd $SRC_DIR && git submodule update --init | |
| rm -rf $BUILD_DIR && mkdir -p $BUILD_DIR | |
| cd $BUILD_DIR | |
| cmake $SRC_DIR \ | |
| -Dtest=on \ | |
| -DCMAKE_BUILD_TYPE=Debug \ | |
| -DDevSuppressExternalWarnings=ON \ | |
| -DCMAKE_CXX_FLAGS="-O0 -g -fsanitize=address -fno-omit-frame-pointer" \ | |
| -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address" | |
| make -j 16 | |
| - name: Build carta-backend (Linux) | |
| if: matrix.os == 'linux' | |
| shell: bash | |
| run: | | |
| SRC_DIR=$GITHUB_WORKSPACE/source | |
| BUILD_DIR=$GITHUB_WORKSPACE/build-${{ matrix.os_version }} | |
| rm -rf $BUILD_DIR && mkdir -p $BUILD_DIR | |
| cd source ; git submodule update --init | |
| apptainer exec --bind $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --pwd $SRC_DIR ${{ matrix.image }} /bin/bash -c "\ | |
| cd $BUILD_DIR && \ | |
| cmake $SRC_DIR \ | |
| -Dtest=on \ | |
| -DCMAKE_BUILD_TYPE=Debug \ | |
| -DDevSuppressExternalWarnings=ON \ | |
| -DCMAKE_CXX_FLAGS='-O0 -g -fsanitize=address -fno-omit-frame-pointer' \ | |
| -DCMAKE_EXE_LINKER_FLAGS='-fsanitize=address' && \ | |
| make -j 16" | |
| - name: Check backend runs (macOS) | |
| if: matrix.os == 'macos' | |
| shell: bash | |
| run: | | |
| ./build/carta_backend --version | |
| - name: Check backend runs (Linux) | |
| if: matrix.os == 'linux' | |
| shell: bash | |
| run: | | |
| BUILD_DIR=$GITHUB_WORKSPACE/build-${{ matrix.os_version }} | |
| apptainer exec --bind $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --pwd $BUILD_DIR ${{ matrix.image }} /bin/bash -c "./carta_backend --version" | |
| Prepare-ICD-RxJS: | |
| name: Prepare-ICD-RxJS ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: Build | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| path: ICD-RxJS | |
| - name: System information (macOS) | |
| if: matrix.os == 'macos' | |
| shell: bash | |
| run: | | |
| uname -a | |
| sw_vers | |
| - name: Prepare ICD-RxJS (macOS) | |
| if: matrix.os == 'macos' | |
| shell: bash | |
| run: | | |
| ICD_DIR=$GITHUB_WORKSPACE/ICD-RxJS | |
| cd $ICD_DIR | |
| git submodule init && git submodule update && npm install | |
| cd protobuf | |
| ./build_proto.sh | |
| cd ../src/test | |
| perl -p -i -e 's/3002/5555/' config.json | |
| - name: Prepare ICD-RxJS (Linux) | |
| if: matrix.os == 'linux' | |
| shell: bash | |
| run: | | |
| BUILD_DIR=$GITHUB_WORKSPACE/build-${{ matrix.os_version }} | |
| ICD_DIR=$GITHUB_WORKSPACE/ICD-RxJS | |
| cp -r $ICD_DIR $BUILD_DIR | |
| cd $BUILD_DIR/ICD-RxJS | |
| git submodule update --init --recursive | |
| apptainer exec --bind $GITHUB_WORKSPACE:$GITHUB_WORKSPACE --pwd $BUILD_DIR ${{ matrix.image }} /bin/bash -c "\ | |
| cd ICD-RxJS && \ | |
| npm install && \ | |
| cd protobuf && \ | |
| ./build_proto.sh && \ | |
| cd ../src/test && \ | |
| perl -p -i -e 's/3002/${{ matrix.port }}/' config.json" | |
| File-Browser-ICD-Tests: | |
| name: File-Browser ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'File-Browser-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: File Browser ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'file_browser' | |
| # Linux steps | |
| - name: File Browser ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'file_browser' | |
| Animator-ICD-Tests: | |
| name: Animator ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Animator-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Animator ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'animator' | |
| # Linux steps | |
| - name: Animator ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'animator' | |
| Region-Statistics-ICD-Tests: | |
| name: Region Statistics ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Region-Statistics-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Region-Statistics ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'region_statistics' | |
| # Linux steps | |
| - name: Region-Statistics ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'region_statistics' | |
| Region-Manipulation-ICD-Tests: | |
| name: Region Manipulation ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Region-Manipulation-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Region Manipulation ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'region_manipulation' | |
| # Linux steps | |
| - name: Region Manipulation ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'region_manipulation' | |
| Cube-Histogram-ICD-Tests: | |
| name: Cube Histogram ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Cube-Histogram-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Cube Histogram ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'cube_histogram' | |
| # Linux steps | |
| - name: Cube Histogram ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'cube_histogram' | |
| PV-Generator-ICD-Tests: | |
| name: PV Generator ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'PV-Generator-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: PV Generator ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'pv_generator' | |
| # Linux steps | |
| - name: PV Generator ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'pv_generator' | |
| Raster-Tiles-ICD-Tests: | |
| name: Raster Tiles ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Raster-Tiles-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Raster Tiles ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'raster_tiles' | |
| # Linux steps | |
| - name: Raster Tiles ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'raster_tiles' | |
| Catalog-ICD-Tests: | |
| name: Catalog ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Catalog-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Catalog ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'catalog' | |
| # Linux steps | |
| - name: Catalog ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'catalog' | |
| Moment-ICD-Tests: | |
| name: Moment ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Moment-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Moment ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'moment' | |
| # Linux steps | |
| - name: Moment ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'moment' | |
| Match-ICD-Tests: | |
| name: Match ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Match-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Match ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'match' | |
| # Linux steps | |
| - name: Match ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'match' | |
| Close-File-ICD-Tests: | |
| name: Close File ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Close-File-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Close File ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'close_file' | |
| # Linux steps | |
| - name: Close File ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'close_file' | |
| Image-Fitting-ICD-Tests: | |
| name: Image Fitting ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Image-Fitting-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Image Fitting ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'image_fitting' | |
| # Linux steps | |
| - name: Image Fitting ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'image_fitting' | |
| Vector-Overlay-ICD-Tests: | |
| name: Vector Overlay ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Vector-Overlay-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Vector Overlay ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'vector_overlay' | |
| # Linux steps | |
| - name: Vector Overlay ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'vector_overlay' | |
| Resume-ICD-Tests: | |
| name: Resume ${{ matrix.os_version }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os_version: macOS-13 | |
| os: macos | |
| runner: [macOS-13, ICD] | |
| - os_version: macOS-14 | |
| os: macos | |
| runner: [macOS-14, ICD] | |
| - os_version: macOS-15 | |
| os: macos | |
| runner: [macOS-15, ICD] | |
| - os_version: ubuntu-22.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD2] | |
| image: /opt/apptainer/ubuntu-2204-mar2026.sif | |
| port: 9002 | |
| - os_version: ubuntu-24.04 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD6] | |
| image: /opt/apptainer/ubuntu-2404-mar2026.sif | |
| port: 9006 | |
| - os_version: rhel-8 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD4] | |
| image: /opt/apptainer/almalinux8-mar2026.sif | |
| port: 9004 | |
| - os_version: rhel-9 | |
| os: linux | |
| runner: [self-hosted, Linux, Apptainer, ICD5] | |
| image: /opt/apptainer/almalinux9-mar2026.sif | |
| port: 9005 | |
| needs: [Build, Prepare-ICD-RxJS] | |
| if: ${{ github.event.inputs.job_name == 'Resume-ICD-Tests' }} | |
| steps: | |
| # macOS steps | |
| - name: Resume ICD tests | |
| if: matrix.os == 'macos' | |
| uses: ./source/.github/actions/run-macos | |
| with: | |
| test_stage_name: 'resume' | |
| # Linux steps | |
| - name: Resume ICD tests | |
| if: matrix.os == 'linux' | |
| uses: ./source/.github/actions/run-apptainer | |
| with: | |
| os_version: ${{ matrix.os_version }} | |
| image: ${{ matrix.image }} | |
| port: ${{ matrix.port }} | |
| test_stage_name: 'resume' | |
| NotifyEmail: | |
| name: Send email on failure | |
| runs-on: ubuntu-latest | |
| needs: | |
| - Build | |
| - Prepare-ICD-RxJS | |
| - File-Browser-ICD-Tests | |
| - Animator-ICD-Tests | |
| - Region-Statistics-ICD-Tests | |
| - Region-Manipulation-ICD-Tests | |
| - Cube-Histogram-ICD-Tests | |
| - PV-Generator-ICD-Tests | |
| - Raster-Tiles-ICD-Tests | |
| - Catalog-ICD-Tests | |
| - Moment-ICD-Tests | |
| - Match-ICD-Tests | |
| - Close-File-ICD-Tests | |
| - Image-Fitting-ICD-Tests | |
| - Vector-Overlay-ICD-Tests | |
| - Resume-ICD-Tests | |
| if: failure() | |
| steps: | |
| - name: Send email notification | |
| uses: dawidd6/action-send-mail@v3 | |
| with: | |
| server_address: smtp.gmail.com | |
| server_port: 465 | |
| username: ${{ secrets.MAIL_USERNAME }} | |
| password: ${{ secrets.MAIL_PASSWORD }} | |
| subject: "CARTA ICD Failed: ${{ github.repository }} @ ${{ github.ref }}" | |
| to: ${{ secrets.MAIL_TO }} ${{ secrets.MAIL_USERNAME }} | |
| from: "CARTA ICD <${{ secrets.MAIL_USERNAME }}>" | |
| body: | | |
| Workflow failed | |
| Repository: ${{ github.repository }} | |
| Branch/Ref: ${{ github.ref }} | |
| Workflow: ${{ github.workflow }} | |
| Run ID: ${{ github.run_id }} | |
| URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| Failed jobs: | |
| - Build: ${{ needs['Build'].result }} | |
| - Prepare-ICD-RxJS: ${{ needs['Prepare-ICD-RxJS'].result }} | |
| - File-Browser-ICD-Tests: ${{ needs['File-Browser-ICD-Tests'].result }} | |
| - Animator-ICD-Tests: ${{ needs['Animator-ICD-Tests'].result }} | |
| - Region-Statistics-ICD-Tests: ${{ needs['Region-Statistics-ICD-Tests'].result }} | |
| - Region-Manipulation-ICD-Tests: ${{ needs['Region-Manipulation-ICD-Tests'].result }} | |
| - Cube-Histogram-ICD-Tests: ${{ needs['Cube-Histogram-ICD-Tests'].result }} | |
| - PV-Generator-ICD-Tests: ${{ needs['PV-Generator-ICD-Tests'].result }} | |
| - Raster-Tiles-ICD-Tests: ${{ needs['Raster-Tiles-ICD-Tests'].result }} | |
| - Catalog-ICD-Tests: ${{ needs['Catalog-ICD-Tests'].result }} | |
| - Moment-ICD-Tests: ${{ needs['Moment-ICD-Tests'].result }} | |
| - Match-ICD-Tests: ${{ needs['Match-ICD-Tests'].result }} | |
| - Close-File-ICD-Tests: ${{ needs['Close-File-ICD-Tests'].result }} | |
| - Image-Fitting-ICD-Tests: ${{ needs['Image-Fitting-ICD-Tests'].result }} | |
| - Vector-Overlay-ICD-Tests: ${{ needs['Vector-Overlay-ICD-Tests'].result }} | |
| - Resume-ICD-Tests: ${{ needs['Resume-ICD-Tests'].result }} |