3.x: github actions cache docker build (#9328)

cache misp docker container
pull/9351/head
Luciano Righetti 2023-10-12 14:40:48 +02:00 committed by GitHub
parent dcb2caf941
commit 2ee7f30129
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 8 deletions

View File

@ -8,6 +8,10 @@ on:
branches:
- 3.x
env:
IMAGE_CACHE_DIR: /tmp/cache/docker-image
IMAGE_CACHE_KEY: cache-image
jobs:
test:
timeout-minutes: 10
@ -19,8 +23,29 @@ jobs:
with:
submodules: recursive
- name: Build test containers
run: docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file="./docker/.env.test" build
- name: Get docker dir checksum
id: docker-dir-checksum
run: |
echo "SHA=$(find ./docker -type f -print0 | LC_ALL=C sort -z | xargs -0 shasum | shasum | head -c 40)" >> $GITHUB_OUTPUT
- name: Cache docker images
id: cache-docker-images
uses: actions/cache@v3
with:
path: ${{ env.IMAGE_CACHE_DIR }}
key: 3.x-docker-images-test-${{ steps.docker-dir-checksum.outputs.SHA }}
- if: ${{ steps.cache-docker-images.outputs.cache-hit != 'true' }}
name: Build test containers and save cache
run: |
docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file="./docker/.env.test" build
mkdir -p ${{ env.IMAGE_CACHE_DIR }}
docker save -o ${{ env.IMAGE_CACHE_DIR }}/misp3-image.tar misp3/php:8.2-fpm
- if: ${{ steps.cache-docker-images.outputs.cache-hit == 'true' }}
name: Docker load cached image
run: |
docker load --input ${{ env.IMAGE_CACHE_DIR }}/misp3-image.tar
- name: Run tests
run: docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file="./docker/.env.test" run misp

View File

@ -14,7 +14,7 @@ COPY --from=composer /usr/bin/composer /usr/bin/composer
# Install additional PHP extensions and system packages
RUN apt-get -y update \
&& apt-get install -y libicu-dev libpq-dev zip libzip-dev default-mysql-client gnupg supervisor \
&& apt-get install -y libicu-dev libpq-dev zip libzip-dev default-mysql-client gnupg supervisor git sendmail sudo \
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl pdo pdo_mysql mysqli zip \
&& apt-get remove -y --purge libicu-dev libzip-dev \
@ -77,11 +77,11 @@ RUN pecl install -f xdebug pcov \
&& docker-php-ext-enable xdebug pcov
# Install additional packages
RUN apt-get update \
&& apt-get install -y \
git sendmail sudo \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# RUN apt-get update \
# && apt-get install -y \
# && <package> \
# && apt-get clean \
# && rm -rf /var/lib/apt/lists/*
# Write Xdebug configuration
RUN echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \