Schedule tree (1/3) #2832
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: Heterogeneous Tests | |
on: | |
push: | |
branches: [ master, ci-fix ] | |
pull_request: | |
branches: [ master, ci-fix ] | |
jobs: | |
test-heterogeneous: | |
if: "!contains(github.event.pull_request.labels.*.name, 'no-ci')" | |
runs-on: [self-hosted, linux] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: Install dependencies | |
run: | | |
rm -f ~/.dace.conf | |
rm -rf .dacecache tests/.dacecache | |
. /opt/setupenv | |
python -m pip install --upgrade pip | |
pip install flake8 pytest-xdist coverage | |
pip install mpi4py pytest-mpi | |
pip uninstall -y dace | |
pip install -e ".[testing]" | |
curl -Os https://uploader.codecov.io/latest/linux/codecov | |
chmod +x codecov | |
- name: Test dependencies | |
run: | | |
papi_avail | |
- name: Run parallel pytest | |
run: | | |
export DACE_cache=unique | |
. /opt/setupenv | |
pytest --cov-report=xml --cov=dace --tb=short -m "verilator or mkl or papi or datainstrument" | |
- name: Run MPI tests | |
run: | | |
export NOSTATUSBAR=1 | |
export DACE_cache=single | |
export COVERAGE_RCFILE=`pwd`/.coveragerc | |
export PYTHON_BINARY="coverage run --source=dace --parallel-mode" | |
. /opt/setupenv | |
./tests/mpi_test.sh | |
- name: Test MPI with pytest | |
run: | | |
export NOSTATUSBAR=1 | |
export DACE_testing_serialization=1 | |
export DACE_testing_deserialize_exception=1 | |
export DACE_cache=unique | |
mpirun -n 2 coverage run --source=dace --parallel-mode -m pytest -x --with-mpi --tb=short -m "mpi" | |
- name: Test ScaLAPACK PBLAS with pytest | |
run: | | |
export NOSTATUSBAR=1 | |
export DACE_testing_serialization=1 | |
export DACE_testing_deserialize_exception=1 | |
export DACE_cache=unique | |
export DACE_library_pblas_default_implementation=ReferenceOpenMPI | |
for i in {1..4} | |
do | |
mpirun -n "$i" --oversubscribe coverage run --source=dace --parallel-mode -m pytest -x --with-mpi --tb=short -m "scalapack" | |
done | |
- name: Report overall coverage | |
run: | | |
export COVERAGE_RCFILE=`pwd`/.coveragerc | |
. /opt/setupenv | |
coverage combine . */; coverage report; coverage xml | |
reachable=0 | |
ping -W 2 -c 1 codecov.io || reachable=$? | |
if [ $reachable -eq 0 ]; then | |
./codecov | |
else | |
echo "Codecov.io is unreachable" | |
fi |