ci / docker / docker (образы собираются — их сервер собирает сам при обновлении) (push) Successful in 1m21s
64 lines
2.6 KiB
YAML
64 lines
2.6 KiB
YAML
# Сборка всех Docker-образов без push: сервер собирает их сам при обновлении, и здесь ловятся поломки
|
|
# Dockerfile и зависимостей. Только при изменении Dockerfile, deploy/ и манифестов зависимостей.
|
|
name: ci / docker
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- '**/Dockerfile'
|
|
- '.dockerignore'
|
|
- 'deploy/**'
|
|
- 'services/api/go.mod'
|
|
- 'services/api/go.sum'
|
|
- 'services/recommender/pyproject.toml'
|
|
- 'services/recommender/uv.lock'
|
|
- 'apps/web/package.json'
|
|
- 'package.json'
|
|
- 'pnpm-lock.yaml'
|
|
- 'pnpm-workspace.yaml'
|
|
- 'turbo.json'
|
|
- 'tsconfig.base.json'
|
|
- '.gitea/workflows/docker.yml'
|
|
pull_request:
|
|
paths:
|
|
- '**/Dockerfile'
|
|
- '.dockerignore'
|
|
- 'deploy/**'
|
|
- 'services/api/go.mod'
|
|
- 'services/api/go.sum'
|
|
- 'services/recommender/pyproject.toml'
|
|
- 'services/recommender/uv.lock'
|
|
- 'apps/web/package.json'
|
|
- 'package.json'
|
|
- 'pnpm-lock.yaml'
|
|
- 'pnpm-workspace.yaml'
|
|
- 'turbo.json'
|
|
- 'tsconfig.base.json'
|
|
- '.gitea/workflows/docker.yml'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
docker:
|
|
name: docker (образы собираются — их сервер собирает сам при обновлении)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Установка агента при обновлении (изолированные тесты)
|
|
run: python3 -m unittest discover -s deploy -p 'test_deployment_scripts.py' -v
|
|
# Обычный docker build через Docker хоста раннера, а не buildx-контейнер: кэш слоёв и
|
|
# --mount=type=cache переживают job, повторная сборка занимает секунды. Фиксированные теги
|
|
# не дают копиться образам; кэш сборки чистит на хосте `docker builder prune`.
|
|
- name: Сборка образов
|
|
env: { DOCKER_BUILDKIT: "1" }
|
|
run: |
|
|
set -euo pipefail
|
|
build() { echo "::group::$1"; docker build --build-arg VERSION=ci -t "pipu-ci/$1" "${@:2}" .; echo "::endgroup::"; }
|
|
build api -f services/api/Dockerfile --target api
|
|
build storage-agent -f services/api/Dockerfile --target storage-agent
|
|
build recommender -f services/recommender/Dockerfile
|
|
build web -f apps/web/Dockerfile
|