sprockets-statsd/.github/workflows/run-tests.yml
2021-04-07 07:44:04 -04:00

69 lines
2 KiB
YAML

name: Testing
on:
push:
branches: ["*"]
tags-ignore: ["*"]
pull_request:
types: [opened, synchronize, reopened]
jobs:
test:
name: Tests and style checks
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.7, 3.8, 3.9]
steps:
- uses: actions/checkout@v2
- name: Install python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools
python -m pip install '.[dev]'
python -m pip install -e .
- name: Lint
run: |
flake8 sprockets_statsd tests
- name: Check format
run: |
yapf -dr sprockets_statsd tests
- name: Run tests
run: |
coverage run -m unittest
coverage report
coverage xml -o ./coverage.xml
- name: Send coverage to codecov.io
uses: codecov/codecov-action@v1.3.2
with:
token: ${{secrets.CODECOV_TOKEN}}
file: ./coverage.xml
flags: unittests
fail_ci_if_error: true
- name: Save coverage report
if: ${{ matrix.python-version == '3.9' }}
uses: actions/upload-artifact@v2
with:
name: coverage.xml
path: ./coverage.xml
sonarcloud:
name: SonarCloud
runs-on: ubuntu-latest
if: ${{ github.event == 'push' && github.ref == 'refs/heads/main' }}
needs: test
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Download coverage report
uses: actions/download-artifact@v2
with:
name: coverage.xml
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}