From 3a8b49f153ea71a0c01ac6532706205219273723 Mon Sep 17 00:00:00 2001 From: Nicolas Duchon Date: Thu, 1 Apr 2021 12:14:32 +0200 Subject: [PATCH] ci: build and push to DockerHub w/ GitHub Actions --- .github/workflows/dockerhub.yml | 87 +++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 .github/workflows/dockerhub.yml diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml new file mode 100644 index 0000000..8191c26 --- /dev/null +++ b/.github/workflows/dockerhub.yml @@ -0,0 +1,87 @@ +name: DockerHub + +on: + workflow_dispatch: + push: + branches: + - master + tags: + - '*.*.*' + paths-ignore: + - 'test/*' + - '.gitignore' + - '.travis.yml' + - 'docker-compose-separate-containers.yml' + - 'docker-compose.yml' + - 'LICENSE' + - 'Makefile' + - '*.md' + +jobs: + multiarch-build: + runs-on: ubuntu-latest + steps: + + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Get Docker tags for Debian based image + id: docker_meta_debian + uses: crazy-max/ghaction-docker-meta@v1 + with: + images: nginxproxy/nginx-proxy + tag-semver: | + {{version}} + {{major}}.{{minor}} + + - name: Get Docker tags for Alpine based image + id: docker_meta_alpine + uses: crazy-max/ghaction-docker-meta@v1 + with: + images: nginxproxy/nginx-proxy + tag-semver: | + {{version}}-alpine + {{major}}.{{minor}}-alpine + + - 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: Build and push the Debian based image + id: docker_build_debian + uses: docker/build-push-action@v2 + with: + file: Dockerfile + platforms: linux/amd64 + push: true + tags: | + ${{ github.ref != 'refs/heads/master' && steps.docker_meta_debian.outputs.tags || '' }} + ${{ github.ref == 'refs/heads/master' && 'nginxproxy/nginx-proxy:latest' || '' }} + labels: ${{ steps.docker_meta.outputs.labels }} + + - name: Build and push the Alpine based image + id: docker_build_alpine + uses: docker/build-push-action@v2 + with: + file: Dockerfile.alpine + platforms: linux/amd64 + push: true + tags: | + ${{ github.ref != 'refs/heads/master' && steps.docker_meta_alpine.outputs.tags || '' }} + ${{ github.ref == 'refs/heads/master' && 'nginxproxy/nginx-proxy:alpine' || '' }} + labels: ${{ steps.docker_meta.outputs.labels }} + + - name: Images digests + run: | + echo ${{ steps.docker_build_debian.outputs.digest }} + echo ${{ steps.docker_build_alpine.outputs.digest }}