From cb2640fa784c3c8b712c561e1f7f12616fc4ee9c Mon Sep 17 00:00:00 2001 From: Yasser Tahiri Date: Tue, 2 Jan 2024 15:29:16 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Combine=20Linting=20&=20Te?= =?UTF-8?q?sting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 77 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..b7d4d63 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,77 @@ +name: Continuous Integration + +on: + push: + branches: + - main + pull_request: {} + +jobs: + lint: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.11"] + fail-fast: false + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install Dependencies + run: pip install -e .[lint] + - uses: pre-commit/action@v3.0.0 + with: + extra_args: --all-files --verbose + - name: check Static Analysis + run: bash scripts/lint.sh + + tests: + + name: test py${{ matrix.python-version }} on ${{ matrix.os }} + + runs-on: ${{ matrix.os }}-latest + + + strategy: + + matrix: + + python-version: ["3.10", "3.11", "3.12"] + + os: [ubuntu, macos, windows] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install Dependencies + run: pip install -e .[test] + + - name: Freeze Dependencies + run: pip freeze + + - name: Test with pytest + run: bash scripts/test.sh + + - name: Upload coverage + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + uses: codecov/codecov-action@v3 + + # https://github.com/marketplace/actions/alls-green#why used for branch protection checks + check: + if: always() + needs: [lint, tests] + runs-on: ubuntu-latest + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }}