diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9a5e054..4fa276f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,26 +1,26 @@ name: Docker CI -on: [push] + +concurrency: + group: docker-${{ github.ref }} + cancel-in-progress: true + +on: [push, workflow_dispatch] + +env: + BUILDKIT_VERSION: 'v0.29.0' + jobs: - build: + docker-build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 - - uses: docker/setup-buildx-action@v1 - - uses: actions/cache@v4 + - name: Checkout repository + uses: actions/checkout@v6 + - name: Set up buildkit cache + uses: actions/cache@v4 with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - uses: docker/build-push-action@v2 + path: /var/lib/buildkit + key: ${{ runner.os }}-buildkit-${{ env.BUILDKIT_VERSION }} + - name: Test docker build + uses: klemek/dockerfile-test-build@v1 with: - context: ./ - file: ./Dockerfile - builder: ${{ steps.buildx.outputs.name }} - push: false - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache-new - - run: | - rm -rf /tmp/.buildx-cache - mv /tmp/.buildx-cache-new /tmp/.buildx-cache - - run: echo ${{ steps.docker_build.outputs.digest }} + buildkit_version: ${{ env.BUILDKIT_VERSION }} diff --git a/.github/workflows/pythonci.yml b/.github/workflows/pythonci.yml index 4576cd4..6b1b9c9 100644 --- a/.github/workflows/pythonci.yml +++ b/.github/workflows/pythonci.yml @@ -1,38 +1,58 @@ name: Python CI -on: [ push ] + +concurrency: + group: python-${{ github.ref }} + cancel-in-progress: true + +on: [push, workflow_dispatch] + jobs: ruff: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 - - uses: astral-sh/ruff-action@v3 + - name: Checkout repository + uses: actions/checkout@v5 + - name: Run Ruff check + uses: https://github.com/astral-sh/ruff-action@v3 with: args: "check" ruff-format-check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 - - uses: astral-sh/ruff-action@v3 + - name: Checkout repository + uses: actions/checkout@v5 + - name: Run Ruff format check + uses: https://github.com/astral-sh/ruff-action@v3 with: args: "format --check --diff" ty: runs-on: ubuntu-latest steps: - - run: python3 -m pip install uv --break-system-packages - - uses: actions/checkout@v5 - - run: python3 -m uv sync - - run: python3 -m uv run ty check --output-format github + - name: Install UV + run: python3 -m pip install uv --break-system-packages + - name: Checkout repository + uses: actions/checkout@v5 + - name: Sync Python dependencies + run: python3 -m uv sync + - name: Run ty check + run: python3 -m uv run ty check --output-format github coverage: runs-on: ubuntu-latest steps: - - run: python3 -m pip install uv --break-system-packages - - uses: actions/checkout@v5 - - run: python3 -m uv sync - - run: python3 -m uv run coverage run -m unittest -v - - run: python3 -m uv run coverage xml - - uses: irongut/CodeCoverageSummary@v1.3.0 + - name: Install UV + run: python3 -m pip install uv --break-system-packages + - name: Checkout repository + uses: actions/checkout@v5 + - name: Sync Python dependencies + run: python3 -m uv sync + - name: Run tests with coverage + run: python3 -m uv run coverage run -m unittest -v + - name: Generate coverage XML report + run: python3 -m uv run coverage xml + - name: Create coverage summary + uses: https://github.com/irongut/CodeCoverageSummary@v1.3.0 with: filename: coverage.xml