From 15ebf19728a14c9c890dd9dff1269644eb3e6b9b Mon Sep 17 00:00:00 2001 From: Federico Bond Date: Thu, 19 Oct 2023 15:03:41 -0300 Subject: [PATCH] chore: test optimized GitHub workflow Signed-off-by: Federico Bond --- .github/workflows/merge.yml | 59 ++++++++++++++++--------------- .github/workflows/pullrequest.yml | 58 +++++++++++++++--------------- 2 files changed, 61 insertions(+), 56 deletions(-) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index c42b088a..8dc3416c 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -14,28 +14,47 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - container: ["python:3.8", "python:3.9", "python:3.10", "python:3.11"] - container: - image: ${{ matrix.container }} + python-version: ["3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v4 with: submodules: recursive - - name: Cache virtualenvironment - uses: actions/cache@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 with: - path: ~/.venv - key: ${{ hashFiles('requirements.txt', 'requirements-dev.txt') }} + python-version: ${{ matrix.python-version }} + cache: "pip" - - name: Upgrade pip - run: pip install --upgrade pip + - name: Install dependencies + run: pip install -r requirements.txt + + - name: Test with pytest + run: coverage run --omit="*/test*" -m pytest - - name: Create and activate Virtualenv + - name: Run E2E tests with behave run: | - [ ! -d ".venv" ] && python -m venv .venv - . .venv/bin/activate + cp test-harness/features/evaluation.feature tests/features/ + behave tests/features/ + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@c9e0f0b3cf5f112462339d69850c01735114b9ed + with: + flags: unittests # optional + name: coverage # optional + fail_ci_if_error: true # optional (default = false) + verbose: true # optional (default = false) + + lint: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: "3.11" + cache: "pip" - name: Initialize CodeQL uses: github/codeql-action/init@v2 @@ -54,21 +73,5 @@ jobs: - name: Run isort formatter check run: isort . - - name: Test with pytest - run: coverage run --omit="*/test*" -m pytest - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@c9e0f0b3cf5f112462339d69850c01735114b9ed - with: - flags: unittests # optional - name: coverage # optional - fail_ci_if_error: true # optional (default = false) - verbose: true # optional (default = false) - - - name: Run E2E tests with behave - run: | - cp test-harness/features/evaluation.feature tests/features/ - behave tests/features/ - - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 751b23e6..485743d6 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -17,28 +17,46 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - container: ["python:3.8", "python:3.9", "python:3.10", "python:3.11"] - container: - image: ${{ matrix.container }} + python-version: ["3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v4 with: submodules: recursive - - name: Cache virtualenvironment - uses: actions/cache@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 with: - path: ~/.venv - key: ${{ hashFiles('requirements.txt', 'requirements-dev.txt') }} + python-version: ${{ matrix.python-version }} + cache: "pip" - - name: Upgrade pip - run: pip install --upgrade pip + - name: Install dependencies + run: pip install -r requirements.txt + + - name: Test with pytest + run: coverage run --omit="*/test*" -m pytest - - name: Create and activate Virtualenv + - name: Run E2E tests with behave run: | - [ ! -d ".venv" ] && python -m venv .venv - . .venv/bin/activate + cp test-harness/features/evaluation.feature tests/features/ + behave tests/features/ + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@c9e0f0b3cf5f112462339d69850c01735114b9ed + with: + flags: unittests # optional + name: coverage # optional + fail_ci_if_error: true # optional (default = false) + verbose: true # optional (default = false) + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: "3.11" + cache: "pip" - name: Initialize CodeQL uses: github/codeql-action/init@v2 @@ -57,21 +75,5 @@ jobs: - name: Run isort formatter check run: isort . - - name: Test with pytest - run: coverage run --omit="*/test*" -m pytest - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@c9e0f0b3cf5f112462339d69850c01735114b9ed - with: - flags: unittests # optional - name: coverage # optional - fail_ci_if_error: true # optional (default = false) - verbose: true # optional (default = false) - - - name: Run E2E tests with behave - run: | - cp test-harness/features/evaluation.feature tests/features/ - behave tests/features/ - - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2