diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 3183a4f..62021c1 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -1,17 +1,10 @@ -name: build +name: build/test env: PYTHON_MAIN_VERSION: 3.9 on: - pull_request: - branches: - - '*' - push: - branches: - - '*' - tags: - - '*' + workflow_call: jobs: build-linux: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..39e8c90 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,12 @@ +name: CI + +on: + + pull_request: + branches: ["master", "dev/*", issue-59] + + push: + branches: ["master", "dev/*", issue-59] + + unit: + uses: ./.github/workflows/unit.yml diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml new file mode 100644 index 0000000..d7b69d0 --- /dev/null +++ b/.github/workflows/unit.yml @@ -0,0 +1,54 @@ +name: Unit + +env: + PYTHON_MAIN_VERSION: 3.9 + +on: + workflow_call: + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest] + python-version: ["3.9", "3.10", "3.11"] + + steps: + - uses: actions/checkout@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + bash scripts/install.sh + bash scripts/install.sh test + + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + + - name: Run tests + run: | + pytest -v --cov --cov-report xml tests + + - name: Upload coverage to Codecov + if: ${{ matrix.python-version == env.PYTHON_MAIN_VERSION }} + uses: codecov/codecov-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./coverage.xml + # directory: ./coverage/reports/ + flags: unittests + env_vars: OS,PYTHON + name: codecov-umbrella + fail_ci_if_error: true + # path_to_write_report: ./coverage/codecov_report.txt + verbose: true