Skip to content

User docker registry var #155

User docker registry var

User docker registry var #155

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
runs-on: ["dev_pmci","fr-shady"]
container:
image: ${DOCKER_REGISTRY}/common-linux64
credentials:
username: ${{secrets.DOCKER_REGISTRY_USER}}
password: ${{secrets.DOCKER_REGISTRY_PASSWD}}
steps:
- run: echo "Salut !!"
# - 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