From 09ed4cc0e89323fac1e85343371a046a65d3e62b Mon Sep 17 00:00:00 2001 From: Igor Kirillov Date: Thu, 9 Apr 2026 12:59:09 +0200 Subject: [PATCH 1/3] Catch and log all exceptions during docker processing. --- epicbox/sandboxes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epicbox/sandboxes.py b/epicbox/sandboxes.py index 0cbff60..e5623f1 100644 --- a/epicbox/sandboxes.py +++ b/epicbox/sandboxes.py @@ -313,7 +313,7 @@ def working_directory() -> Iterator[WorkingDirectory]: log.info("Creating new docker volume for working directory") try: volume = docker_client.volumes.create(volume_name) - except (RequestException, DockerException) as e: + except Exception as e: log.exception("Failed to create a docker volume") raise exceptions.DockerError(str(e)) from e log.info("New docker volume is created") From c9262456436347c402f0fac3d27a19207368013b Mon Sep 17 00:00:00 2001 From: Igor Kirillov Date: Thu, 9 Apr 2026 15:38:15 +0200 Subject: [PATCH 2/3] update workflows --- .github/workflows/actions/prepare/action.yml | 25 +++++++------ .github/workflows/auto-author-assign.yml | 10 ++++- .github/workflows/auto-format.yml | 39 ++++++++++---------- .github/workflows/ci.yml | 32 ++++++++-------- 4 files changed, 58 insertions(+), 48 deletions(-) diff --git a/.github/workflows/actions/prepare/action.yml b/.github/workflows/actions/prepare/action.yml index 52b931e..f3c9b86 100644 --- a/.github/workflows/actions/prepare/action.yml +++ b/.github/workflows/actions/prepare/action.yml @@ -1,26 +1,29 @@ name: 'Prepare environment' -description: 'Prepare environment' +description: Install Poetry and Python dependencies runs: using: "composite" steps: - - name: Show ubuntu version - run: lsb_release -a - shell: bash - - run: sudo apt-get update - shell: bash - - name: Setup libraries - run: | - sudo apt-get install -y \ - pipx + - name: Setup PATH + run: echo "/home/runner/.local/bin" >> $GITHUB_PATH shell: bash + - name: Install Poetry run: pipx install poetry==$(head -n 1 .poetry-version) shell: bash + - uses: actions/setup-python@v5 with: python-version-file: '.python-version' cache: 'poetry' + - name: Install dependencies - run: poetry install --only main,dev --no-interaction --no-ansi + run: poetry sync --only main,dev --no-interaction --no-ansi --no-root + shell: bash + + - name: Report versions + run: | + poetry --version + poetry run python --version + poetry run ruff --version shell: bash diff --git a/.github/workflows/auto-author-assign.yml b/.github/workflows/auto-author-assign.yml index e8c7617..72a6601 100644 --- a/.github/workflows/auto-author-assign.yml +++ b/.github/workflows/auto-author-assign.yml @@ -4,11 +4,17 @@ on: pull_request_target: types: [ opened, reopened ] +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }} + cancel-in-progress: false + permissions: pull-requests: write jobs: assign-author: - runs-on: [self-hosted, small] + runs-on: arc-runners-small + timeout-minutes: 30 + if: ${{ !github.event.pull_request.assignee }} steps: - - uses: toshimaru/auto-author-assign@v2.1.1 + - uses: toshimaru/auto-author-assign@v3.0.1 diff --git a/.github/workflows/auto-format.yml b/.github/workflows/auto-format.yml index a93041d..7da740c 100644 --- a/.github/workflows/auto-format.yml +++ b/.github/workflows/auto-format.yml @@ -1,43 +1,42 @@ name: Format code + on: pull_request: push: branches: - - main + - master + paths-ignore: + - .github/** + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref_name }} - cancel-in-progress: false + cancel-in-progress: true + +permissions: + contents: write + actions: write jobs: format: name: Format and lint with ruff - runs-on: [self-hosted, small] + runs-on: arc-runners-small + timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: repository: ${{ github.event.pull_request.head.repo.full_name }} ref: ${{ github.event.pull_request.head.ref }} - - name: Install Poetry - run: pipx install poetry==$(head -n 1 .poetry-version) - - - uses: actions/setup-python@v5 - with: - python-version-file: '.python-version' - cache: 'poetry' - - - name: Install dependencies - run: poetry install --no-interaction --no-ansi --no-root - - - name: Check files using the ruff formatter - run: poetry run ruff format + - uses: ./.github/workflows/actions/prepare - - name: Check files using the ruff linter - run: poetry run ruff check --fix --unsafe-fixes --preview --exit-zero . + - run: poetry run ruff check --fix --unsafe-fixes --preview --exit-zero . + - run: poetry run ruff format . - name: Commit changes uses: EndBug/add-and-commit@v9 with: + fetch: false + default_author: github_actions message: 'Auto format' - add: '*.py' + add: '.' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8a4c46..1a9357a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,9 @@ -name: Deploy +name: CI + on: push: branches: - - 'master' + - master pull_request: concurrency: @@ -11,20 +12,21 @@ concurrency: jobs: tests: - name: Tests - runs-on: [self-hosted, small] - steps: - - uses: actions/checkout@v4 + name: Tests + runs-on: arc-runners-small + timeout-minutes: 30 + steps: + - uses: actions/checkout@v6 - - uses: ./.github/workflows/actions/prepare + - uses: ./.github/workflows/actions/prepare - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - registry: hyperskill.azurecr.io - username: ${{ secrets.REGISTRY_USER }} - password: ${{ secrets.REGISTRY_PASSWORD }} + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: hyperskill.azurecr.io + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_PASSWORD }} - - run: docker pull hyperskill.azurecr.io/epicbox/python:3.11.5-c0347e7d1 + - run: docker pull hyperskill.azurecr.io/epicbox/python:3.11.5-c0347e7d1 - - run: poetry run pytest . + - run: poetry run pytest . From e49db0fceccbf8c0adbfeb48f33d0a8b00cd7865 Mon Sep 17 00:00:00 2001 From: Igor Kirillov Date: Thu, 9 Apr 2026 15:40:46 +0200 Subject: [PATCH 3/3] update workflows --- .github/workflows/actions/prepare/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/actions/prepare/action.yml b/.github/workflows/actions/prepare/action.yml index f3c9b86..70b5d33 100644 --- a/.github/workflows/actions/prepare/action.yml +++ b/.github/workflows/actions/prepare/action.yml @@ -18,7 +18,7 @@ runs: cache: 'poetry' - name: Install dependencies - run: poetry sync --only main,dev --no-interaction --no-ansi --no-root + run: poetry install --only main,dev --no-interaction --no-ansi --no-root shell: bash - name: Report versions