diff --git a/.github/workflows/build-latest.yaml b/.github/workflows/build-latest.yaml index d0edf16..2a0ccc4 100644 --- a/.github/workflows/build-latest.yaml +++ b/.github/workflows/build-latest.yaml @@ -49,9 +49,9 @@ jobs: # - build args (.example.env) # - base_build directory # - scripts directory - key: buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts') }}-${{ github.sha }} + key: buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts', 'scenario_tests/utils/requirements.txt') }}-${{ github.sha }} restore-keys: | - buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts') }}- + buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts', 'scenario_tests/utils/requirements.txt') }}- - name: Build base image id: docker_build_base @@ -189,3 +189,72 @@ jobs: pushd scenario_tests/${{ matrix.scenario }} ./test.sh popd + + push-internal-pr-images: + if: github.event.pull_request.base.repo.url == github.event.pull_request.head.repo.url + runs-on: ubuntu-latest + needs: [ build-image ] + strategy: + matrix: + postgresMajorVersion: + - 13 + postgisMajorVersion: + - 3 + postgisMinorRelease: + - 1 + include: + - distro: debian + imageVersion: bullseye + imageVariant: slim + steps: + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Docker meta + id: docker_meta + uses: crazy-max/ghaction-docker-meta@v1 + with: + images: ${{ secrets.DOCKERHUB_REPO}}/postgis + tag-latest: false + + - uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Get build cache + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + # Build inputs are: + # - Dockerfile recipe + # - docker-compose.build.yml + # - build args (.example.env) + # - base_build directory + # - scripts directory + key: buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts') }}-${{ github.sha }} + restore-keys: | + buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts') }}- + + - name: Build image for testing + id: docker_build_testing_image + uses: docker/build-push-action@v2 + with: + context: . + file: Dockerfile + push: true + tags: ${{ steps.docker_meta.outputs.tags }}-${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }} + build-args: | + DISTRO=${{ matrix.distro }} + IMAGE_VERSION=${{ matrix.imageVersion }} + IMAGE_VARIANT=${{ matrix.imageVariant }} + LANGS=en_US.UTF-8,id_ID.UTF-8 + GENERATE_ALL_LOCALE=0 + POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }} + POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }} + POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }} + cache-from: type=local,src=/tmp/.buildx-cache + target: postgis-test diff --git a/.github/workflows/deploy-image.yaml b/.github/workflows/deploy-image.yaml index 71bccf6..395ad61 100644 --- a/.github/workflows/deploy-image.yaml +++ b/.github/workflows/deploy-image.yaml @@ -54,9 +54,9 @@ jobs: # - build args (.example.env) # - base_build directory # - scripts directory - key: buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts') }}-${{ github.sha }} + key: buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts', 'scenario_tests/utils/requirements.txt') }}-${{ github.sha }} restore-keys: | - buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts') }}- + buildx-${{ hashFiles('Dockerfile', 'docker-compose.build.yml', '.example.env', 'base_build', 'scripts', 'scenario_tests/utils/requirements.txt') }}- - name: Login to DockerHub uses: docker/login-action@v1 @@ -71,7 +71,9 @@ jobs: context: . file: Dockerfile push: true - tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:base-${{ matrix.distro }}-${{ matrix.imageVersion }}-${{ matrix.imageVariant }} + tags: | + ${{ secrets.DOCKERHUB_REPO }}/postgis:base + ${{ secrets.DOCKERHUB_REPO }}/postgis:base-${{ matrix.distro }}-${{ matrix.imageVersion }}-${{ matrix.imageVariant }} build-args: | DISTRO=${{ matrix.distro }} IMAGE_VERSION=${{ matrix.imageVersion }} @@ -91,7 +93,10 @@ jobs: context: . file: Dockerfile push: true - tags: ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }} + tags: | + ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }} + ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }} + ${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }} build-args: | DISTRO=${{ matrix.distro }} IMAGE_VERSION=${{ matrix.imageVersion }}