Finish porting all tests to GitHub Actions #35
Workflow file for this run
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 and test | ||
# Build on every branch push, tag push, and pull request change: | ||
on: [push] | ||
jobs: | ||
build_wheels: | ||
name: Build and test shark on ${{ matrix.os }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest, macos-latest] | ||
env: | ||
CI_BUILD_DIR: build | ||
TEST_INPUTS_DIR: inputs | ||
TEST_OUTPUTS_DIR: outputs | ||
TEST_SIM_NAME: mini-SURFS | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
submodules: true | ||
- name: Install dependencies | ||
if: ${{ matrix.os == 'ubuntu-latest' }} | ||
run: | | ||
sudo apt install libhdf5-dev hdf5-tools libboost-filesystem-dev libboost-program-options-dev libboost-log-dev cxxtest libgsl-dev | ||
- name: Install dependencies | ||
if: ${{ matrix.os == 'macos-latest' }} | ||
run: | | ||
brew install hdf5 boost cxxtest gsl | ||
- name: Install Python | ||
uses: actions/setup-python@v4 | ||
- name: Configure | ||
# Leaving Werror out for now because there *are* errors | ||
# and I don't know what the proper fix is. | ||
run: cmake -B ${CI_BUILD_DIR} -DSHARK_TEST=ON -DCMAKE_CXX_FLAGS="-Wall" #-Werror | ||
- name: Build | ||
run: cmake --build ${CI_BUILD_DIR} | ||
- name: Run unit tests | ||
run: | | ||
cd ${CI_BUILD_DIR} | ||
ctest --output-on-failure | ||
- name: Prepare test dataset | ||
run: | | ||
mkdir -p ${TEST_INPUTS_DIR} | ||
curl -L -o ${TEST_INPUTS_DIR}/redshifts.txt 'https://docs.google.com/uc?export=download&id=1xvNmJB_KmoBHuQz-QzdPnY0HFs7smkUB' | ||
curl -L -o ${TEST_INPUTS_DIR}/tree_199.0.hdf5 'https://docs.google.com/uc?export=download&id=1JDK8ak13bEhzg9H9xt0uE8Fh_2LD3KpZ' | ||
sed " | ||
s|output_directory.*|output_directory = ${TEST_OUTPUTS_DIR}| | ||
s|redshift_file.*|redshift_file = ${TEST_INPUTS_DIR}/redshifts.txt| | ||
s|tree_files_prefix.*|tree_files_prefix = ${TEST_INPUTS_DIR}/tree_199| | ||
s|sim_name.*|sim_name = ${TEST_SIM_NAME}| | ||
" sample.cfg > ci-test.cfg | ||
cat ci-test.cfg | ||
- name: Run shark with fixed seed | ||
run: .ci/run_shark.sh my_model -o execution.seed=123456 | ||
- name: Check output properties' documentation | ||
run: | | ||
.ci/check_hdf5_docs.sh 199/0/galaxies.hdf5 galaxies.rst | ||
.ci/check_hdf5_docs.sh 156/0/star_formation_histories.hdf5 star_formation_histories.rst | ||
.ci/check_hdf5_docs.sh 199/0/black_hole_histories.hdf5 black_hole_histories.rst | ||
- name: Check fixed seed is reproducible | ||
run: | | ||
.ci/run_shark.sh my_model_same_seed -o execution.seed=123456 | ||
.ci/compare_galaxies.sh my_model my_model_same_seed | ||
- name: Check fixed seed is reproducible when multithreaded | ||
run: | | ||
.ci/run_shark.sh my_model_same_seed_parallel -o execution.seed=123456 | ||
.ci/compare_galaxies.sh my_model my_model_same_seed_parallel | ||
- name: Check randome seed gives different results | ||
run: | | ||
.ci/run_shark.sh my_model_random_seed | ||
.ci/compare_galaxies.sh my_model my_model_random_seed --expect-unequal | ||
- name: Generate all plots | ||
run: | | ||
pip install matplotlib | ||
echo "backend: Agg" >> matplotlibrc | ||
python standard_plots/all.py -c ci-test.cfg |