Skip to content

(21 Warnings) Implement IdentityIsometry #546

(21 Warnings) Implement IdentityIsometry

(21 Warnings) Implement IdentityIsometry #546

Workflow file for this run

name: CMake Build
env:
CMAKE_VERSION: 3.20.1
BUILD_TYPE: Release
OPENSEESRT_BUILD: local
on:
push:
branches: [stable]
pull_request:
branches: [stable]
permissions:
contents: write
pull-requests: write
jobs:
build-ubuntu:
name: Ubuntu bundled build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Libraries
run:
sudo apt-get install tcl-dev libopenblas-dev
- name: Build
id: build
run: |
set -o pipefail
mkdir build
cd build
cmake .. -DNoOpenSeesPyRT:BOOL=TRUE
cmake --build . --target OpenSeesRT -j3 2>&1 | tee build.log
# Count lines containing "warning:"
export XARA_SRC_WARN_COUNT=$(grep -c "warning:" build.log || true)
echo "XARA_SRC_WARN_COUNT=$XARA_SRC_WARN_COUNT" >> $GITHUB_ENV
echo "warnings=$XARA_SRC_WARN_COUNT" >> $GITHUB_OUTPUT
echo "::warning::We found $XARA_SRC_WARN_COUNT warnings"
- name: Post warning count
# Only run if it's a PR (not just a push)
# if: ${{ github.event_name == 'pull_request' }}
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
// Read the warning count from the 'build' step output (or from the env var)
const warningCount = parseInt(`${{ steps.build.outputs.warnings }}`, 10);
// Create a comment on the PR
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `We found **${warningCount}** compiler warnings in the latest build.`
});
# - name: Verification
# run: |
# cd build
# make trussExample
# make planeFrame
#ctest
#cd ./EXAMPLES/verification/ && ../../build/OpenSeesTcl runVerificationSuite.tcl
build-mac:
name: Mac Build
runs-on: macos-latest
needs: build-ubuntu
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Libraries
run: brew install tcl-tk libomp gfortran
- name: Build
run: |
mkdir build
cd build
export FC=$(brew --prefix gcc)/bin/gfortran-$(brew list gcc | grep -Eo 'gfortran-[0-9]+' | head -n1 | grep -Eo '[0-9]+')
cmake .. \
-DTCL_INCLUDE_PATH="$(brew --prefix tcl-tk)/include" \
-DTCL_LIBRARY="$(brew --prefix tcl-tk)/lib/libtclstub8.6.a" \
-DNoOpenSeesPyRT:BOOL=TRUE
cmake --build . --target OpenSeesRT -j3
build-win32:
name: Build on Windows
runs-on: [windows-2022]
needs: build-ubuntu
steps:
- name: Checkout Source Code
uses: actions/checkout@v4
# Put MSBuild on PATH (does not add cl.exe)
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
# Enter the MSVC "Developer Command Prompt" so cl.exe & libs are usable
- name: Setup MSVC Command Prompt
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64 # or x86 / arm64
vsversion: 2022
- name: Set up package manager (Miniforge)
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
miniforge-variant: Miniforge3
use-mamba: true
activate-environment: ifx
- name: Setup Intel Fortran Compiler
shell: cmd
run: |
call "%CONDA%\condabin\conda.bat" activate ifx
mamba install -y -c conda-forge ^
cmake ninja tk ^
ifx_win-64 ^
mkl-devel conda-forge/label/mkl_rc::blas
- name: CMake configure
shell: cmd
run: |
call "%CONDA%\condabin\conda.bat" activate ifx
rem Intel intrinsic modules (iso_c_binding, iso_fortran_env)
set IFX_INC=%CONDA_PREFIX%\opt\compiler\include\intel64
set INCLUDE=%IFX_INC%;%INCLUDE%
rem Paths for MKL (from conda-forge)
set MKLROOT=%CONDA_PREFIX%\Library
set CMAKE_PREFIX_PATH=%CONDA_PREFIX%
if exist build rmdir /s /q build
cmake -S . -B build -G Ninja ^
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY ^
-DCMAKE_Fortran_COMPILER="%CONDA_PREFIX%\Library\bin\ifx.exe" ^
-DCMAKE_REQUIRED_INCLUDES="%IFX_INC%" ^
-DBLA_VENDOR=Intel10_64_dyn ^
-DCMAKE_TOOLCHAIN_FILE:FILEPATH="ifx_toolchain.cmake" ^
-DMKLROOT="%MKLROOT%" -DMKL_ROOT="%MKLROOT%"
cmake --build build --target OpenSeesRT -j4