remove running containers as root and the rhel7 container for now #20
Workflow file for this run
This file contains 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: Linux ICD tests | |
on: | |
push: | |
schedule: | |
- cron: '0 0 * * *' # UTC time | |
env: | |
ICD_RXJS_BRANCH_NAME: ajm/icd-test-stages-lists | |
jobs: | |
Build: | |
name: Build ${{ matrix.os_version }} | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os_version: ubuntu-20.04 | |
runner: [self-hosted, Linux, Docker, ICD1] | |
image: ajmasiaa/focal-jenkins-apr2022 | |
- os_version: ubuntu-22.04 | |
runner: [self-hosted, Linux, Docker, ICD1] | |
image: ajmasiaa/jammy-jenkins-sep2022 | |
- os_version: rhel-8 | |
runner: [self-hosted, linux, Docker, ICD2] | |
image: ajmasiaa/rhel8-jenkins-apr2022 | |
- os_version: rhel-9 | |
runner: [self-hosted, linux, Docker, ICD3] | |
image: ajmasiaa/rhel9-jenkins-sep2022 | |
env: | |
SRC_DIR: build-${{ matrix.os_version }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
path: ${{ env.SRC_DIR }} | |
- name: Fix ownership | |
run: | | |
chown -R $(id -u):$(id -g) $PWD | |
- name: Start Docker container for Linux platforms | |
if: runner.os == 'Linux' | |
id: start_container | |
run: | | |
CONTAINER_ID=$(docker run -d --user $(id -u):$(id -g) -v /images:/images \ | |
-v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE \ | |
-w $GITHUB_WORKSPACE ${{ matrix.image }} tail -f /dev/null) | |
echo "CONTAINER_ID=$CONTAINER_ID" >> $GITHUB_ENV | |
- name: Build backend | |
shell: bash | |
run: | | |
BUILD_DIR=$GITHUB_WORKSPACE/build-${{ matrix.os_version }} | |
mkdir -p $BUILD_DIR | |
docker exec -w $BUILD_DIR $CONTAINER_ID /bin/bash -c "\ | |
git submodule update --init --recursive && \ | |
cmake $GITHUB_WORKSPACE/${{ env.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 | |
shell: bash | |
run: | | |
BUILD_DIR=$GITHUB_WORKSPACE/build-${{ matrix.os_version }} | |
docker exec -w $BUILD_DIR $CONTAINER_ID /bin/bash -c "./carta_backend --version" | |
- name: Stop Docker container | |
if: runner.os == 'Linux' | |
run: docker stop $CONTAINER_ID | |
Prepare-ICD-RxJS: | |
name: Prepare-ICD-RxJS ${{ matrix.os_version }} | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os_version: ubuntu-20.04 | |
runner: [self-hosted, Linux, Docker, ICD1] | |
image: ajmasiaa/focal-jenkins-apr2022 | |
- os_version: ubuntu-22.04 | |
runner: [self-hosted, Linux, Docker, ICD1] | |
image: ajmasiaa/jammy-jenkins-sep2022 | |
- os_version: rhel-8 | |
runner: [self-hosted, linux, Docker, ICD2] | |
image: ajmasiaa/rhel8-jenkins-apr2022 | |
- os_version: rhel-9 | |
runner: [self-hosted, linux, Docker, ICD3] | |
image: ajmasiaa/rhel9-jenkins-sep2022 | |
needs: Build | |
env: | |
SRC_DIR: build-${{ matrix.os_version }} | |
steps: | |
- name: Start Docker container for Linux platforms | |
if: runner.os == 'Linux' | |
id: start_container | |
run: | | |
CONTAINER_ID=$(docker run -d --user $(id -u):$(id -g) -v /images:/images \ | |
-v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE \ | |
-w $GITHUB_WORKSPACE ${{ matrix.image }} tail -f /dev/null) | |
echo "CONTAINER_ID=$CONTAINER_ID" >> $GITHUB_ENV | |
- name: Prepare ICD-RxJS | |
shell: bash | |
working-directory: ${{ env.SRC_DIR }} | |
run: | | |
execute() { | |
if [[ "$RUNNER_OS" == "Linux" ]]; then | |
docker exec -w $GITHUB_WORKSPACE/${{ env.SRC_DIR }} $CONTAINER_ID /bin/bash -c "$1" | |
else | |
eval "$1" | |
fi | |
} | |
execute "export npm_config_cache=${GITHUB_WORKSPACE}/.npm && \ | |
npm --global cache verify && \ | |
git clone https://github.com/CARTAvis/ICD-RxJS.git && \ | |
cd ICD-RxJS && \ | |
git checkout ${{ env.ICD_RXJS_BRANCH_NAME }} && \ | |
git submodule init && git submodule update && npm install && \ | |
cd protobuf && \ | |
./build_proto.sh" | |
- name: Stop Docker container | |
run: | | |
if [ -n "$CONTAINER_ID" ]; then | |
docker stop $CONTAINER_ID | |
fi | |
File-Browser-ICD-Tests: | |
name: File-Browser ${{ matrix.os_version }} | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os_version: ubuntu-20.04 | |
runner: [self-hosted, Linux, Docker, ICD1] | |
image: ajmasiaa/focal-jenkins-apr2022 | |
- os_version: ubuntu-22.04 | |
runner: [self-hosted, Linux, Docker, ICD1] | |
image: ajmasiaa/jammy-jenkins-sep2022 | |
- os_version: rhel-8 | |
runner: [self-hosted, linux, Docker, ICD2] | |
image: ajmasiaa/rhel8-jenkins-apr2022 | |
- os_version: rhel-9 | |
runner: [self-hosted, linux, Docker, ICD3] | |
image: ajmasiaa/rhel9-jenkins-sep2022 | |
- os_version: ubuntu-20.04 | |
env: | |
SRC_DIR: build-${{ matrix.os_version }} | |
CONTAINER_ID: "" | |
needs: [Build, Prepare-ICD-RxJS] | |
if: always() | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
path: source | |
- name: Start Docker container | |
run: | | |
CONTAINER_ID=$(docker run -d --user $(id -u):$(id -g) -v /images:/images \ | |
-v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE \ | |
-w $GITHUB_WORKSPACE ${{ matrix.image }} tail -f /dev/null) | |
echo "CONTAINER_ID=$CONTAINER_ID" >> $GITHUB_ENV | |
- name: Start carta-backend | |
uses: ./source/.github/actions/start-carta-backend-linux | |
with: | |
src_dir: build-${{ matrix.os_version }} | |
- name: File Browser ICD tests | |
run: | | |
echo "Docker Container ID: $CONTAINER_ID" | |
CARTA_BACKEND_PID=$(docker exec $CONTAINER_ID ps -aux | grep carta_backend) | |
echo "carta_backend PID: $CARTA_BACKEND_PID" | |
TEST_FILES=$(docker exec $CONTAINER_ID cat $GITHUB_WORKSPACE/${{ env.SRC_DIR }}/ICD-RxJS/ICD_test_stages/file_browser.tests) | |
for test_file in $TEST_FILES; do | |
docker exec -e CI=true -e npm_config_cache=${GITHUB_WORKSPACE}/.npm \ | |
-w $GITHUB_WORKSPACE/${{ env.SRC_DIR }}/ICD-RxJS $CONTAINER_ID \ | |
npm test -- $test_file | |
done | |
shell: bash | |
- name: Stop Docker container | |
run: | | |
if [ -n "$CONTAINER_ID" ]; then | |
docker stop $CONTAINER_ID | |
fi | |
Animator-ICD-Tests: | |
name: Animator ${{ matrix.os_version }} | |
runs-on: ${{ matrix.runner }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os_version: ubuntu-20.04 | |
runner: [self-hosted, Linux, Docker, ICD1] | |
image: ajmasiaa/focal-jenkins-apr2022 | |
- os_version: ubuntu-22.04 | |
runner: [self-hosted, Linux, Docker, ICD1] | |
image: ajmasiaa/jammy-jenkins-sep2022 | |
- os_version: rhel-8 | |
runner: [self-hosted, linux, Docker, ICD2] | |
image: ajmasiaa/rhel8-jenkins-apr2022 | |
- os_version: rhel-9 | |
runner: [self-hosted, linux, Docker, ICD3] | |
image: ajmasiaa/rhel9-jenkins-sep2022 | |
- os_version: ubuntu-20.04 | |
env: | |
SRC_DIR: build-${{ matrix.os_version }} | |
CONTAINER_ID: "" | |
needs: [File-Browser-ICD-Tests, Prepare-ICD-RxJS] | |
if: always() | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
path: source | |
- name: Start Docker container | |
run: | | |
CONTAINER_ID=$(docker run -d --user $(id -u):$(id -g) -v /images:/images \ | |
-v $GITHUB_WORKSPACE:$GITHUB_WORKSPACE \ | |
-w $GITHUB_WORKSPACE ${{ matrix.image }} tail -f /dev/null) | |
echo "CONTAINER_ID=$CONTAINER_ID" >> $GITHUB_ENV | |
- name: Start carta-backend | |
uses: ./source/.github/actions/start-carta-backend-linux | |
with: | |
src_dir: build-${{ matrix.os_version }} | |
- name: Animator ICD tests | |
run: | | |
echo "Docker Container ID: $CONTAINER_ID" | |
CARTA_BACKEND_PID=$(docker exec $CONTAINER_ID ps -aux | grep carta_backend) | |
echo "carta_backend PID: $CARTA_BACKEND_PID" | |
TEST_FILES=$(docker exec $CONTAINER_ID cat $GITHUB_WORKSPACE/${{ env.SRC_DIR }}/ICD-RxJS/ICD_test_stages/animator.tests) | |
for test_file in $TEST_FILES; do | |
docker exec -e CI=true -e npm_config_cache=${GITHUB_WORKSPACE}/.npm \ | |
-w $GITHUB_WORKSPACE/${{ env.SRC_DIR }}/ICD-RxJS $CONTAINER_ID \ | |
npm test -- $test_file | |
done | |
shell: bash | |
- name: Stop Docker container | |
run: | | |
if [ -n "$CONTAINER_ID" ]; then | |
docker stop $CONTAINER_ID | |
fi |