Skip to content

Run analysis

Run analysis #31

Workflow file for this run

name: Developer CI
on:
push:
branches:
- main
pull_request:
paths:
- '.github/workflows/*.yml'
pull_request_target:
paths-ignore:
- '.github/workflows/*.yml'
env:
QA_TIMEOUT_PER_TEST: 150
jobs:
# build:
# if: ${{ github.repository_owner == 'OpenRadioss' }}
# # concurrency:
# # group: ${{ github.ref_name }}
# # cancel-in-progress: true
# # DEV ONLY # runs-on: ["build","dev_devci"]
# # runs-on: ["build","developer_ci"]
# runs-on: ["build","dev_devci"]
# container:
# image: fr-qafactorydev.europe.altair.com/build-linux64_gf:cos8-ompi411-devts11
# credentials:
# username: ${{secrets.DOCKER_REGISTRY_USER}}
# password: ${{secrets.DOCKER_REGISTRY_PASSWD}}
# 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: starter_linux64_gf_sp
# # precision: sp
# # os: linux64
# # binary: starter
# # - build: engine_linux64_gf_ompi
# # precision: dp
# # os: linux64
# # binary: engine
# # mpi: ompi
# # - build: engine_linux64_gf_ompi_sp
# # precision: sp
# # os: linux64
# # binary: engine
# # mpi: ompi
# # - build: engine_linux64_gf
# # precision: dp
# # os: linux64
# # binary: engine
# # - build: engine_linux64_gf_sp
# # precision: sp
# # os: linux64
# # binary: engine
# 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: 'true'
# # 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:
# We execute after all builds (in // with QA)
# needs: build
if: ${{ github.repository_owner == 'OpenRadioss' }}
# DEV ONLY # runs-on: ["build","dev_devci"]
# runs-on: ["build","developer_ci"]
runs-on: ["build","dev_devci"]
container:
image: fr-qafactorydev.europe.altair.com/build-linux64_gf:cos8-ompi411-devts11
credentials:
username: ${{secrets.DOCKER_REGISTRY_USER}}
password: ${{secrets.DOCKER_REGISTRY_PASSWD}}
volumes:
- /etc/localtime:/etc/localtime:ro
# options: --pull always
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: 'true'
# ref: refs/pull/${{ github.event.number }}/merge
- name: Generate Fortran Signatures
run: |
source /home/adminqa/.bashrc
echo "========================================="
cat /home/adminqa/.bashrc
echo "========================================="
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 ${{ 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
# # 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
# credentials:
# username: ${{secrets.DOCKER_REGISTRY_USER}}
# password: ${{secrets.DOCKER_REGISTRY_PASSWD}}
# 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:
# # Get git related to the commit
# - uses: actions/checkout@v4
# with:
# lfs: 'true'
# 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