Fix Antares command line #3076
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: Centos7 Build | |
on: | |
merge_group: | |
push: | |
branches: | |
- develop | |
- feature/* | |
- features/* | |
- fix/* | |
- issue-* | |
- release/* | |
- doc/* | |
- dependabot/* | |
release: | |
types: [ created ] | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true | |
jobs: | |
docker_publish: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
with: | |
fetch-depth: 0 | |
- name: Get changed files | |
id: changed-files | |
uses: tj-actions/changed-files@v45 | |
with: | |
files: | | |
docker/centos7-system-deps | |
- name: Docker file push | |
id: docker_push | |
if: steps.changed-files.outputs.any_changed == 'true' | |
uses: elgohr/Publish-Docker-Github-Action@main | |
with: | |
name: antaresrte/xpansion-centos7 | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
workdir: docker | |
dockerfile: centos7-system-deps | |
cache: false | |
tags: 1.1.1 | |
build: | |
runs-on: ubuntu-latest | |
needs: [ docker_publish ] | |
outputs: | |
TGZ_NAME: ${{ steps.get-archives.outputs.TGZ_NAME }} | |
SINGLE_FILE_NAME: ${{ steps.get-archives.outputs.SINGLE_FILE_NAME }} | |
steps: | |
- uses: actions/checkout@master | |
with: | |
fetch-depth: 0 | |
sparse-checkout: | | |
docker | |
src/vcpkg.json | |
ref: ${{ env.REF }} | |
- name: create vcpkg cache dir | |
run: | | |
echo "VCPKG_CACHE_DIR=$GITHUB_WORKSPACE/vcpkg_cache" >> $GITHUB_ENV | |
mkdir -p ${{ github.workspace }}/vcpkg_cache | |
- name: Restore vcpkg binary dir from cache | |
id: cache-vcpkg-binary | |
uses: actions/cache/restore@v4 | |
with: | |
path: ${{ github.workspace }}/vcpkg_cache | |
key: vcpkg-cache-centos7-${{ hashFiles('vcpkg.json', '.git/modules/vcpkg/HEAD') }} | |
# Allows to restore a cache when deps have only partially changed (like adding a dependency) | |
restore-keys: vcpkg-cache-centos7- | |
- name: Setup ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: centos7-on-${{ runner.os }} | |
- name: set env variables -- DockerFiles | |
run: | | |
echo "DOCKERFILE=$(pwd)/docker/centos7-build" >> $GITHUB_ENV | |
echo "DOCKERDIR=$(pwd)/docker" >> $GITHUB_ENV | |
- name: Build the image and Antares-Xpansion | |
run: | | |
ls -latr .ccache/ | |
echo "-------------" | |
docker build \ | |
-t antaresxpansion:centos7 \ | |
--build-arg="BRANCH=${{ github.ref_name }}" \ | |
--build-arg="NPROC=$(nproc)" \ | |
--build-arg="VCPKG_CACHE_DIR=./vcpkg_cache" \ | |
--build-arg CCACHE_DIR=./.ccache \ | |
--build-arg CCACHE_KEY=centos7-on-${{ runner.os }} \ | |
-f ${{ env.DOCKERFILE }} . | |
- name: create a container without starting it && retrieve archive dir | |
id: get-archives | |
run: | | |
container_id=$(docker create antaresxpansion:centos7) | |
docker cp $container_id:/workspace/antares-xpansion/archive archive | |
echo "TGZ_NAME=$(basename "$(ls ./archive/multiple/*.tar.gz)")" >> $GITHUB_OUTPUT | |
echo "SINGLE_FILE_NAME=$(basename "$(ls ./archive/single/*.tar.gz)")" >> $GITHUB_OUTPUT | |
docker cp $container_id:/workspace/vcpkg_cache ${{ env.VCPKG_CACHE_DIR }} | |
docker cp $container_id:/workspace/.ccache/. .ccache | |
ls -la .ccache | |
docker rm $container_id | |
- name: Cache vcpkg binary dir | |
if: always() | |
id: save-cache-vcpkg-binary | |
uses: actions/cache/save@v4 | |
with: | |
path: ${{ github.workspace }}/vcpkg_cache | |
key: vcpkg-cache-centos7-${{ hashFiles('vcpkg.json', '.git/modules/vcpkg/HEAD') }} | |
- name: Upload .tar.gz | |
uses: actions/upload-artifact@v4 | |
with: | |
path: archive/single | |
name: ${{ steps.get-archives.outputs.SINGLE_FILE_NAME }} | |
- name: Upload .tar.gz | |
uses: actions/upload-artifact@v4 | |
with: | |
path: archive/multiple | |
name: ${{ steps.get-archives.outputs.TGZ_NAME }} | |
##################### | |
userguide: | |
if: github.event_name == 'release' && github.event.action == 'created' | |
runs-on: ubuntu-latest | |
outputs: | |
pdf-name: ${{ steps.create-user-guide.outputs.pdf-name }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Read antares-xpansion version | |
id: antares-xpansion-version | |
uses: ./.github/actions/read-json-value | |
with: | |
path: 'antares-version.json' | |
key: 'antares_xpansion_version' | |
- id: create-user-guide | |
name: user guide pdf creation | |
uses: ./.github/workflows/generate-userguide-pdf | |
with: | |
antares-xpansion-version: ${{steps.antares-xpansion-version.outputs.result}} | |
- name: user guide upload | |
id: userguide_upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: user-guide | |
path: ${{ steps.create-user-guide.outputs.pdf-path }} | |
build_running_image: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build and export | |
uses: docker/build-push-action@v6 | |
with: | |
tags: centos:run | |
file: docker/centos7_test_run | |
outputs: type=docker,dest=/tmp/centos.tar | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: centos | |
path: /tmp/centos.tar | |
test_assets: | |
runs-on: ubuntu-latest | |
needs: [ build, build_running_image ] | |
steps: | |
- name: Download build assets | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{needs.build.outputs.TGZ_NAME}} | |
- name: Download image | |
uses: actions/download-artifact@v4 | |
with: | |
name: centos | |
path: /tmp | |
- name: Load image | |
run: | | |
docker load --input /tmp/centos.tar | |
- name: setup | |
run: | | |
tar --strip-components=1 -xzf ${{needs.build.outputs.TGZ_NAME}} | |
- uses: addnab/docker-run-action@v3 | |
name: Run tests | |
with: | |
image: centos:run | |
shell: bash | |
options: -v ${{ github.workspace }}:/work | |
run: | | |
export PATH=$PATH:/usr/lib64/openmpi/bin | |
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib | |
cd /work | |
./antares-xpansion-launcher -i examples/SmallTestFiveCandidates --allow-run-as-root | |
- uses: addnab/docker-run-action@v3 | |
name: run tests with 2 processes | |
with: | |
image: centos:run | |
shell: bash | |
options: -v ${{ github.workspace }}:/work | |
run: | | |
export PATH=$PATH:/usr/lib64/openmpi/bin | |
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib | |
cd /work | |
./antares-xpansion-launcher -i examples/SmallTestFiveCandidates -n 2 --allow-run-as-root | |
test_single_file_asset: | |
runs-on: ubuntu-latest | |
needs: [ build, build_running_image ] | |
steps: | |
- name: Download build assets | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{needs.build.outputs.SINGLE_FILE_NAME}} | |
- name: Download image | |
uses: actions/download-artifact@v4 | |
with: | |
name: centos | |
path: /tmp | |
- name: Load image | |
run: | | |
docker load --input /tmp/centos.tar | |
- name: setup | |
run: | | |
tar --strip-components=1 -xzf ${{needs.build.outputs.SINGLE_FILE_NAME}} | |
- uses: addnab/docker-run-action@v3 | |
name: Run tests | |
with: | |
image: centos:run | |
shell: bash | |
options: -v ${{ github.workspace }}:/work | |
run: | | |
export PATH=$PATH:/usr/lib64/openmpi/bin | |
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib | |
cd /work | |
./antares-xpansion-launcher -i examples/SmallTestFiveCandidates --allow-run-as-root | |
- uses: addnab/docker-run-action@v3 | |
name: run tests with 2 processes | |
with: | |
image: centos:run | |
shell: bash | |
options: -v ${{ github.workspace }}:/work | |
run: | | |
export PATH=$PATH:/usr/lib64/openmpi/bin | |
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib | |
cd /work | |
./antares-xpansion-launcher -i examples/SmallTestFiveCandidates -n 2 --allow-run-as-root | |
release: | |
runs-on: ubuntu-latest | |
needs: [ build, userguide ] | |
if: github.event_name == 'release' && github.event.action == 'created' | |
steps: | |
- name: Download userguide | |
uses: actions/download-artifact@v4 | |
with: | |
name: user-guide | |
path: docs/ | |
- name: Download build assets | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{needs.build.outputs.TGZ_NAME}} | |
path: _build/ | |
- name: Download build assets single file | |
uses: actions/download-artifact@v4 | |
with: | |
name: ${{needs.build.outputs.SINGLE_FILE_NAME}} | |
path: . | |
- name: Get release | |
id: get_release | |
uses: bruceadams/get-release@main | |
- name: Upload Release Asset | |
env: | |
GH_REPO: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh release upload --repo ${{env.GH_REPO}} ${{ steps.get_release.outputs.tag_name }} _build/${{needs.build.outputs.TGZ_NAME}} | |
gh release upload --repo ${{env.GH_REPO}} ${{ steps.get_release.outputs.tag_name }} ${{needs.build.outputs.SINGLE_FILE_NAME}} |