diff --git a/.github/workflows/integration-tests.yaml b/.github/workflows/integration-tests.yaml new file mode 100644 index 00000000..7cc9be4f --- /dev/null +++ b/.github/workflows/integration-tests.yaml @@ -0,0 +1,82 @@ +name: Integration Tests + +on: + push: + branches: + - main + +env: + POETRY_VERSION: "1.7.1" + POETRY_URL: https://install.python-poetry.org + +jobs: + lint: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.10"] + + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install Poetry + run: | + pipx install poetry + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: poetry + cache-dependency-path: poetry.lock + - name: Set Poetry environment + run: | + poetry env use ${{ matrix.python-version }} + - name: Install dependencies + run: | + poetry install --no-root --only dev --all-extras + - name: Lint Python (Black) + run: | + poetry run inv formatter + - name: Lint Python (Ruff) + run: | + poetry run inv lint + - name: Lint Python (isort) + run: | + poetry run inv isort + integration-tests: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install Poetry + run: | + pipx install poetry + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: poetry + cache-dependency-path: poetry.lock + - name: Set Poetry environment + run: | + poetry env use ${{ matrix.python-version }} + - name: Install dependencies + run: | + poetry install --all-extras + - name: Run Integration Tests + env: + AI21_API_KEY: ${{ secrets.AI21_API_KEY }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + run: | + poetry run pytest tests/integration_tests/ + - name: Upload pytest integration tests results + uses: actions/upload-artifact@v3 + with: + name: pytest-results-${{ matrix.python-version }} + path: junit/test-results-${{ matrix.python-version }}.xml + # Use always() to always run this step to publish test results when there are test failures + if: ${{ always() }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8db539fc..87fb1fb9 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,4 +1,4 @@ -name: Test +name: Unittest on: [push]