Skip to content

fix: добавлено удаление аватарки группы при удаление самой группы #84

fix: добавлено удаление аватарки группы при удаление самой группы

fix: добавлено удаление аватарки группы при удаление самой группы #84

Workflow file for this run

name: CI
on:
push:
branches:
- master
- 'dev/*'
- 'fix/*'
pull_request:
branches:
- master
- 'dev/*'
- 'fix/*'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Install project with uv
run: |
uv pip install -r requirements-dev.txt --system
- name: Ruff - check style
run: ruff check .
test:
needs: lint
runs-on: ubuntu-latest
timeout-minutes: 4
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Ensure docker & compose available
run: |
docker --version
if ! docker compose version >/dev/null 2>&1; then
sudo apt-get update
sudo apt-get install -y docker-compose-plugin
fi
docker compose version
- name: Start services (detached) and run tests
env:
COMPOSE_HTTP_TIMEOUT: '200'
PROJECT_NAME: "taskflow_test"
COMPOSE_FILE: "docker-compose.test.yml"
ENV_FILE: ".env.test"
TEST_CONTAINER: "taskflow_web_test"
STARTUP_TIMEOUT: "120"
run: |
set -euo pipefail
docker compose -p "$PROJECT_NAME" -f "$COMPOSE_FILE" --env-file "$ENV_FILE" up --build -d
echo "Waiting for test container ($TEST_CONTAINER) to appear..."
SECONDS_WAITED=0
START_TIMEOUT=${STARTUP_TIMEOUT}
while true; do
STATUS=$(docker inspect -f '{{.State.Status}}' "$TEST_CONTAINER" 2>/dev/null || echo "missing")
if [ "$STATUS" = "running" ] || [ "$STATUS" = "exited" ]; then
echo "Container status: $STATUS"
break
fi
if [ "$SECONDS_WAITED" -ge "$START_TIMEOUT" ]; then
echo "ERROR: test container did not appear within ${START_TIMEOUT}s."
echo "docker compose ps:"
docker compose -p "$PROJECT_NAME" -f "$COMPOSE_FILE" --env-file "$ENV_FILE" ps -a
echo "docker compose logs (last 200 lines):"
docker compose -p "$PROJECT_NAME" -f "$COMPOSE_FILE" --env-file "$ENV_FILE" logs --no-color --tail 200 || true
docker compose -p "$PROJECT_NAME" -f "$COMPOSE_FILE" --env-file "$ENV_FILE" down --volumes --remove-orphans || true
exit 1
fi
sleep 2
SECONDS_WAITED=$((SECONDS_WAITED+2))
done
echo "Waiting for $TEST_CONTAINER to finish (docker wait)..."
EXIT_CODE=$(docker wait "$TEST_CONTAINER" 2>/dev/null || echo "127")
echo "Test container exit code: $EXIT_CODE"
echo "==== docker compose logs for web-test ===="
docker compose -p "$PROJECT_NAME" -f "$COMPOSE_FILE" --env-file "$ENV_FILE" logs --no-color --timestamps web-test || true
echo "==== docker logs (container) ===="
docker logs --timestamps "$TEST_CONTAINER" || true
docker compose -p "$PROJECT_NAME" -f "$COMPOSE_FILE" --env-file "$ENV_FILE" down --volumes --remove-orphans || true
# Выходим с тем же кодом, что и тестовый контейнер
exit $EXIT_CODE