Skip to content

Bad tag for runner #148

Bad tag for runner

Bad tag for runner #148

Workflow file for this run

name: Developer CI
on:
push:
# pull_request:
# # CI is disabled if ONLY workflow files are changed
# paths-ignore:
# - '.github/workflows/**'
env:
QA_TIMEOUT_PER_TEST: 150
# The commit of the PR to embed it in the build tag
RADIOSS_SHA_HEADER: ${{ github.event.pull_request.head.sha }}
jobs:
# This job is a guard to avoid running CI if workflows files are changed (even if they are not the only ones)
# guard:
# runs-on: developer_ci
# container:
# image: fr-qafactorydev.europe.altair.com/common-linux64
# steps:
# - uses: actions/checkout@v4
# - name: Detect workflow changes
# run: |
# # fetch base branch
# git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1
# # list changed files in the PR
# changed=$(git diff --name-only origin/${{ github.event.pull_request.base.ref }})
# echo "Files changed in this PR:"
# echo "$changed"
# echo "-----"
# # check if workflow or other sensitive dirs were modified
# if echo "$changed" | grep -E '^\.github/workflows/'; then
# echo "::error::Workflow files modified — stopping CI for safety."
# exit 1
# fi
build-qa:
# needs: guard
if: ${{ github.repository_owner == 'OpenRadioss' }}
# concurrency:
# group: ${{ github.ref_name }}
# cancel-in-progress: true
# DEV ONLY # runs-on: ["build","dev","dev_ci"]
# runs-on: ["build","developer_ci"]
runs-on: ["build","dev","dev_ci"]
env:
BUILD_NB_THREAD: 2
strategy:
# If one job fails othere are canceled
fail-fast: true
matrix:
include:
- build: starter_linux64_gf
precision: dp
os: linux64
binary: starter
image_name: build-linux64_gf:cos8-ompi411-devts11
# - build: starter_linux64_gf_sp
# precision: sp
# os: linux64
# binary: starter
# image_name: linux64-cos10-bld:ompi4.1.1-ts15
# - build: engine_linux64_gf_ompi
# precision: dp
# os: linux64
# binary: engine
# mpi: ompi
# image_name: build-linux64_gf:cos8-ompi411-devts11
# - build: engine_linux64_gf_ompi_sp
# precision: sp
# os: linux64
# binary: engine
# mpi: ompi
# image_name: linux64-cos10-bld:ompi4.1.1-ts15
# Disabled since error would be seen in ompi version
# - build: engine_linux64_gf
# precision: dp
# os: linux64
# binary: engine
# image_name: build-linux64_gf:cos8-ompi411-devts11
# - build: engine_linux64_gf_sp
# precision: sp
# os: linux64
# binary: engine
# image_name: build-linux64_gf:cos8-ompi411-devts11
container:
image: "fr-qafactorydev.europe.altair.com/${{ matrix.image_name }}"
volumes:
- /etc/localtime:/etc/localtime:ro
steps:
- name: Welcome
run: |
echo "========================================="
echo "-- BUILD ${{ matrix.build }} --"
echo "========================================="
echo "Date is $(date)"
# - name: Clean local exe dir
# run: |
# rm -rf exec
# md5sum exec/* || echo "Nothing in exec/"
# # Get last git modifications, WS is not persistent here
# - uses: actions/checkout@v4
# with:
# lfs: 'false'
# ref: refs/pull/${{ github.event.number }}/merge
# - name: Running build
# run: |
# echo "Running using ref: refs/pull/${{ github.event.number }}/merge"
# mpi_opts=''
# if [ ! -z ${{ matrix.mpi }} ]
# then
# mpi_opts="-mpi=${{ matrix.mpi }}"
# fi
# cmd="./build_script.sh -release -arch=${{ matrix.os }}_gf -prec=${{ matrix.precision }} -nt=${{ env.BUILD_NB_THREAD }} -static-link $mpi_opts"
# echo "========================================="
# echo "-- BUILD ${{ matrix.build }} --"
# echo "-- $cmd --"
# echo "========================================="
# source /home/adminqa/.bashrc
# chmod 755 Compiling_tools/script/*
# chmod 755 ${{ matrix.binary }}/build_script.sh
# md5sum exec/* || echo "Nothing in exec/"
# mkdir exec
# cd ${{ matrix.binary }}
# eval $cmd
# cd ..
# md5sum exec/* || exit 1
# # Upload artifact (since V4 we can't upload artifact using the same name, each one must be unique)
# - name: Upload built artifacts
# uses: actions/upload-artifact@v4
# with:
# name: bins-${{ matrix.os }}-${{ matrix.precision }}-${{ matrix.build }}
# path: exec
# # We upload extlib only once, arbitrary choice
# - name: Upload extlib artifacts
# uses: actions/upload-artifact@v4
# with:
# name: extlib.zip
# path: extlib.zip
# if: ${{ matrix.build == 'starter_linux64_gf' }}
build:
# needs: guard
if: ${{ github.repository_owner == 'OpenRadioss' }}
# concurrency:
# group: ${{ github.ref_name }}
# cancel-in-progress: true
# DEV ONLY # runs-on: ["build","dev","dev_ci"]
# runs-on: ["build","developer_ci"]
runs-on: ["build","dev","dev_ci"]
env:
BUILD_NB_THREAD: 2
strategy:
# If one job fails othere are canceled
fail-fast: true
matrix:
include:
# - build: starter_linux64_gf
# precision: dp
# os: linux64
# binary: starter
# image_name: build-linux64_gf:cos8-ompi411-devts11
- build: starter_linux64_gf_sp
precision: sp
os: linux64
binary: starter
image_name: linux64-cos10-bld:ompi4.1.1-ts15
- build: engine_linux64_gf_ompi
precision: dp
os: linux64
binary: engine
mpi: ompi
image_name: build-linux64_gf:cos8-ompi411-devts11
- build: engine_linux64_gf_ompi_sp
precision: sp
os: linux64
binary: engine
mpi: ompi
image_name: linux64-cos10-bld:ompi4.1.1-ts15
# Disabled since error would be seen in ompi version
# - build: engine_linux64_gf
# precision: dp
# os: linux64
# binary: engine
# image_name: build-linux64_gf:cos8-ompi411-devts11
# - build: engine_linux64_gf_sp
# precision: sp
# os: linux64
# binary: engine
# image_name: build-linux64_gf:cos8-ompi411-devts11
container:
image: "fr-qafactorydev.europe.altair.com/${{ matrix.image_name }}"
volumes:
- /etc/localtime:/etc/localtime:ro
steps:
- name: Welcome
run: |
echo "========================================="
echo "-- BUILD ${{ matrix.build }} --"
echo "========================================="
sleep 30
echo "Date is $(date)"
# - name: Clean local exe dir
# run: |
# rm -rf exec
# md5sum exec/* || echo "Nothing in exec/"
# # Get last git modifications, WS is not persistent here
# - uses: actions/checkout@v4
# with:
# lfs: 'false'
# ref: refs/pull/${{ github.event.number }}/merge
# - name: Running build
# run: |
# echo "Running using ref: refs/pull/${{ github.event.number }}/merge"
# mpi_opts=''
# if [ ! -z ${{ matrix.mpi }} ]
# then
# mpi_opts="-mpi=${{ matrix.mpi }}"
# fi
# cmd="./build_script.sh -release -arch=${{ matrix.os }}_gf -prec=${{ matrix.precision }} -nt=${{ env.BUILD_NB_THREAD }} -static-link $mpi_opts"
# echo "========================================="
# echo "-- BUILD ${{ matrix.build }} --"
# echo "-- $cmd --"
# echo "========================================="
# source /home/adminqa/.bashrc
# chmod 755 Compiling_tools/script/*
# chmod 755 ${{ matrix.binary }}/build_script.sh
# md5sum exec/* || echo "Nothing in exec/"
# mkdir exec
# cd ${{ matrix.binary }}
# eval $cmd
# cd ..
# md5sum exec/* || exit 1
# # Upload artifact (since V4 we can't upload artifact using the same name, each one must be unique)
# - name: Upload built artifacts
# uses: actions/upload-artifact@v4
# with:
# name: bins-${{ matrix.os }}-${{ matrix.precision }}-${{ matrix.build }}
# path: exec
# # We upload extlib only once, arbitrary choice
# - name: Upload extlib artifacts
# uses: actions/upload-artifact@v4
# with:
# name: extlib.zip
# path: extlib.zip
# if: ${{ matrix.build == 'starter_linux64_gf' }}
# code-analysis:
# needs: guard
# # We execute after all builds (in // with QA)
# if: ${{ github.repository_owner == 'OpenRadioss' }}
# # DEV ONLY # runs-on: ["build","dev_devci"]
# runs-on: ["build","developer_ci"]
# container:
# image: fr-qafactorydev.europe.altair.com/build-linux64_gf:cos8-ompi411-devts11
# volumes:
# - /etc/localtime:/etc/localtime:ro
# env:
# BUILD_NB_THREAD: 2
# strategy:
# # If one job fails othere are canceled
# fail-fast: true
# matrix:
# include:
# - build: starter_linux64_gf
# precision: dp
# os: linux64
# binary: starter
# - build: engine_linux64_gf_ompi
# precision: dp
# os: linux64
# binary: engine
# mpi: ompi
# steps:
# - name: Clean local exe dir
# run: |
# rm -rf exec
# md5sum exec/* || echo "Nothing in exec/"
# # Get last git modifications, WS is not persistent here
# - uses: actions/checkout@v4
# with:
# lfs: 'false'
# ref: refs/pull/${{ github.event.number }}/merge
# - name: Generate Fortran Signatures
# run: |
# source /home/adminqa/.bashrc
# cd scripts/gcc_plugin
# sh build.sh
# cd -
# - name: Running build with code analysis
# run: |
# echo "Running using ref: refs/pull/${{ github.event.number }}/merge"
# mpi_opts=''
# if [ ! -z ${{ matrix.mpi }} ]
# then
# mpi_opts="-mpi=${{ matrix.mpi }}"
# fi
# cmd="./build_script.sh -debug=analysis -arch=${{ matrix.os }}_gf -prec=${{ matrix.precision }} -nt=${{ env.BUILD_NB_THREAD }} -static-link $mpi_opts"
# echo "========================================="
# echo "-- BUILD & ANALYSE ${{ matrix.build }} --"
# echo "-- $cmd --"
# echo "========================================="
# source /home/adminqa/.bashrc
# chmod 755 Compiling_tools/script/*
# chmod 755 ${{ matrix.binary }}/build_script.sh
# md5sum exec/* || echo "Nothing in exec/"
# mkdir exec
# cd ${{ matrix.binary }}
# eval $cmd
qa:
needs: build-qa
# DEV ONLY # runs-on: ["qa_${{ matrix.os }}","dev_devci"]
# runs-on: ["qa_${{ matrix.os }}","developer_ci"]
runs-on: ["qa_${{ matrix.os }}","dev_devci"]
container:
image: fr-qafactorydev.europe.altair.com/qa-linux64_gf:cos8-ompi411
volumes:
- /etc/localtime:/etc/localtime:ro
env:
hm_reader_extlib: ../../extlib/hm_reader
hm_reader_cfgfiles: ../../hm_cfg_files
homeuser: /home/adminqa
mpi: ompi
# DEV ONLY # QA_NB_PROC: 2
QA_NB_PROC: 4
QA_NB_THREAD: 2
strategy:
# If one job fails othere are canceled
fail-fast: false
matrix:
os: [linux64]
# precision: [dp,sp]
precision: [dp]
steps:
- name: Welcome
run: |
echo "========================================="
echo "-- QA ${{ matrix.os }}_${{ matrix.precision }} --"
echo "========================================="
echo "Date is $(date)"
# # Get git related to the commit
# - uses: actions/checkout@v4
# with:
# lfs: 'false'
# ref: refs/pull/${{ github.event.number }}/merge
# - name: Clean local exe dir
# run: |
# rm -rf exec
# # Download artifacts (since V4 we must download all needed artifacts, we could do it using wildcard but it doesn't work ... see https://github.com/actions/download-artifact/issues/337)
# # Using hard name waiting for this issue to be fixed
# # - name: Download artifacts
# # uses: actions/download-artifact@v4
# # with:
# # name: bins-${{ matrix.os }}-${{ matrix.precision }}-*
# # path: exec
# # merge-multiple: true
# - name: Download artifacts
# uses: actions/download-artifact@v4
# with:
# name: bins-${{ matrix.os }}-${{ matrix.precision }}-starter_linux64_gf
# path: exec
# merge-multiple: true
# - name: Download artifacts
# uses: actions/download-artifact@v4
# with:
# name: bins-${{ matrix.os }}-${{ matrix.precision }}-engine_linux64_gf_ompi
# path: exec
# merge-multiple: true
# - name: Download extlib artifact
# uses: actions/download-artifact@v4
# with:
# name: extlib.zip
# - name: Unzip extlib
# run: |
# unzip extlib.zip
# - name: Running qa
# run: |
# md5sum exec/* || echo "Nothing in exec/"
# if [ "${{ matrix.precision }}" = "dp" ]
# then
# precision_ext=""
# else
# precision_ext="_${{ matrix.precision }}"
# fi
# chmod 755 exec/*
# cd qa-tests/scripts
# chmod 755 or_qa_script or_radioss.pl
# rm -f QA.summary
# source ${{ env.homeuser }}/.bashrc
# export LD_LIBRARY_PATH=${{ env.hm_reader_extlib }}/${{ matrix.os }}:$LD_LIBRARY_PATH
# # cmd="./or_qa_script ../../exec/engine_${{ matrix.os }}_gf_${{ env.mpi }}${precision_ext}_db 1.0 --env:RAD_CFG_PATH=${{ env.hm_reader_cfgfiles }} --system_run --env:OMP_STACKSIZE=400m --exec_script_args='mpiexec -np ${{ env.QA_NB_PROC }}' --env:OMP_NUM_THREADS=${{ env.QA_NB_THREAD }} --output_failures_stdout --env:ASAN_OPTIONS='new_delete_type_mismatch=0:detect_leaks=0' --xtra_args='--timeoutscript=${{ env.QA_TIMEOUT_PER_TEST }}'"
# cmd="./or_qa_script ../../exec/engine_${{ matrix.os }}_gf_${{ env.mpi }}${precision_ext} 1.0 --env:RAD_CFG_PATH=${{ env.hm_reader_cfgfiles }} --system_run --env:OMP_STACKSIZE=400m --exec_script_args='mpiexec -np ${{ env.QA_NB_PROC }}' --env:OMP_NUM_THREADS=${{ env.QA_NB_THREAD }} --output_failures_stdout --xtra_args='--timeoutscript=${{ env.QA_TIMEOUT_PER_TEST }}' "
# echo "========================================="
# echo "-- QA ${{ matrix.os }}_${{ matrix.precision }} --"
# echo "-- $cmd --"
# echo "========================================="
# eval $cmd
# res=$?
# # Getting failed test
# nbtestsfailed=$(grep "# Runs Failed\s*:" QA.summary | tail -n 1 | awk -F' ' '{print $5}')
# # Checking if no test has run at all (maybe exec errors)
# nbtestsok=$(grep "# Runs Successful\s*:" QA.summary | tail -n 1 | awk -F' ' '{print $5}')
# if [ $res -gt 0 ] || [ $nbtestsfailed -gt 0 ] || [ $nbtestsok = 0 ]
# then
# # If at least one test is failed we mark the CI as failed
# echo "All tests are not OK, CI is failed"
# exit 1
# fi
# # DEV ONLY #
# # Delete the artifacts
# # In private repo we are limited to 2Gb so we decided not to keep developer ci artifacts for the moment
# # - uses: geekyeggo/delete-artifact@v2
# # with:
# # name: |
# # bins-${{ matrix.os }}-${{ matrix.precision }}
# # bins-${{ matrix.os }}-sp