Skip to content

Simple test

Simple test #107

Workflow file for this run

name: Developer CI
on:
# pull_request:
pull_request:
paths:
- '.github/workflows/*.yml'
pull_request_target:
paths-ignore:
- '.github/workflows/*.yml'
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:
# # DEV ONLY # runs-on: dev_devci
# # runs-on: developer_ci
# runs-on: dev_devci
# container:
# image: fr-qafactorydev.europe.altair.com/common-linux64:latest-uid10000
# 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:
# needs: guard
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"]
runs-on: ubuntu-latest
container:
image: fr-qafactorydev.europe.altair.com/build-linux64_gf:cos8-ompi411-devts11-uid10000
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: Check CI in branch
run: |
echo "Developer CI Build Job"
echo "Build: ${{ matrix.build }}"
echo "Precision: ${{ matrix.precision }}"
echo "OS: ${{ matrix.os }}"
echo "Binary dir: ${{ matrix.binary }}"
# Get last git modifications, WS is not persistent here
- uses: actions/checkout@v4
with:
lfs: 'true'
ref: refs/pull/${{ github.event.number }}/merge
- name: Clean local exe dir
run: |
grep "Check CI" .github/workflows/developer_ci.yml
rm -rf exec
md5sum exec/* || echo "Nothing in exec/"
# - 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"]
# # runs-on: ["build","dev_devci"]
# # container:
# # image: fr-qafactorydev.europe.altair.com/build-linux64_gf:cos8-ompi411-devts11-uid10000
# # 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: 'true'
# # 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
# # # 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-uid10000
# # 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