Ditch python2 #964
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" | |
"on": [push, pull_request] | |
jobs: | |
pre_build: | |
runs-on: ubuntu-latest | |
outputs: | |
should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
steps: | |
- id: skip_check | |
uses: fkirc/skip-duplicate-actions@v5 | |
with: | |
concurrent_skipping: 'same_content' | |
skip_after_successful_duplicate: 'true' | |
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]' | |
build: | |
needs: pre_build | |
if: ${{ needs.pre_build.outputs.should_skip != 'true' }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [self-hosted, ubuntu-latest, macos-latest] | |
python-version: ['3.8', '3.10'] | |
include: | |
- os: ubuntu-20.04 | |
python-version: '3.6' | |
- os: macos-latest | |
python-version: '3.6' | |
fail-fast: false | |
steps: | |
- name: "Software Install - Ubuntu" | |
if: ${{ matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-20.04' || matrix.os == 'self-hosted' }} | |
run: | | |
sudo apt-get update && \ | |
sudo apt-get install -y \ | |
build-essential \ | |
ca-certificates \ | |
curl \ | |
exuberant-ctags \ | |
gfortran \ | |
git \ | |
libopenblas-dev \ | |
pkg-config \ | |
software-properties-common | |
- name: "Software Install - MacOS" | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: | | |
brew install \ | |
curl \ | |
ctags-exuberant \ | |
gawk \ | |
gnu-sed \ | |
pkg-config | |
- uses: actions/setup-python@v4.3.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: "Software Install - Python" | |
run: python -m pip install \ | |
setuptools \ | |
numpy \ | |
matplotlib \ | |
contextlib2 \ | |
simplejson \ | |
pint \ | |
graphviz \ | |
ctypesgen==1.0.2 \ | |
pylint \ | |
coverage | |
- name: "Software Install - Python, part 2" | |
if: ${{ matrix.os == 'self-hosted' }} | |
# Setting CPLUS_INCLUDE_PATH helps pycuda find the right | |
# Python header files <pyconfig.h> to use with its embedded | |
# subset of Boost. | |
env: | |
CPLUS_INCLUDE_PATH: "${{ env.pythonLocation }}/include/python\ | |
${{ matrix.python-version }}" | |
run: python -m pip install \ | |
cupy-cuda12x \ | |
pycuda \ | |
numba \ | |
jupyterlab \ | |
jupyter_client \ | |
nbformat \ | |
nbconvert | |
- uses: actions/checkout@v3 | |
- name: "Build and Install" | |
run: | | |
./configure | |
make -j all | |
sudo make install | |
- name: Test | |
env: | |
LD_LIBRARY_PATH: /usr/local/lib:${{ env.LD_LIBRARY_PATH }} | |
run: | | |
python -m pip install scipy | |
cd test | |
bash ./download_test_data.sh | |
python -c "from bifrost import telemetry; telemetry.disable()" | |
coverage run --source=bifrost.ring,bifrost,bifrost.pipeline \ | |
-m unittest discover | |
coverage xml | |
- name: "Test, part 2" | |
if: ${{ matrix.os == 'self-hosted' }} | |
env: | |
LD_LIBRARY_PATH: /usr/local/lib:${{ env.LD_LIBRARY_PATH }} | |
run: | | |
cd testbench | |
python generate_test_data.py | |
coverage run --source=bifrost.ring,bifrost,bifrost.pipeline test_file_read_write.py | |
coverage run --source=bifrost.ring,bifrost,bifrost.pipeline test_fft.py | |
coverage run --source=bifrost.ring,bifrost,bifrost.pipeline your_first_block.py | |
python download_breakthrough_listen_data.py -y | |
coverage run --source=bifrost.ring,bifrost,bifrost.pipeline test_guppi.py | |
coverage run --source=bifrost.ring,bifrost,bifrost.pipeline test_guppi_reader.py | |
coverage run --source=bifrost.ring,bifrost,bifrost.pipeline test_fdmt.py ./testdata/pulsars/blc0_guppi_57407_61054_PSR_J1840%2B5640_0004.fil | |
coverage xml | |
- name: "Upload Coverage" | |
env: | |
UNITTEST_OS: ${{ matrix.os }} | |
UNITTEST_PY: ${{ matrix.python-version }} | |
if: ${{ matrix.os == 'self-hosted' && matrix.python-version == '3.8' }} | |
uses: codecov/codecov-action@v2 | |
with: | |
files: ./test/coverage.xml, ./testbench/coverage.xml | |
env_vars: UNITTEST_OS,UNITTEST_PY | |
fail_ci_if_error: false | |
verbose: true |