Skip to content

Single Stage ICD test #128

Single Stage ICD test

Single Stage ICD test #128

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: rhel-8
os: linux
runner: [self-hosted, Linux, Apptainer, ICD4]
image: /opt/apptainer/almalinux8-mar2026.sif
port: 9004
steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: CARTAvis/carta-backend
ref: ${{ env.CARTA_BACKEND_BRANCH_NAME }}
path: source
- 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 (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: rhel-8
os: linux
runner: [self-hosted, Linux, Apptainer, ICD4]
image: /opt/apptainer/almalinux8-mar2026.sif
port: 9004
needs: Build
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: ICD-RxJS
- 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"
Moment-ICD-Tests:
name: Moment ${{ matrix.os_version }}
runs-on: ${{ matrix.runner }}
timeout-minutes: 5
strategy:
fail-fast: false
matrix:
include:
- os_version: rhel-8
os: linux
runner: [self-hosted, Linux, Apptainer, ICD4]
image: /opt/apptainer/almalinux8-mar2026.sif
port: 9004
needs: [Build, Prepare-ICD-RxJS]
if: ${{ github.event.inputs.job_name == 'Moment-ICD-Tests' }}
steps:
# 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'