Merge pull request #233 from ltimmerman3/master #123
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build SPARC using conda-build toolchains and perform quick test (no upload) | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
workflow_dispatch: | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash -l {0} | |
strategy: | |
max-parallel: 5 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: "3.11" | |
activate-environment: sparc-test | |
conda-build-version: "24.9.0" | |
miniforge-version: latest # Fix according to https://github.com/conda-incubator/setup-miniconda?tab=readme-ov-file#example-10-miniforge | |
channels: conda-forge,defaults | |
channel-priority: true | |
- name: Install boa dependencies | |
run: | | |
mamba install -c conda-forge pip setuptools "conda-build=24.9.0" "colorama=0.4.6" "ruamel=1.0" ruamel.yaml "rich=13.9" "mamba=1.5.10" "jsonschema=4.23" | |
pip install git+https://github.com/mamba-org/boa.git@00a11ffce59f47c0fc576f93d39baf1f8fc92f32 | |
- name: Build with mambabuild | |
run: | | |
echo $CONDA_PREFIX | |
conda info | |
CPU_COUNT=2 conda mambabuild .conda/ | |
- name: Install local build | |
run: | | |
mamba install --use-local sparc | |
which sparc | |
ldd $(which sparc) | |
ldd $(which mpirun) | |
- name: Test simple sparc run | |
run: | | |
cd tests/Cu_FCC/standard/ | |
mpirun -n 2 sparc -name Cu_FCC | |
- name: Perform comprehensive tests using `quick_run` | |
run: | | |
cp $(which sparc) lib/ | |
cd tests | |
export LD_LIBRARY_PATH=${CONDA_PREFIX}/lib:${LD_LIBRARY_PATH} | |
python SPARC_testing_script.py quick_run | tee output | |
n_failed=$(grep -o 'Tests failed: [0-9]\+' output | grep -o '[0-9]\+$') | |
# Force fail, see what happens | |
unset LD_LIBRARY_PATH | |
python -c "import os, re; match = re.findall(r'Tests failed: (\d+)', open('output').read()); [print('All pass'), os._exit(0)] if int(match[0]) == 0 else [print('Failed'), os._exit(1)]" | |
rm -rf output | |
- name: Test socket compatibility | |
run: | | |
mpirun -n 1 sparc | tee command-socket.out || true | |
# Output from the sparc test command | |
# should contain the -socket subcommand (use regex) | |
grep "\\-socket" command-socket.out | |