Release Images #77
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: 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 }} | |