undo build folder change #4
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: ICD tests Linux | |
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, ICD] | |
image: ajmasiaa/focal-jenkins-apr2022 | |
- os_version: rhel-8 | |
runner: [self-hosted, linux, Docker, ICD] | |
image: ajmasiaa/rhel8-jenkins-apr2022 | |
env: | |
SRC_DIR: build-${{ matrix.os_version }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
path: ${{ env.SRC_DIR }} | |
- 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 | |
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 "git submodule update --init --recursive && \ | |
mkdir build && \ | |
cd build && \ | |
cmake .. \ | |
-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 | |
working-directory: ${{ env.SRC_DIR }} | |
run: | | |
if [[ "$RUNNER_OS" == "Linux" ]]; then | |
docker exec -w $GITHUB_WORKSPACE/${{ env.SRC_DIR }} $CONTAINER_ID /bin/bash -c "./build/carta_backend --version" | |
else | |
pwd | |
./build/carta_backend --version | |
fi | |
- 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, ICD] | |
image: ajmasiaa/focal-jenkins-apr2022 | |
- os_version: rhel-8 | |
runner: [self-hosted, linux, Docker, ICD] | |
image: ajmasiaa/rhel8-jenkins-apr2022 | |
needs: Build | |
outputs: | |
port: ${{ steps.set_port.outputs.port }} | |
env: | |
SRC_DIR: carta-backend-${{ 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: Get a random port number | |
id: set_port | |
run: | | |
# PORT=$((RANDOM % 4000 + 8000)) | |
echo "PORT=5555" >> "$GITHUB_OUTPUT" | |
echo "Using port $PORT" | |
- 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 "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 && \ | |
cd ../src/test && \ | |
perl -p -i -e 's/3002/${{ steps.set_port.outputs.port }}/' config.json" | |
- name: Stop Docker container | |
if: runner.os == 'Linux' | |
run: docker stop $CONTAINER_ID | |
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, ICD] | |
image: ajmasiaa/focal-jenkins-apr2022 | |
- os_version: rhel-8 | |
runner: [self-hosted, linux, Docker, ICD] | |
image: ajmasiaa/rhel8-jenkins-apr2022 | |
env: | |
SRC_DIR: carta-backend-${{ matrix.os_version }} | |
needs: [Build, Prepare-ICD-RxJS] | |
if: always() | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
path: source | |
- 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: Start carta-backend | |
uses: ./source/.github/actions/start-carta-backend | |
with: | |
src_dir: ${{ env.SRC_DIR }} | |
port: ${{ needs.Prepare-ICD-RxJS.outputs.port }} | |
- name: File Browser ICD tests | |
working-directory: ${{ env.SRC_DIR }} | |
run: | | |
execute() { | |
if [[ "$RUNNER_OS" == "Linux" ]]; then | |
docker exec $CONTAINER_ID pkill -f carta_backend || true | |
docker exec -w $GITHUB_WORKSPACE/${{ env.SRC_DIR }} \ | |
-e ASAN_OPTIONS=suppressions=${{ github.workspace }}/${{ env.SRC_DIR }}/debug/asan/myasan.supp \ | |
-e LSAN_OPTIONS=suppressions=${{ github.workspace }}/${{ env.SRC_DIR }}/debug/asan/myasan-leaks.supp \ | |
-e ASAN_SYMBOLIZER_PATH=llvm-symbolizer \ | |
$CONTAINER_ID /bin/bash -c "./build/carta_backend /images \ | |
--top_level_folder /images \ | |
--port ${{ needs.Prepare-ICD-RxJS.outputs.port }} \ | |
--omp_threads=4 \ | |
--debug_no_auth \ | |
--no_frontend \ | |
--no_database \ | |
--verbosity=5 >> /tmp/carta.log 2>&1 &" | |
docker exec -w $GITHUB_WORKSPACE/${{ env.SRC_DIR }} $CONTAINER_ID /bin/bash -c "$1" | |
else | |
eval "$1" | |
fi | |
} | |
TEST_FILES=$(execute "cat ICD-RxJS/ICD_test_stages/file_browser.tests") | |
for test_file in $TEST_FILES; do | |
execute "cd ICD-RxJS || true && CI=true npm test -- $test_file" | |
execute "sleep 3 && pgrep carta_backend" | |
done | |
shell: bash | |
- name: Stop carta-backend | |
run: | | |
if [[ "$RUNNER_OS" == "Linux" ]]; then | |
docker stop $CONTAINER_ID | |
else | |
kill ${{ env.CARTA_BACKEND_PID }} | |
fi |