# Just followed https://docs.docker.com/ci-cd/github-actions/ # Also, more details here : https://github.com/marketplace/actions/build-and-push-docker-images#update-dockerhub-repo-description # name: Build and publish to Docker Hub on: push: branches: [master] jobs: build-publish: name: Build, Publish environment: prod runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Docker meta id: docker_meta uses: crazy-max/ghaction-docker-meta@v1 with: images: name/app # list of Docker images to use as base name for tags tag-sha: true # add git short SHA as Docker tag - name: Set up QEMU for multiarch uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Cache Docker layers uses: actions/cache@v2 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and push alpine id: docker_build_alpine uses: docker/build-push-action@v2 with: context: ./ file: ./alpine.Dockerfile builder: ${{ steps.buildx.outputs.name }} platforms: linux/arm/v7,linux/arm/v5,linux/arm64,linux/386,linux/amd64 push: true tags: | nicolabs/nicobot:alpine cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache - name: Image digest run: echo ${{ steps.docker_build_alpine.outputs.digest }} - name: Build and push debian id: docker_build_debian uses: docker/build-push-action@v2 with: context: ./ file: ./debian.Dockerfile builder: ${{ steps.buildx.outputs.name }} platforms: linux/arm/v7,linux/arm/v5,linux/arm64,linux/386,linux/amd64 push: true tags: | nicolabs/nicobot:debian cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache - name: Image digest run: echo ${{ steps.docker_build_debian.outputs.digest }} - name: Build and push debian-signal id: docker_build_debian_signal uses: docker/build-push-action@v2 with: context: ./ file: ./debian-signal.Dockerfile builder: ${{ steps.buildx.outputs.name }} platforms: linux/arm/v7,linux/arm/v5,linux/arm64,linux/386,linux/amd64 push: true tags: | nicolabs/nicobot:debian-signal cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache - name: Image digest run: echo ${{ steps.docker_build_debian_signal.outputs.digest }} # https://github.com/marketplace/actions/build-and-push-docker-images#update-dockerhub-repo-description - name: Update repo description uses: peter-evans/dockerhub-description@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_PASSWORD }} repository: nicolabs/nicobot