Skip to content

Commit

Permalink
ol8 release workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
JasonMarechal25 committed Jan 16, 2024
1 parent ce586a6 commit 8478c69
Showing 1 changed file with 267 additions and 0 deletions.
267 changes: 267 additions & 0 deletions .github/workflows/ol8-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
name: Oracle-linux8 release

on:
push:
branches:
- main
- develop
- ci/*
workflow_dispatch:
workflow_run:
workflows: [ "Publish Release" ]
types:
- completed
release:
types: [ created ]

env:
GITHUB_TOKEN: ${{ github.token }}

jobs:
userguide:
runs-on: ubuntu-latest
outputs:
pdf-name: ${{ steps.create-user-guide.outputs.pdf-name }}

steps:
- uses: actions/checkout@v3

- 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@v3
with:
name: user-guide
path: ${{ steps.create-user-guide.outputs.pdf-path }}

versions:
runs-on: ubuntu-latest
outputs:
antares-version: ${{steps.antares-version.outputs.result}}
antares-xpansion-version: ${{steps.antares-xpansion-version.outputs.result}}
antares-deps-version: ${{steps.antares-deps-version.outputs.result}}
steps:
- uses: actions/checkout@v3
- name: Read antares-solver version
id: antares-version
uses: ./.github/actions/read-json-value
with:
path: 'antares-version.json'
key: 'antares_version'

- name: Read antares-xpansion version
id: antares-xpansion-version
uses: ./.github/actions/read-json-value
with:
path: 'antares-version.json'
key: 'antares_xpansion_version'

- name: Read antares-deps version
id: antares-deps-version
uses: ./.github/actions/read-json-value
with:
path: 'antares-version.json'
key: 'antares_deps_version'

build:
runs-on: ubuntu-latest
needs: [ docker_publish, userguide, versions ]
container: 'antaresrte/rte-antares:centos7-system-deps'
strategy:
matrix:
xprs: [ { value: XPRESS-ON, ref: 9.2.5 },
{ value: XPRESS-OFF } ]
env:
XPRESSDIR: ${{ github.workspace }}/xpress
XPRESS: ${{ github.workspace }}/xpress/bin
XPRS_LIB_Path: ${{ github.workspace }}/xpress/lib
XPRESSDIR_CONTAINER: ${GITHUB_WORKSPACE}/xpress
XPRESS_CONTAINER: ${GITHUB_WORKSPACE}/xpress/bin
XPRS_LIB_Path_CONTAINER: ${GITHUB_WORKSPACE}/xpress/lib
outputs:
zip_name: ${{ steps.zip_name.outputs.zip_name }}
singlefile_name: ${{ steps.zip_name.outputs.singlefile_name }}
steps:
- id: branch-name
uses: tj-actions/branch-names@v6

- name: Install System
run: |
dnf install -y epel-release git cmake wget rpm-build redhat-lsb-core openmpi-devel
dnf install -y unzip libuuid-devel boost-test boost-devel gcc-toolset-10-toolchain zlib-devel python3-devel
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true

- name: Download pre-compiled librairies
uses: ./.github/workflows/download-extract-precompiled-libraries-tgz
with:
antares-deps-version: ${{needs.versions.outputs.antares-deps-version}}
antares-version: ${{needs.versions.outputs.antares-version}}
os: oracle8
os-full-name: OracleServer-8.9
#variant: -ortools-xpress

- name: Compile Boost
uses: ./.github/workflows/compile-boost
with:
prefix: "../rte-antares-deps-Release/"

- name: Compile tbb
uses: ./.github/workflows/compile-tbb

- name: Install dependencies
run: |
pip3 install --upgrade pip
pip3 install wheel #Does not work in requirements
pip3 install -r requirements-tests.txt
pip3 install -r requirements-ui.txt
- name: Download userguide
uses: actions/download-artifact@v3
with:
name: user-guide
path: docs/

- name: Checkout xpressmp linux
uses: actions/checkout@v3
with:
token: ${{ secrets.AS_TOKEN }}
repository: rte-france/xpress-mp
path: ${{ env.XPRESSDIR }}
github-server-url: https://github.com
ref: matrix.xprs.ref
if: matrix.xprs.value == 'XPRESS-ON'

- name: Configure
shell: bash
run: |
if [ ${{ matrix.xprs.value }} == "XPRESS-ON" ]; then
export XPRESS_VALUE="ON"
else
export XPRESS_VALUE="OFF"
fi
source /opt/rh/devtoolset-10/enable
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH
export PATH=/usr/lib64/openmpi/bin:$PATH
cmake3 -B _build -S . \
-DDEPS_INSTALL_DIR=rte-antares-deps-Release \
-DBUILD_TESTING=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=_install \
-DBUILD_UI=ON \
-DUSER_GUIDE_PATH="docs/${{ needs.userguide.outputs.pdf-name }}" \
-DXPRESS=${XPRESS_VALUE} \
-DXPRESS_ROOT=${XPRESSDIR} \
-DALLOW_RUN_AS_ROOT=ON
- name: Build
shell: bash
run: |
source /opt/rh/devtoolset-10/enable
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH
export PATH=/usr/lib64/openmpi/bin:$PATH
cmake3 --build _build --config Release -j2 --target install
- name: Running unit tests
timeout-minutes: 120
shell: bash
run: |
source /etc/profile.d/modules.sh
module load mpi
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:${{ env.XPRS_LIB_Path_CONTAINER }}
export XPRESS=${{ env.XPRESS_CONTAINER }}
cd _build
ctest3 -C Release --output-on-failure -L "unit|benders|lpnamer|medium"
- name: set name variables
id: single_file_name
shell: bash
run: |
if [ ${{ matrix.xprs.value }} == "XPRESS-ON" ]; then
WITH_XPRS="-xpress"
else
WITH_XPRS=""
fi
VERSION=${{needs.versions.outputs.antares-xpansion-version}}${WITH_XPRS}
echo "VERSION_WITH_XPRESS=$VERSION" >> $GITHUB_ENV
- name: .tar.gz creation
run: |
cd _build
export FILE_NAME="antaresXpansion-${{env.VERSION_WITH_XPRESS}}-CentOS-7.9.2009"
cpack3 -G TGZ -D CPACK_PACKAGE_FILE_NAME=$FILE_NAME
echo "TGZ_NAME=$FILE_NAME.tar.gz" >> $GITHUB_ENV
- name: Upload .tar.gz
uses: actions/upload-artifact@v3
with:
name: ${{env.TGZ_NAME}}
path: _build/${{env.TGZ_NAME}}

- id: create-single-file
name: Single file .tar.gz creation
uses: ./.github/workflows/single-file-creation-tgz
with:
antares-xpansion-version: ${{env.VERSION_WITH_XPRESS}}

- name: Upload single file
uses: actions/upload-artifact@v3
with:
name: ${{ steps.create-single-file.outputs.archive-name }}
path: ${{ steps.create-single-file.outputs.archive-path }}

- id: zip_name
run: |
echo "singlefile_name=${{steps.create-single-file.outputs.archive-name}}" >> "$GITHUB_OUTPUT"
echo "zip_name=${{env.TGZ_NAME}}" >> "$GITHUB_OUTPUT"
#######################

upload_asset_to_release:
if: github.event_name == 'release' && github.event.action == 'created'
runs-on: ubuntu-latest
needs: build
env:
ZIP_NAME: ${{needs.build.outputs.zip_name}}
SINGLEFILE_NAME: ${{needs.build.outputs.singlefile_name}}
steps:
- name: Get release
if: github.event_name == 'release' && github.event.action == 'created'
id: get_release
uses: bruceadams/get-release@main

- name: Download Artifact
uses: actions/download-artifact@v3
with:
name: $ZIP_NAME
path: .

- name: Download Artifact
uses: actions/download-artifact@v3
with:
name: $SINGLEFILE_NAME
path: .

- 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 }} ${{env.ZIP_NAME}}
gh release upload --repo ${{env.GH_REPO}} ${{ steps.get_release.outputs.tag_name }} ${{env.SINGLEFILE_NAME}}
########################

0 comments on commit 8478c69

Please sign in to comment.