deploy-image #99
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: deploy-image | |
on: | |
workflow_dispatch: | |
workflow_run: | |
workflows: | |
- build-latest | |
branches: | |
- develop | |
types: | |
- completed | |
jobs: | |
deploy-image: | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
if: github.actor != 'dependabot[bot]' | |
env: | |
latest-ref: refs/heads/develop | |
strategy: | |
matrix: | |
postgresMajorVersion: | |
- 16 | |
postgisMajorVersion: | |
- 3 | |
postgisMinorRelease: | |
- 4 | |
imageVersion: | |
- imageDistro: debian | |
imageDistroVersion: bookworm | |
imageDistroVariant: slim | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Get Current Date | |
id: current_date | |
shell: python | |
run: echo "formatted=$(date -u +%Y.%m.%d)" >> $GITHUB_OUTPUT | |
- name: Build base image | |
id: docker_build_base | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
file: Dockerfile | |
push: true | |
tags: | | |
${{ secrets.DOCKERHUB_REPO }}/postgis:base | |
${{ secrets.DOCKERHUB_REPO }}/postgis:base-${{ matrix.imageVersion.imageDistro }}-${{ matrix.imageVersion.imageDistroVersion }}-${{ matrix.imageVersion.imageDistroVariant }} | |
build-args: | | |
DISTRO=${{ matrix.imageVersion.imageDistro }} | |
IMAGE_VERSION=${{ matrix.imageVersion.imageDistroVersion }} | |
IMAGE_VARIANT=${{ matrix.imageVersion.imageDistroVariant }} | |
GENERATE_ALL_LOCALE=1 | |
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }} | |
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }} | |
POSTGIS_MINOR_VERSION=${{ matrix.postgisMinorRelease }} | |
cache-from: | | |
type=gha,scope=test | |
type=gha,scope=prod | |
type=gha,scope=base | |
cache-to: type=gha,scope=base | |
target: postgis-base | |
- name: Build prod image | |
id: docker_build_prod | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
file: Dockerfile | |
push: true | |
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 }} | |
${{ secrets.DOCKERHUB_REPO }}/postgis:${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }}--v${{ steps.current_date.outputs.formatted }} | |
build-args: | | |
DISTRO=${{ matrix.imageVersion.imageDistro }} | |
IMAGE_VERSION=${{ matrix.imageVersion.imageDistroVersion }} | |
IMAGE_VARIANT=${{ matrix.imageVersion.imageDistroVariant }} | |
GENERATE_ALL_LOCALE=1 | |
POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }} | |
POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }} | |
POSTGIS_MINOR_VERSION=${{ matrix.postgisMinorRelease }} | |
cache-from: | | |
type=gha,scope=test | |
type=gha,scope=prod | |
type=gha,scope=base | |
cache-to: type=gha,scope=prod | |
target: postgis-prod |