From 5bcf48283287dd063c51f66b85951622afc18a72 Mon Sep 17 00:00:00 2001 From: Baptiste Mouginot Date: Fri, 20 Aug 2021 07:18:47 +0200 Subject: [PATCH] first addition --- .github/workflows/unix_mac.yml | 135 +++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 .github/workflows/unix_mac.yml diff --git a/.github/workflows/unix_mac.yml b/.github/workflows/unix_mac.yml new file mode 100644 index 0000000000..5aac75bf01 --- /dev/null +++ b/.github/workflows/unix_mac.yml @@ -0,0 +1,135 @@ +name: Mac builds + +on: + # allows us to run workflows manually + workflow_dispatch: + pull_request: + branches: + - develop + - master + push: + branches: + - develop + - master + release: + types: # This configuration does not affect the page_build event above + - created +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +jobs: + main: + runs-on: macos-10.15 + + name: 'Cubit ${{ matrix.cubit }} Build for ${{ matrix.os }} ${{ matrix.os_version }} of Svalinn Plugin' + + steps: + - uses: actions/checkout@v2 + + - name: Environment Variables + shell: bash -l {0} + run: | + COREFORM_BASE_URL=https://f002.backblazeb2.com/file/cubit-downloads/Coreform-Cubit/Releases + + if [ "${{ matrix.cubit }}" == "17.1.0" ]; then + BASE=Trelis-17.1.0 + BASESDK=Trelis-SDK-17.1.0 + CUBIT_BASE_NAME=Trelis-17.1 + HDF5_PATH=/usr/lib/x86_64-linux-gnu/hdf5/serial + elif [ "${{ matrix.cubit }}" == "2021.4" ]; then + BASE=Coreform-Cubit-2021.4%2B15017_05893177 + CUBIT_BASE_NAME=Coreform-Cubit-2021.4 + HDF5_PATH=/usr/local/HDF_Group/HDF5/1.12.0 + elif [ "${{ matrix.cubit }}" == "2021.5" ]; then + BASE=Coreform-Cubit-2021.5%2B15962_5043ef39 + CUBIT_BASE_NAME=Coreform-Cubit-2021.5 + HDF5_PATH=/usr/local/HDF_Group/HDF5/1.12.0 + fi + + SUFFIX=Mac64 + EXT=dmg + echo "SED=gsed" >> $GITHUB_ENV + echo "BUILD_SHARED_LIBS=OFF" >> $GITHUB_ENV + echo "BUILD_STATIC_LIBS=ON" >> $GITHUB_ENV + echo "system=mac" >> $GITHUB_ENV + echo "CUBIT_PATH=/Applications/${CUBIT_BASE_NAME}.app/Contents" >> $GITHUB_ENV + echo "COREFORM_BASE_URL=${COREFORM_BASE_URL}/MacOS/" >> $GITHUB_ENV + + echo "OS=${{ matrix.os }}" >> $GITHUB_ENV + echo "OS_VERSION=${{ matrix.os_version }}" >> $GITHUB_ENV + echo "CMAKE_ADDITIONAL_FLAGS=-DCMAKE_CXX_FLAGS=-D_GLIBCXX_USE_CXX11_ABI=0" >> $GITHUB_ENV + + echo "CUBIT_PKG=${BASE}-${SUFFIX}.${EXT}" >> $GITHUB_ENV + echo "CUBIT_SDK_PKG=${BASESDK}-${SUFFIX}.tar.gz" >> $GITHUB_ENV + echo "CUBIT_BASE_NAME=${CUBIT_BASE_NAME}" >> $GITHUB_ENV + + echo "CURRENT=$(pwd)" >> $GITHUB_ENV + echo "SCRIPTPATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV + echo "PLUGIN_ABS_PATH=$GITHUB_WORKSPACE/.." >> $GITHUB_ENV + echo "FOLDER_PKG=$GITHUB_WORKSPACE/pkg" >> $GITHUB_ENV + + echo "" >> ${HOME}/.bash_profile + echo "source $GITHUB_WORKSPACE/scripts/unix_share_build.sh" >> $HOME/.bash_profile + + - name: Initial setup + shell: bash -l {0} + run: | + ${system}_install_prerequisites + + - name: Downloading packages + shell: bash -l {0} + run: | + mkdir -p $FOLDER_PKG + cd ${FOLDER_PKG} + curl -L ${COREFORM_BASE_URL}${CUBIT_PKG} --output ${CUBIT_PKG} + if [ "${{ matrix.cubit }}" = "17.1.0" ]; then + curl -L ${COREFORM_BASE_URL}${CUBIT_SDK_PKG} --output ${CUBIT_SDK_PKG} + fi + mkdir ${SCRIPTPATH}/release + + - name: Cubit setup + shell: bash -l {0} + run: | + ${system}_setup_cubit ${{ matrix.cubit }} + + - name: Build HDF5 + shell: bash -l {0} + run: | + ${system}_build_hdf5 + + - name: Build MOAB + shell: bash -l {0} + run: | + build_moab + + - name: Build DAGMC + shell: bash -l {0} + run: | + build_dagmc + + - name: Build plugin + shell: bash -l {0} + run: | + build_plugin + + - name: Prepare package + shell: bash -l {0} + run: | + ${system}_build_plugin_pkg ${{ matrix.cubit }} + + - if: github.event_name != 'release' + name: Upload artifact for CI + uses: actions/upload-artifact@v2 + with: + name: svalinn-plugin_${{ matrix.os }}-${{ matrix.os_version }}_cubit_${{ matrix.cubit }}.tgz + path: ${{ github.workspace }}/release/svalinn-plugin_${{ matrix.os }}-${{ matrix.os_version }}_cubit_${{ matrix.cubit }}.tgz + if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` + + - if: github.event_name == 'release' + name: Upload binaries into the release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ github.workspace }}/release/svalinn-plugin_${{ matrix.os }}-${{ matrix.os_version }}_cubit_${{ matrix.cubit }}.tgz + asset_name: svalinn-plugin_${{ matrix.os }}-${{ matrix.os_version }}_cubit_${{ matrix.cubit }}.tgz + tag: ${{ github.ref }}