118 lines
3.7 KiB
YAML
118 lines
3.7 KiB
YAML
# GitHub action to build LAMMPS on Linux and run selected regression tests
|
|
name: "Quick Regression Test"
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- develop
|
|
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{github.event_name == 'pull_request'}}
|
|
|
|
jobs:
|
|
build:
|
|
name: Build LAMMPS
|
|
# restrict to official LAMMPS repository
|
|
if: ${{ github.repository == 'lammps/lammps' }}
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
strategy:
|
|
max-parallel: 4
|
|
matrix:
|
|
idx: [ 0, 1, 2, 3 ]
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
show-progress: false
|
|
|
|
- name: Install extra packages
|
|
run: |
|
|
sudo apt-get install -y ccache ninja-build libeigen3-dev \
|
|
libgsl-dev libcurl4-openssl-dev python3-dev \
|
|
mpi-default-bin mpi-default-dev
|
|
|
|
- name: Create Build Environment
|
|
run: mkdir build
|
|
|
|
- name: Set up ccache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ${{ env.CCACHE_DIR }}
|
|
key: linux-quick-ccache-${{ github.sha }}
|
|
restore-keys: linux-quick-ccache-
|
|
|
|
- name: Building LAMMPS via CMake
|
|
shell: bash
|
|
run: |
|
|
ccache -z
|
|
python3 -m venv linuxenv
|
|
source linuxenv/bin/activate
|
|
python3 -m pip install --upgrade pip
|
|
python3 -m pip install numpy pyyaml junit_xml
|
|
cmake -S cmake -B build \
|
|
-C cmake/presets/gcc.cmake \
|
|
-C cmake/presets/most.cmake \
|
|
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-D CMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-D BUILD_SHARED_LIBS=off \
|
|
-D DOWNLOAD_POTENTIALS=off \
|
|
-D PKG_MANIFOLD=on \
|
|
-D PKG_ML-PACE=on \
|
|
-D PKG_ML-RANN=on \
|
|
-D PKG_RHEO=on \
|
|
-D PKG_PTM=on \
|
|
-D PKG_PYTHON=on \
|
|
-D PKG_QTB=on \
|
|
-D PKG_SMTBQ=on \
|
|
-G Ninja
|
|
cmake --build build
|
|
ccache -s
|
|
|
|
- name: Run Regression Tests for Modified Styles
|
|
shell: bash
|
|
run: |
|
|
source linuxenv/bin/activate
|
|
python3 tools/regression-tests/run_tests.py \
|
|
--lmp-bin=build/lmp \
|
|
--config-file=tools/regression-tests/config_quick.yaml \
|
|
--examples-top-level=examples \
|
|
--quick-reference=tools/regression-tests/reference.yaml \
|
|
--quick --quick-branch=origin/develop --quick-max=100 --num-workers=4
|
|
|
|
if [ -f input-list-${{ matrix.idx }}.txt ]
|
|
then \
|
|
python3 tools/regression-tests/run_tests.py \
|
|
--lmp-bin=build/lmp \
|
|
--config-file=tools/regression-tests/config_quick.yaml \
|
|
--list-input=input-list-${{ matrix.idx }}.txt \
|
|
--output-file=output-${{ matrix.idx }}.xml \
|
|
--progress-file=progress-${{ matrix.idx }}.yaml \
|
|
--log-file=run-${{ matrix.idx }}.log
|
|
fi
|
|
|
|
tar -cvf quick-regression-test-${{ matrix.idx }}.tar run-${{ matrix.idx }}.log progress-${{ matrix.idx }}.yaml output-${{ matrix.idx }}.xml
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: quick-regression-test-artifact-${{ matrix.idx }}
|
|
path: quick-regression-test-${{ matrix.idx }}.tar
|
|
|
|
merge:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
steps:
|
|
- name: Merge Artifacts
|
|
uses: actions/upload-artifact/merge@v4
|
|
with:
|
|
name: merged-quick-regresssion-artifact
|
|
pattern: quick-regression-test-artifact-*
|
|
|