Skip to content

Big refactor of interaction energy calculation #278

Big refactor of interaction energy calculation

Big refactor of interaction energy calculation #278

Workflow file for this run

name: Build & Test
on:
push:
branches: ["main"]
tags: "v*"
pull_request:
branches: ["main"]
tags: "v*"
env:
BUILD_TYPE: Release
CPM_SOURCE_CACHE: ${{github.workspace}}/cache/cpm
OCC_DATA_PATH: ${{github.workspace}}/share
jobs:
build:
strategy:
matrix:
include:
- os: macos-latest
architecture: "arm64"
script: macos_generic_build.sh
name: "macos-arm64"
- os: macos-latest
architecture: "x86_64"
script: macos_generic_build.sh
name: "macos-x86_64"
- os: macos-latest
architecture: "x86_64;arm64"
script: macos_generic_build.sh
name: "macos-universal"
- os: ubuntu-latest
architecture: x86_64
script: linux_generic_build.sh
name: "linux-x86_64"
- os: ubuntu-latest
architecture: x86_64
script: linux_static_build.sh
name: "linux-x86_64-static"
- os: windows-latest
architecture: x86_64
script: windows_build.ps1
name: "windows-x86_64"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install Dependencies Linux
if: startsWith(runner.os, 'Linux')
run: |
sudo apt update
sudo apt install -y python3-numpy libpthread-stubs0-dev \
doxygen graphviz ninja-build
- name: Install Dependencies Mac
if: startsWith(runner.os, 'macOS')
run: |
brew install ninja doxygen graphviz
- name: Install Dependencies Windows
if: startsWith(runner.os, 'Windows')
run: |
choco install ninja -y
- name: Cache CPM Dependencies
uses: actions/cache@v4
with:
path: |
${{env.CPM_SOURCE_CACHE}}
${{github.workspace}}/build
key: ${{ matrix.name }}-occ-build-cache
- name: Run build script (non-Windows)
if: runner.os != 'Windows'
run: |
rm -f build/*.xz
./scripts/${{matrix.script}} "${{matrix.architecture}}" "${{matrix.name}}"
- name: Run build script (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Remove-Item -Path build/*.xz -ErrorAction SilentlyContinue
./scripts/${{matrix.script}} "${{matrix.architecture}}" "${{matrix.name}}"
- name: Test
if: matrix.name == 'linux-x86_64'
working-directory: ${{github.workspace}}/build
run: ctest -C ${{env.BUILD_TYPE}} --rerun-failed --output-on-failure
- name: Build Documentation
if: matrix.name == 'linux-x86_64'
run: cmake --build ${{github.workspace}}/build --target docs
- name: Deploy Documentation
if: matrix.name == 'linux-x86_64'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ${{github.workspace}}/build/docs/html
- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: occ-binaries-${{ matrix.name }}
path: ${{github.workspace}}/build/*.xz
overwrite: true
create-release:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: binaries
pattern: occ-binaries-*
merge-multiple: true
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
binaries/*