forked from repo-mirrors/cnpg-postgres-containers
71 lines
1.9 KiB
YAML
71 lines
1.9 KiB
YAML
name: Bake Images
|
|
|
|
on:
|
|
schedule:
|
|
# Build images once a week, on Mondays
|
|
- cron: 0 8 * * 1
|
|
workflow_dispatch:
|
|
inputs:
|
|
environment:
|
|
type: choice
|
|
options:
|
|
- testing
|
|
- production
|
|
default: testing
|
|
description: "Choose the environment to bake the target for"
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
get_versions:
|
|
name: Get PostgreSQL versions
|
|
runs-on: ubuntu-24.04
|
|
permissions:
|
|
contents: read
|
|
outputs:
|
|
versions: ${{ steps.get_versions.outputs.versions }}
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
|
|
|
|
- name: Get supported PostgreSQL versions
|
|
id: get_versions
|
|
run: |
|
|
VERSIONS="$(sed -n '/postgreSQL\(Versions\|PreviewVersions\) = \[/,/\]/ s/.*"\([0-9][0-9]*\)[.~][^"]*".*/\1/p' docker-bake.hcl | sort -nu | paste -sd,)"
|
|
echo "PostgreSQL versions: [$VERSIONS]"
|
|
echo "versions=[$VERSIONS]" >> "$GITHUB_OUTPUT"
|
|
|
|
Bake:
|
|
name: Bake
|
|
needs: get_versions
|
|
permissions:
|
|
packages: write
|
|
contents: read
|
|
id-token: write
|
|
security-events: write
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
version: ${{ fromJson(needs.get_versions.outputs.versions) }}
|
|
uses: ./.github/workflows/bake_targets.yml
|
|
with:
|
|
environment: ${{ github.event.inputs.environment }}
|
|
postgresql_version: ${{ matrix.version }}
|
|
secrets:
|
|
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
|
|
|
|
Catalogs:
|
|
name: Update Catalogs
|
|
needs: Bake
|
|
runs-on: ubuntu-24.04
|
|
permissions:
|
|
contents: write
|
|
if: |
|
|
github.ref == 'refs/heads/main' &&
|
|
( github.event.inputs.environment == 'production' || github.event_name == 'schedule' )
|
|
steps:
|
|
- name: Repository Dispatch
|
|
uses: peter-evans/repository-dispatch@5fc4efd1a4797ddb68ffd0714a238564e4cc0e6f # v4
|
|
with:
|
|
event-type: update-catalogs
|