71 lines
2 KiB
YAML
71 lines
2 KiB
YAML
|
name: Docker
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
branches:
|
||
|
- 'master'
|
||
|
schedule:
|
||
|
- cron: '0 3 * * *'
|
||
|
|
||
|
jobs:
|
||
|
generate-matrix:
|
||
|
name: Generate matrix for Docker build
|
||
|
runs-on: ubuntu-latest
|
||
|
outputs:
|
||
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v2
|
||
|
with:
|
||
|
ref: master
|
||
|
- name: Set matrix for build
|
||
|
id: set-matrix
|
||
|
run: |
|
||
|
# FIXME: https://github.com/actions/checkout/issues/290
|
||
|
git fetch --force --tags
|
||
|
|
||
|
one="{ \"file\": \"./support/docker/production/Dockerfile.bullseye\", \"ref\": \"develop\", \"tags\": \"chocobozzz/peertube-test:develop-bullseye\" }"
|
||
|
two="{ \"file\": \"./support/docker/production/Dockerfile.buster\", \"ref\": \"master\", \"tags\": \"chocobozzz/peertube-test:production-buster,chocobozzz/peertube-test:$(git describe --abbrev=0)-buster\" }"
|
||
|
three="{ \"file\": \"./support/docker/production/Dockerfile.nginx\", \"ref\": \"master\", \"tags\": \"chocobozzz/peertube-webserver-test:latest\" }"
|
||
|
|
||
|
matrix="[$one,$two,$three]"
|
||
|
echo ::set-output name=matrix::{\"include\":$(echo $matrix)}
|
||
|
|
||
|
docker:
|
||
|
runs-on: ubuntu-latest
|
||
|
|
||
|
needs: generate-matrix
|
||
|
|
||
|
strategy:
|
||
|
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
||
|
fail-fast: false
|
||
|
|
||
|
steps:
|
||
|
-
|
||
|
name: Set up QEMU
|
||
|
uses: docker/setup-qemu-action@v1
|
||
|
-
|
||
|
name: Set up Docker Buildx
|
||
|
uses: docker/setup-buildx-action@v1
|
||
|
-
|
||
|
name: Login to DockerHub
|
||
|
uses: docker/login-action@v1
|
||
|
with:
|
||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||
|
|
||
|
-
|
||
|
name: Checkout develop
|
||
|
uses: actions/checkout@v2
|
||
|
with:
|
||
|
ref: ${{ matrix.ref }}
|
||
|
-
|
||
|
name: Docker build
|
||
|
uses: docker/build-push-action@v2
|
||
|
with:
|
||
|
context: '.'
|
||
|
platforms: linux/amd64,linux/arm64
|
||
|
push: true
|
||
|
file: ${{ matrix.file }}
|
||
|
tags: ${{ matrix.tags }}
|