diff options
Diffstat (limited to '.github/workflows/docker.yml')
-rw-r--r-- | .github/workflows/docker.yml | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 000000000..68a0f173e --- /dev/null +++ b/.github/workflows/docker.yml | |||
@@ -0,0 +1,72 @@ | |||
1 | name: Docker | ||
2 | |||
3 | on: | ||
4 | push: | ||
5 | branches: | ||
6 | - 'master' | ||
7 | schedule: | ||
8 | - cron: '0 3 * * *' | ||
9 | |||
10 | jobs: | ||
11 | generate-matrix: | ||
12 | name: Generate matrix for Docker build | ||
13 | runs-on: ubuntu-latest | ||
14 | outputs: | ||
15 | matrix: ${{ steps.set-matrix.outputs.matrix }} | ||
16 | steps: | ||
17 | - name: Checkout | ||
18 | uses: actions/checkout@v2 | ||
19 | with: | ||
20 | ref: master | ||
21 | - name: Set matrix for build | ||
22 | id: set-matrix | ||
23 | run: | | ||
24 | # FIXME: https://github.com/actions/checkout/issues/290 | ||
25 | git fetch --force --tags | ||
26 | |||
27 | one="{ \"file\": \"./support/docker/production/Dockerfile.bullseye\", \"ref\": \"develop\", \"tags\": \"chocobozzz/peertube:develop-bullseye\" }" | ||
28 | two="{ \"file\": \"./support/docker/production/Dockerfile.bullseye\", \"ref\": \"master\", \"tags\": \"chocobozzz/peertube:production-bullseye,chocobozzz/peertube:$(git describe --abbrev=0)-bullseye\" }" | ||
29 | three="{ \"file\": \"./support/docker/production/Dockerfile.nginx\", \"ref\": \"master\", \"tags\": \"chocobozzz/peertube-webserver:latest\" }" | ||
30 | |||
31 | matrix="[$one,$two,$three]" | ||
32 | echo ::set-output name=matrix::{\"include\":$(echo $matrix)} | ||
33 | |||
34 | docker: | ||
35 | runs-on: ubuntu-latest | ||
36 | |||
37 | needs: generate-matrix | ||
38 | |||
39 | strategy: | ||
40 | matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }} | ||
41 | fail-fast: false | ||
42 | |||
43 | name: ${{ matrix.tags }} | ||
44 | |||
45 | steps: | ||
46 | - | ||
47 | name: Set up QEMU | ||
48 | uses: docker/setup-qemu-action@v1 | ||
49 | - | ||
50 | name: Set up Docker Buildx | ||
51 | uses: docker/setup-buildx-action@v1 | ||
52 | - | ||
53 | name: Login to DockerHub | ||
54 | uses: docker/login-action@v1 | ||
55 | with: | ||
56 | username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
57 | password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
58 | |||
59 | - | ||
60 | name: Checkout develop | ||
61 | uses: actions/checkout@v2 | ||
62 | with: | ||
63 | ref: ${{ matrix.ref }} | ||
64 | - | ||
65 | name: Docker build | ||
66 | uses: docker/build-push-action@v2 | ||
67 | with: | ||
68 | context: '.' | ||
69 | platforms: linux/amd64,linux/arm64 | ||
70 | push: true | ||
71 | file: ${{ matrix.file }} | ||
72 | tags: ${{ matrix.tags }} | ||