manual update #33
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
# Runs all tests and pushes coverage report to codeclimate | |
name: Coverage | |
defaults: | |
run: | |
shell: bash | |
on: # Runs on all push events to master branch and any push related to a pull request | |
push: | |
branches: | |
- master | |
pull_request: # so that codeclimate gets coverage and reports on the diff | |
jobs: | |
coverage: | |
name: ${{ matrix.os }} / ${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: # only lowest supported python on ubuntu-latest | |
os: [ubuntu-latest] | |
python-version: [3.7] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Get full Python version | |
id: full-python-version | |
run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") | |
- name: Install poetry | |
uses: abatilo/actions-poetry@v2.1.0 | |
with: | |
poetry-version: 1.1.4 | |
- name: Configure Poetry | |
run: | | |
echo "PATH=$HOME/.poetry/bin:$PATH" >> $GITHUB_ENV | |
poetry config virtualenvs.in-project true | |
- name: Set up cache | |
uses: actions/cache@v2 | |
id: cache | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Ensure cache is healthy | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: poetry run pip --version >/dev/null 2>&1 || rm -rf .venv | |
- name: Upgrade pip, setuptools and wheel | |
run: poetry run python -m pip install --upgrade pip setuptools wheel | |
- name: Install dependencies | |
run: poetry install -v -E dataframe | |
- name: Set up env for CodeClimate (push) | |
run: | | |
echo "GIT_BRANCH=$GITHUB_REF" >> $GITHUB_ENV | |
echo "GIT_COMMIT_SHA=$GITHUB_SHA" >> $GITHUB_ENV | |
if: github.event_name == 'push' | |
- name: Set up env for CodeClimate (pull_request) | |
env: | |
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} | |
run: | | |
echo "GIT_BRANCH=$GITHUB_HEAD_REF" >> $GITHUB_ENV | |
echo "GIT_COMMIT_SHA=$PR_HEAD_SHA" >> $GITHUB_ENV | |
if: github.event_name == 'pull_request' | |
- name: Prepare CodeClimate binary | |
env: | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
run: | | |
curl -LSs 'https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64' >./cc-test-reporter; | |
chmod +x ./cc-test-reporter | |
./cc-test-reporter before-build | |
- name: Run all tests | |
run: poetry run python -m pytest | |
- name: Push Coverage to CodeClimate | |
if: ${{ success() }} # only if tests were successful | |
env: | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
run: ./cc-test-reporter after-build |