Bläddra i källkod

ci: build and push to DockerHub w/ GitHub Actions

Nicolas Duchon 4 år sedan
förälder
incheckning
3a8b49f153
1 ändrade filer med 87 tillägg och 0 borttagningar
  1. 87 0
      .github/workflows/dockerhub.yml

+ 87 - 0
.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 }}