Skip to content

Release Images

Release Images #84

Workflow file for this run

#
name: Release Images
# Configures this workflow to run every time a change is pushed to the branch called `release`.
on:
workflow_dispatch:
branches: ['main']
schedule:
- cron: '33 3 * * *'
# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds.
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push:
strategy:
matrix:
version: [14,15,16]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Prepare docker
id: prep
run: |
PG_GRAPHQL_VERSION=$(curl --silent https://api.github.com/repos/supabase/pg_graphql/releases/latest | jq .tag_name --raw-output)
PG_GRAPHQL_SEMVER=$(echo $PG_GRAPHQL_VERSION | sed 's/v//')
GHCR_IMAGE=ghcr.io/${{ github.repository }}
echo $GHCR_IMAGE
echo $PG_GRAPHQL_VERSION
echo GHCR_IMAGE=$GHCR_IMAGE >> $GITHUB_OUTPUT
echo PG_GRAPHQL_VERSION=$PG_GRAPHQL_VERSION >> $GITHUB_OUTPUT
echo PG_GRAPHQL_SEMVER=$PG_GRAPHQL_SEMVER >> $GITHUB_OUTPUT
- run: echo "${{ steps.prep.outputs.PG_GRAPHQL_VERSION }}"
shell: bash
name: Log PG_GraphQL Versionnumber
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
build-args: |
PG_GRAPHQL_VERSION=${{ steps.prep.outputs.PG_GRAPHQL_VERSION }}
context: ./postgres/bookworm/pg${{ matrix.version}}
push: true
tags: ${{ steps.prep.outputs.GHCR_IMAGE }}-bookworm-pg${{ matrix.version}}:${{ steps.prep.outputs.PG_GRAPHQL_SEMVER }}, ${{ steps.prep.outputs.GHCR_IMAGE }}-bookworm-pg${{ matrix.version}}:latest
- name: Remove untagged container images
uses: actions/[email protected]
with:
package-name: 'postgres-graphql-docker-bookworm-pg${{ matrix.version}}'
package-type: 'container'
delete-only-untagged-versions: 'true'
min-versions-to-keep: 0
token: ${{ secrets.GITHUB_TOKEN }}