38 lines
1.6 KiB
YAML
38 lines
1.6 KiB
YAML
name: "Build and push Docker image"
|
|
|
|
|
|
on:
|
|
push:
|
|
branches: ["*"]
|
|
tags: ["*"]
|
|
schedule:
|
|
- cron: "0 0 * * 0"
|
|
|
|
|
|
jobs:
|
|
|
|
main:
|
|
runs-on: "ubuntu-20.04"
|
|
steps:
|
|
- name: "Checkout"
|
|
uses: "actions/checkout@v2"
|
|
- name: "Prepare build environment; build; push to Docker Hub, RedHat Quay"
|
|
run: |
|
|
IMAGE_BUILD_CONTEXT='.'
|
|
IMAGE_BUILD_DOCKERFILE='Dockerfile'
|
|
IMAGE_BUILD_PLATFORMS='linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le'
|
|
|
|
IMAGE_NAME="$(echo '${{ github.repository }}' | sed 's,.*/,,g' | tr '[A-Z]' '[a-z]')"
|
|
IMAGE_VERSION="$(echo '${{ github.ref }}' | sed -e 's,.*/\(.*\),\1,')"
|
|
[ "$IMAGE_VERSION" == 'master' ] && IMAGE_VERSION='latest'
|
|
[ "$IMAGE_VERSION" == 'main' ] && IMAGE_VERSION='latest'
|
|
|
|
docker buildx create --use
|
|
|
|
IMAGE_REGISTRY='docker.io'
|
|
echo '${{ secrets.DOCKER_HUB_PASSWORD }}' | docker login --username '${{ secrets.DOCKER_HUB_USERNAME }}' --password-stdin "$IMAGE_REGISTRY"
|
|
docker buildx build --push --platform "$IMAGE_BUILD_PLATFORMS" --tag "$IMAGE_REGISTRY/${{ secrets.DOCKER_HUB_USERNAME }}/$IMAGE_NAME:$IMAGE_VERSION" --file "$IMAGE_BUILD_DOCKERFILE" "$IMAGE_BUILD_CONTEXT"
|
|
|
|
IMAGE_REGISTRY='quay.io'
|
|
echo '${{ secrets.REDHAT_QUAY_PASSWORD }}' | docker login --username '${{ secrets.REDHAT_QUAY_USERNAME }}' --password-stdin "$IMAGE_REGISTRY"
|
|
docker buildx build --push --platform "$IMAGE_BUILD_PLATFORMS" --tag "$IMAGE_REGISTRY/${{ secrets.REDHAT_QUAY_USERNAME }}/$IMAGE_NAME:$IMAGE_VERSION" --file "$IMAGE_BUILD_DOCKERFILE" "$IMAGE_BUILD_CONTEXT"
|