Skip to content

feat!: [WIP] Use docker SDK #243

feat!: [WIP] Use docker SDK

feat!: [WIP] Use docker SDK #243

Workflow file for this run

name: Tests And Linting
on:
push:
branches:
- main
pull_request:
concurrency:
group: test-${{ github.head_ref }}
cancel-in-progress: true
env:
PYTHONUNBUFFERED: "1"
FORCE_COLOR: "1"
jobs:
run:
name: Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]
steps:
- uses: actions/checkout@v4
- if: runner.os == 'Linux'
name: Install Microsoft ODBC Drivers & Free additional space
run: |
sudo ACCEPT_EULA=Y apt-get install msodbcsql18 -y || true
sudo docker rmi $(docker image ls -aq) >/dev/null 2>&1 || true
sudo rm -rf \
/usr/share/dotnet /usr/local/lib/android /opt/ghc \
/usr/local/share/powershell /usr/share/swift /usr/local/.ghcup \
/usr/lib/jvm || true
sudo apt-get autoremove -y \
&& sudo apt-get clean -y \
&& sudo rm -rf /root/.cache \
&& sudo rm -rf /var/apt/lists/* \
&& sudo rm -rf /var/cache/apt/* \
&& sudo apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Hatch
run: pip install --upgrade hatch hatch-pip-compile
- if: matrix.python-version == '3.12' && runner.os == 'Linux'
name: Lint
run: hatch run lint:check
- if: matrix.python-version == '3.12' && runner.os == 'Linux'
name: Run tests with coverage tracking
run: hatch run +py=${{ matrix.python-version }} test:cov
- if: matrix.python-version != '3.12' || runner.os != 'Linux'
name: Run tests without tracking coverage
run: hatch run +py=${{ matrix.python-version }} test:no-cov
- if: matrix.python-version == '3.12' && runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: coverage-xml
path: coverage.xml
- if: matrix.python-version == '3.12' && runner.os == 'Linux'
name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: litestar-org/pytest-databases
sonar:
needs:
- run
if: github.event.pull_request.head.repo.fork == false && github.repository_owner == 'litestar-org'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: coverage-xml
- name: Fix coverage file for sonarcloud
run: sed -i "s/home\/runner\/work\/pytest-databases\/pytest-databases/github\/workspace/g" coverage.xml
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
codeql:
needs:
- run
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL Without Dependencies
uses: github/codeql-action/init@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
build-docs:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Hatch
run: pip install --upgrade hatch hatch-containers hatch-pip-compile
- name: Build docs
run: hatch run docs:build
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: echo $PR_NUMBER > .pr_number
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: docs-preview
path: |
docs/_build/html
.pr_number