Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CI github actions workflow #1034

Open
wants to merge 42 commits into
base: develop
Choose a base branch
from
Open
Changes from 10 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
bebdd49
Add CI github actions workflow
sethaxen Oct 21, 2020
3b7544f
Correctly reference environmental variable
sethaxen Oct 21, 2020
a846c35
Fix boost package name
sethaxen Oct 21, 2020
46f9023
Use same form of setup
sethaxen Oct 21, 2020
10c5ec0
Remove regex arg to ctest
sethaxen Oct 21, 2020
c5a84f0
Make ctest output on failure
sethaxen Oct 21, 2020
0a3dfe1
Install more dependencies
sethaxen Oct 21, 2020
f102355
Make build directory in imp directory
sethaxen Oct 21, 2020
d2b07cc
Replace ctest with nosetests
sethaxen Oct 21, 2020
b18174a
Don't run codecov action verbosely
sethaxen Oct 21, 2020
37f4121
Fix package name
sethaxen Oct 21, 2020
e8272d6
Execute from build directory
sethaxen Oct 21, 2020
15ba0e7
Add nose as dependency
sethaxen Oct 22, 2020
28d19b9
Change comment indentation
sethaxen Oct 22, 2020
c875f3a
Create test directory
sethaxen Nov 9, 2020
1b1a065
Don't install both Python 2 and 3
sethaxen Nov 9, 2020
53c0161
Remove extraneous python install step
sethaxen Nov 9, 2020
c3d942e
Install codecov
sethaxen Nov 9, 2020
232dfcd
Fix check for Python 2 env
benmwebb Dec 23, 2020
cefd848
Set correct Python 3 version
benmwebb Dec 23, 2020
844eb15
Use correct pip binary
benmwebb Dec 23, 2020
0554bd9
Use correct nosetests
benmwebb Dec 23, 2020
c2d0e0c
Help CMake to find CGAL
benmwebb Dec 23, 2020
000ee17
Run just IMP.kernel tests for now
benmwebb Dec 23, 2020
ca909b7
Add missing "then" to if statement
benmwebb Dec 23, 2020
6569ce8
Merge branch 'develop' into githubactionsci
sethaxen Jan 5, 2021
b101763
Add coverage module
sethaxen Jan 9, 2021
3cd828b
Remove duplicated Python package installation
sethaxen Jan 9, 2021
d4e40a6
Compile only a few modules for faster iteration
sethaxen Jan 10, 2021
0b376a0
Only test kernel for now
sethaxen Jan 10, 2021
c677c62
Use pytest instead of nose
benmwebb Jan 14, 2021
4334497
There are no "medium" tests in IMP.kernel
benmwebb Jan 14, 2021
ef05987
Run each test in a separate process
benmwebb Jan 14, 2021
02c3de0
Many kernel tests use IMP.core/algebra classes
benmwebb Jan 14, 2021
bbe1122
Don't cancel others if one build fails
benmwebb Jan 14, 2021
e4b18c1
Use older py.test binary
benmwebb Jan 14, 2021
a75a4af
Run test via unittest
benmwebb Jan 14, 2021
6018f19
Install .deb packages for pytest, not pip
benmwebb Jan 14, 2021
4039666
Need IMP.container to run some kernel tests
benmwebb Jan 14, 2021
ecc8e65
Fix pytest name
benmwebb Jan 14, 2021
1db30a4
Increase fetch-depth
sethaxen Jan 14, 2021
8ffe8da
Explicitly output xml coverage report
sethaxen Jan 14, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: CI
on:
push:
branches: [develop]
pull_request:

env:
CXXFLAGS: "-fprofile-arcs -ftest-coverage"

jobs:
test:
name: "Python ${{ matrix.python-version }} / ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ["2.7", "3.8"]
os: [ubuntu-latest]
compiler: [gcc]
env:
CC: ${{ matrix.compiler }}
PY2: ${{ startsWith(matrix.python-version, 2) && 'on' || 'off' }}
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -qq libboost-all-dev swig libhdf5-serial-dev libeigen3-dev \
python-numpy python3-biopython python3-numpy cmake libcgal-dev libcgal-qt5-dev \
libfftw3-dev libopencv-dev libgsl0-dev python2-dev python3-dev libann-dev \
libprotobuf-dev protobuf-compiler python-protobuf python3-protobuf \
libopenmpi-dev
- name: Set up python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
- name: Set up git
run: ./setup_git.py
- name: Build IMP
run: |
mkdir build
cd build
cmake .. -DUSE_PYTHON2=${{ env.PY2 }} -DCMAKE_CXX_FLAGS="${{ env.CXXFLAGS }}"
make -k -j 2
- name: Run tests
run: ./setup_environment.sh ../test/nosetests --with-coverage --cover-branches -e 'probabilistic' ../test/test_*.py ../test/medium_test_*.py test/*/*.py > /dev/null
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-e 'probabilistic' says to ignore all tests that match probabilistic, right? Why is this included?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There used to be a utility method in IMP.test called probabilistic_test. nose would run it as a test, but it's not a test and so would always fail; see #996. That workaround shouldn't be needed any more though since I renamed the method to probabilistic_check.

The other workaround is to symlink the nosetests binary into the test directory and run it there, otherwise methods like get_input_file_name don't work. But I think I fixed that as part of #996 too.

- name: Upload coverage to Codecov
sethaxen marked this conversation as resolved.
Show resolved Hide resolved
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: false