Files
docker-postgres-backup-local/.github/workflows/ci.yml
T
Pau Rodriguez-Estivill 8dedbc0a64 Simplify workflow
2022-02-26 15:51:54 +01:00

101 lines
2.6 KiB
YAML

name: CI
on: push
jobs:
test:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:latest
env:
POSTGRES_DB: "database"
POSTGRES_USER: "user"
POSTGRES_PASSWORD: "test"
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options:
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v2
- name: Test backup script
env:
POSTGRES_DB: "database"
POSTGRES_USER: "user"
POSTGRES_PASSWORD: "test"
POSTGRES_HOST: "127.0.0.1"
POSTGRES_PORT: 5432
POSTGRES_EXTRA_OPTS: "-Z0"
BACKUP_DIR: ".data"
# Defaults
POSTGRES_DB_FILE: "**None**"
POSTGRES_USER_FILE: "**None**"
POSTGRES_PASSWORD_FILE: "**None**"
POSTGRES_PASSFILE_STORE: "**None**"
POSTGRES_CLUSTER: "FALSE"
BACKUP_SUFFIX: ".sql.gz"
BACKUP_KEEP_DAYS: 7
BACKUP_KEEP_WEEKS: 4
BACKUP_KEEP_MONTHS: 6
run: |
mkdir -p "$BACKUP_DIR"
sh -xe backup.sh
build:
runs-on: ubuntu-latest
if: ${{ github.ref != 'refs/heads/main' }}
needs: [ test ]
steps:
- uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: amd64,arm64,arm/v7,s390x,ppc64le
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build images
run: docker buildx bake --pull
publish:
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
needs: [ test ]
steps:
- uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: amd64,arm64,arm/v7,s390x,ppc64le
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Configure build revision
id: vars
run: echo "::set-output name=sha_short::${GITHUB_SHA:0:7}"
- name: Build images
env:
BUILDREV: ${{ steps.vars.outputs.sha_short }}
run: docker buildx bake --pull
- name: Push images
env:
BUILDREV: ${{ steps.vars.outputs.sha_short }}
run: docker buildx bake --push