From bc16b78c831b5f124f7e069b6d2f62e0fafa536f Mon Sep 17 00:00:00 2001 From: Bart Geesink Date: Thu, 16 Nov 2023 20:39:30 +0100 Subject: [PATCH] GHA: Add action to build and publish a test container --- .../build-push-test-docker-image.yml | 45 +++++++++++++++++++ docker/Dockerfile.test | 20 +++++++++ 2 files changed, 65 insertions(+) create mode 100644 .github/workflows/build-push-test-docker-image.yml create mode 100644 docker/Dockerfile.test diff --git a/.github/workflows/build-push-test-docker-image.yml b/.github/workflows/build-push-test-docker-image.yml new file mode 100644 index 000000000..3d6122a54 --- /dev/null +++ b/.github/workflows/build-push-test-docker-image.yml @@ -0,0 +1,45 @@ +name: build-push-test-docker-image + +on: + push: + branches: + - feature/build-and-publish-test-container + workflow_dispatch: + +jobs: + build-push-test-docker-image: + runs-on: ubuntu-latest + permissions: + packages: write + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Build the app + uses: openconext/build-and-publish-test-container/php72-node14@main + with: + dir_to_include: 'tests/' + use_yarn: false + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push the TEST image + uses: docker/build-push-action@v4 + with: + context: . + file: docker/Dockerfile.test + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/openconext/stepup-middleware/stepup-middleware:test diff --git a/docker/Dockerfile.test b/docker/Dockerfile.test new file mode 100644 index 000000000..79814328e --- /dev/null +++ b/docker/Dockerfile.test @@ -0,0 +1,20 @@ +FROM ghcr.io/openconext/openconext-basecontainers/php72-apache2:latest +WORKDIR /var/www/html +ADD output.tar /var/www/html/ + +# Add the application configuration files +COPY config/legacy/parameters.yaml.dist config/legacy/parameters.yaml +COPY config/packages/prod/monolog.yaml.docker config/packages/prod/monolog.yaml + +# Add the config files for Apache2 +RUN rm -rf /etc/apache2/sites-enabled/* +COPY ./docker/conf/middleware-apache2.conf /etc/apache2/sites-enabled/middleware.conf + +# Recreate the cache directory and set the correct permissions +RUN rm -rf /var/www/html/var/cache/prod && \ + mkdir -p /var/www/html/var/cache/prod && \ + chown -R www-data /var/www/html/var + +EXPOSE 80 + +CMD ["apache2-foreground"]