mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-07-16 11:02:22 +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
|
uses: astral-sh/setup-uv@v5
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: uv sync
|
run: uv sync
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
- name: Docker ${{ matrix.script.name }}
|
- name: Docker ${{ matrix.script.name }}
|
||||||
run: sh tests/test_docker.sh ${{ matrix.script.args }}
|
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 "$@"
|
uv run cookiecutter ../../ --no-input --overwrite-if-exists use_docker=y "$@"
|
||||||
cd my_awesome_project
|
cd my_awesome_project
|
||||||
|
|
||||||
# make sure all images build
|
# Base command with required services
|
||||||
docker compose -f docker-compose.local.yml build
|
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
|
# run the project's type checks
|
||||||
docker compose -f docker-compose.local.yml run --rm django mypy my_awesome_project
|
docker compose -f docker-compose.local.yml run --rm django mypy my_awesome_project
|
||||||
|
|
Loading…
Reference in New Issue
Block a user