From 43fe1062a3af15d4d1f80db779923ca5b2db0fee Mon Sep 17 00:00:00 2001 From: Ulysse Prieto Date: Tue, 21 Jun 2022 15:29:29 +0200 Subject: [PATCH] Add workflows on metrix branch --- .github/workflows/centos.yml | 91 +++++++++++++++++++++++++++ .github/workflows/ubuntu-windows.yml | 94 ++++++++++++++++++++++++++++ 2 files changed, 185 insertions(+) create mode 100644 .github/workflows/centos.yml create mode 100644 .github/workflows/ubuntu-windows.yml diff --git a/.github/workflows/centos.yml b/.github/workflows/centos.yml new file mode 100644 index 0000000..46cd56c --- /dev/null +++ b/.github/workflows/centos.yml @@ -0,0 +1,91 @@ +name: CentOS + +on: + push: + branches: + - main + - feature/* + - antares_integration + - metrix + - fix/* + release: + types: [ created ] + +env: + GITHUB_TOKEN: ${{ github.token }} + +jobs: + + build_sirius: + name: build sirius + runs-on: ubuntu-latest + container: 'centos:centos7' + steps: + - uses: nelonoel/branch-name@v1.0.1 + + - name: is release created + run: | + release_created=${{ github.event_name == 'release' && github.event.action == 'created' }} + echo "RELEASE_CREATED=$release_created" >> $GITHUB_ENV + + - name: Get release + if: ${{ env.RELEASE_CREATED == 'true' }} + id: get_release + uses: + bruceadams/get-release@v1.2.3 + + - name: install requirements + run: | + yum install -y epel-release + yum install -y git redhat-lsb-core centos-release-scl scl-utils + yum install -y cmake3 devtoolset-9 + + - name: Checkout sirius + run: | + git clone $GITHUB_SERVER_URL/$GITHUB_REPOSITORY.git -b ${BRANCH_NAME} . + + - name: set sirius output variables + id: sirius-variables + run: | + SIRIUS_BASE_PATH=$PWD + SIRIUS_INSTALL_DIR=centos-7_sirius-solver-install + SIRIUS_INSTALL_PATH="${SIRIUS_BASE_PATH}/${SIRIUS_INSTALL_DIR}" + ARCHIVE_NAME=centos-7_sirius-solver.zip + ARCHIVE_PATH="${SIRIUS_BASE_PATH}/${ARCHIVE_NAME}" + echo "::set-output name=install-dir::$SIRIUS_INSTALL_DIR" + echo "::set-output name=install-path::$SIRIUS_INSTALL_PATH" + echo "::set-output name=archive-name::$ARCHIVE_NAME" + echo "::set-output name=archive-path::$ARCHIVE_PATH" + + - name: Configure Sirius + run: | + source /opt/rh/devtoolset-9/enable + cmake3 -S src \ + -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${{ steps.sirius-variables.outputs.install-dir }}" + + - name: Build & Install Sirius + run: | + source /opt/rh/devtoolset-9/enable + cmake3 --build build --config Release --target install -j14 + + - name: Zip Install Sirius + run: | + ARCHIVE_NAME="${{ steps.sirius-variables.outputs.archive-name }}" + zip -r $ARCHIVE_NAME "${{ steps.sirius-variables.outputs.install-dir }}" + + - name: Upload sirius install + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.sirius-variables.outputs.install-dir }} + path: ${{ steps.sirius-variables.outputs.install-path }} + + - name: Publish sirius install + if: ${{ env.RELEASE_CREATED == 'true' }} + uses: actions/upload-release-asset@v1.0.2 + with: + upload_url: ${{ steps.get_release.outputs.upload_url }} + asset_path: ${{ steps.sirius-variables.outputs.archive-path }} + asset_name: ${{ steps.sirius-variables.outputs.archive-name }} + asset_content_type: application/zip diff --git a/.github/workflows/ubuntu-windows.yml b/.github/workflows/ubuntu-windows.yml new file mode 100644 index 0000000..8792930 --- /dev/null +++ b/.github/workflows/ubuntu-windows.yml @@ -0,0 +1,94 @@ +name: Windows-Ubuntu + +on: + push: + branches: + - main + - feature/* + - antares_integration + - metrix + - fix/* + release: + types: [ created ] + +env: + GITHUB_TOKEN: ${{ github.token }} + +jobs: + + build_sirius: + name: ${{ matrix.os }} build sirius + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [windows-latest, ubuntu-20.04] + steps: + - name: is release created + shell: bash + run: | + release_created=${{ github.event_name == 'release' && github.event.action == 'created' }} + echo "RELEASE_CREATED=$release_created" >> $GITHUB_ENV + + - name: Get release + if: ${{ env.RELEASE_CREATED == 'true' }} + id: get_release + uses: + bruceadams/get-release@v1.2.3 + + - name: install zip for windows + if: ${{ startsWith(matrix.os, 'windows') }} + shell: cmd + run: | + choco install zip --no-progress + + - name: Checkout + uses: actions/checkout@v2 + + - name: set sirius output variables + id: sirius-variables + shell: bash + run: | + SIRIUS_BASE_PATH="${{ github.workspace }}" + SIRIUS_INSTALL_DIR="${{ matrix.os }}_sirius-solver-install" + SIRIUS_INSTALL_PATH="${SIRIUS_BASE_PATH}/${SIRIUS_INSTALL_DIR}" + ARCHIVE_NAME="${{ matrix.os }}_sirius-solver.zip" + ARCHIVE_PATH="${SIRIUS_BASE_PATH}/${ARCHIVE_NAME}" + echo "::set-output name=install-dir::$SIRIUS_INSTALL_DIR" + echo "::set-output name=install-path::$SIRIUS_INSTALL_PATH" + echo "::set-output name=archive-name::$ARCHIVE_NAME" + echo "::set-output name=archive-path::$ARCHIVE_PATH" + + - name: Configure Sirius + shell: bash + run: | + cmake -S src \ + -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${{ steps.sirius-variables.outputs.install-dir }}" + + - name: Build & Install Sirius + shell: bash + run: | + cmake --build build --config Release --target install -j14 + + - name: Zip Install Sirius + shell: bash + run: | + zip -r "${{ steps.sirius-variables.outputs.archive-name }}" "${{ steps.sirius-variables.outputs.install-dir }}" + + - name: Upload sirius install + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.sirius-variables.outputs.install-dir }} + path: ${{ steps.sirius-variables.outputs.install-path }} + + - name: Publish sirius install + if: ${{ env.RELEASE_CREATED == 'true' }} + uses: actions/upload-release-asset@v1.0.2 + with: + upload_url: ${{ steps.get_release.outputs.upload_url }} + asset_path: ${{ steps.sirius-variables.outputs.archive-path }} + asset_name: ${{ steps.sirius-variables.outputs.archive-name }} + asset_content_type: application/zip +