mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-04-10 20:04:18 +03:00
perf(ci/test-docker): cache test_docker.sh docker builds with gha cache
This commit is contained in:
parent
697e8e40ce
commit
8a9407ed21
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -56,6 +56,8 @@ jobs:
|
|||
uses: astral-sh/setup-uv@v5
|
||||
- name: Install dependencies
|
||||
run: uv sync
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Docker ${{ matrix.script.name }}
|
||||
run: sh tests/test_docker.sh ${{ matrix.script.args }}
|
||||
|
||||
|
|
|
@ -14,8 +14,36 @@ cd .cache/docker
|
|||
uv run cookiecutter ../../ --no-input --overwrite-if-exists use_docker=y "$@"
|
||||
cd my_awesome_project
|
||||
|
||||
# make sure all images build
|
||||
docker compose -f docker-compose.local.yml build
|
||||
# Base command with required services
|
||||
BAKE_COMMAND="docker buildx bake -f docker-compose.local.yml --load django \
|
||||
--allow fs=*
|
||||
--set django.cache-from=type=gha,scope=django-cached-tests \
|
||||
--set django.cache-to=type=gha,scope=django-cached-tests,mode=max \
|
||||
--set postgres.cache-from=type=gha,scope=postgres-cached-tests \
|
||||
--set postgres.cache-to=type=gha,scope=postgres-cached-tests,mode=max"
|
||||
|
||||
# Add node service cache if frontend pipeline is enabled
|
||||
if [ -f "package.json" ]; then
|
||||
BAKE_COMMAND="$BAKE_COMMAND \
|
||||
--set node.cache-from=type=gha,scope=node-cached-tests \
|
||||
--set node.cache-to=type=gha,scope=node-cached-tests,mode=max"
|
||||
fi
|
||||
|
||||
# Add redis and celery services cache if Celery is enabled
|
||||
if grep -q "redis" docker-compose.local.yml; then
|
||||
BAKE_COMMAND="$BAKE_COMMAND \
|
||||
--set redis.cache-from=type=gha,scope=redis-cached-tests \
|
||||
--set redis.cache-to=type=gha,scope=redis-cached-tests,mode=max \
|
||||
--set celeryworker.cache-from=type=gha,scope=celeryworker-cached-tests \
|
||||
--set celeryworker.cache-to=type=gha,scope=celeryworker-cached-tests,mode=max \
|
||||
--set celerybeat.cache-from=type=gha,scope=celerybeat-cached-tests \
|
||||
--set celerybeat.cache-to=type=gha,scope=celerybeat-cached-tests,mode=max \
|
||||
--set flower.cache-from=type=gha,scope=flower-cached-tests \
|
||||
--set flower.cache-to=type=gha,scope=flower-cached-tests,mode=max"
|
||||
fi
|
||||
|
||||
# Execute the final command
|
||||
eval "$BAKE_COMMAND"
|
||||
|
||||
# run the project's type checks
|
||||
docker compose -f docker-compose.local.yml run --rm django mypy my_awesome_project
|
||||
|
|
Loading…
Reference in New Issue
Block a user