CI #3615
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: CI | |
on: | |
push: | |
schedule: | |
- cron: '0 1 * * *' # Test every day at 1AM | |
jobs: | |
# Based on https://github.com/py-actions/flake8#quick-start | |
flake8-lint: | |
runs-on: ubuntu-latest | |
name: Lint | |
steps: | |
- name: Check out source repository | |
uses: actions/checkout@v3 | |
- name: Set up Python environment | |
uses: actions/setup-python@v4 | |
- name: flake8 Lint | |
uses: py-actions/flake8@v2 | |
with: | |
ignore: "E116,E201,E202,E203,E211,E221,E222,E226,E225,E227,E228,E231,E241,E251,E261,E262,E265,E266,E271,E272,E301,E302,E303,E305,E402,F403,F405,E501,W504,E701,E702,E711,E713,E714,E722,E731,E741,F841,W391,W605" | |
# E116 unexpected indentation (comment) | |
# E201 whitespace after '(' | |
# E202 whitespace before ')' | |
# E203 whitespace before ':' | |
# E211 whitespace before '[' | |
# E221 multiple spaces before operator | |
# E222 multiple spaces after operator | |
# E225 missing whitespace around operator | |
# E226 missing whitespace around arithmetic operator | |
# E227 missing whitespace around bitwise or shift operator | |
# E228 missing whitespace around modulo operator | |
# E231 missing whitespace after ',' | |
# E241 multiple spaces after ',' | |
# E251 unexpected spaces around keyword / parameter equals | |
# E261 at least two spaces before inline comment | |
# E262 inline comment should start with '# ' | |
# E265 block comment should start with '# ' | |
# E266 too many leading '#' for block comment | |
# E271 multiple spaces after keyword | |
# E272 multiple spaces before keyword | |
# E301 expected 1 blank line, found 0 | |
# E302 expected 2 blank lines, found 1 | |
# E303 too many blank lines (3) | |
# E305 expected 2 blank lines after class or function definition, found 1 | |
# E402 module level import not at top of file | |
# F403 unable to detect undefined names | |
# F405 may be undefined, or defined from star imports | |
# E501 line too long | |
# W504 line break after binary operator | |
# E701 multiple statements on one line (colon) | |
# E702 multiple statements on one line | |
# E711 comparison to None should be 'if cond is not None:' | |
# E713 test for membership should be 'not in' | |
# E714 test for object identity should be 'is not' | |
# E722 do not use bare 'except' | |
# E731 do not assign a lambda expression, use a def | |
# E741 ambiguous variable name | |
# F841 local variable is assigned to but never used | |
# W391 blank line at end of file | |
# W605 invalid escape sequence '\s' | |
Full_Analysis: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Add conda to system path | |
run: | | |
echo $CONDA/bin >> $GITHUB_PATH | |
- name: Set Swap Space | |
uses: pierotofy/set-swap-space@49819abfb41bd9b44fb781159c033dba90353a7c | |
with: | |
swap-size-gb: 10 | |
- name: Create conda env and install dependencies | |
run: | | |
conda config --set channel_priority strict | |
conda config --add channels conda-forge | |
conda env create -f environment.yml -n coffea-env | |
conda list -n coffea-env | |
- name: Install local pip packages | |
run: | | |
mkdir dir_for_topcoffea | |
cd dir_for_topcoffea | |
git clone https://github.com/TopEFT/topcoffea.git | |
cd topcoffea | |
conda run -n coffea-env pip install -e . | |
cd ../.. | |
conda run -n coffea-env pip install -e . | |
- name: Conda list | |
run: | | |
conda list -n coffea-env | |
- name: Install pip packages | |
run: | | |
conda run -n coffea-env pip install xgboost | |
conda run -n coffea-env pip install mt2 | |
conda list -n coffea-env | |
- name: Download root files | |
run: | | |
wget --no-verbose http://www.crc.nd.edu/~kmohrman/files/root_files/for_ci/ttHJet_UL17_R1B14_NAOD-00000_10194_NDSkim.root | |
- name: Pytest setup | |
run: | | |
conda install -y -n coffea-env -c conda-forge pytest pytest-cov root_base | |
mkdir histos | |
- name: Test make 1d quad plots | |
run: | | |
conda run -n coffea-env pytest --cov=./ --cov-report=xml -rP --cov-append tests/test_make_1d_quad_plots.py | |
- name: Run topeft processors over test files with futures executor | |
run: | | |
conda run -n coffea-env pytest --cov=./ --cov-report=xml -rP --cov-append tests/test_futures.py | |
- name: Get topeft yields | |
run: | | |
conda run -n coffea-env pytest --cov=./ --cov-report=xml -rP --cov-append -k test_make_yields_after_processor | |
- name: Compare topeft yields | |
run: | | |
conda run -n coffea-env pytest --cov=./ --cov-report=xml -rP --cov-append -k test_compare_yields_after_processor | |
- name: Run topeft processors over test files with workqueue executor | |
run: | | |
conda run -n coffea-env pytest --cov=./ --cov-report=xml -rP --cov-append tests/test_workqueue.py | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v2 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
directory: ./coverage/reports/ | |
env_vars: OS,PYTHON | |
fail_ci_if_error: true | |
files: ./coverage.xml | |
flags: unittests | |
name: codecov-umbrella | |
verbose: true |