mirror of https://github.com/Chocobozzz/PeerTube
Add docker github action
parent
b202d007cc
commit
f3fbbf0140
|
@ -0,0 +1,70 @@
|
||||||
|
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 }}
|
|
@ -1,4 +1,4 @@
|
||||||
name: Stats"
|
name: Stats
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
|
|
@ -38,47 +38,3 @@ build-nightly:
|
||||||
- eval `ssh-agent -s`
|
- eval `ssh-agent -s`
|
||||||
- if [ ! -z ${DEPLOYEMENT_KEY+x} ]; then ssh-add <(echo "${DEPLOYEMENT_KEY}"); fi
|
- if [ ! -z ${DEPLOYEMENT_KEY+x} ]; then ssh-add <(echo "${DEPLOYEMENT_KEY}"); fi
|
||||||
- if [ ! -z ${DEPLOYEMENT_KEY+x} ]; then scp ./peertube-nightly-* ${DEPLOYEMENT_USER}@${DEPLOYEMENT_HOST}:../../web/nightly; fi
|
- if [ ! -z ${DEPLOYEMENT_KEY+x} ]; then scp ./peertube-nightly-* ${DEPLOYEMENT_USER}@${DEPLOYEMENT_HOST}:../../web/nightly; fi
|
||||||
|
|
||||||
.docker: &docker
|
|
||||||
stage: docker-nightly
|
|
||||||
cache: {}
|
|
||||||
image:
|
|
||||||
name: gcr.io/kaniko-project/executor:debug
|
|
||||||
entrypoint: [""]
|
|
||||||
before_script:
|
|
||||||
- mkdir -p /kaniko/.docker
|
|
||||||
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$CI_REGISTRY_AUTH\",\"email\":\"$CI_REGISTRY_EMAIL\"}}}" > /kaniko/.docker/config.json
|
|
||||||
script:
|
|
||||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $DOCKERFILE --destination $DOCKER_IMAGE_NAME
|
|
||||||
|
|
||||||
build-docker-develop:
|
|
||||||
<<: *docker
|
|
||||||
only:
|
|
||||||
- schedules
|
|
||||||
variables:
|
|
||||||
DOCKER_IMAGE_NAME: chocobozzz/peertube:develop-bullseye
|
|
||||||
DOCKERFILE: $CI_PROJECT_DIR/support/docker/production/Dockerfile.bullseye
|
|
||||||
|
|
||||||
build-docker-webserver:
|
|
||||||
<<: *docker
|
|
||||||
only:
|
|
||||||
- schedules
|
|
||||||
variables:
|
|
||||||
DOCKER_IMAGE_NAME: chocobozzz/peertube-webserver
|
|
||||||
DOCKERFILE: $CI_PROJECT_DIR/support/docker/production/Dockerfile.nginx
|
|
||||||
|
|
||||||
build-docker-tag:
|
|
||||||
<<: *docker
|
|
||||||
only:
|
|
||||||
- tags
|
|
||||||
variables:
|
|
||||||
DOCKER_IMAGE_NAME: chocobozzz/peertube:$CI_COMMIT_TAG-bullseye
|
|
||||||
DOCKERFILE: $CI_PROJECT_DIR/support/docker/production/Dockerfile.bullseye
|
|
||||||
|
|
||||||
build-docker-master:
|
|
||||||
<<: *docker
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
variables:
|
|
||||||
DOCKER_IMAGE_NAME: chocobozzz/peertube:production-bullseye
|
|
||||||
DOCKERFILE: $CI_PROJECT_DIR/support/docker/production/Dockerfile.bullseye
|
|
||||||
|
|
Loading…
Reference in New Issue