name: Build and Publish

on:
    # run it on push to the default repository branch
    push:
        branches: [develop]

defaults:
    # define job to build and publish docker image
    build-and-push-docker-image:
        name: Build Docker image and push to Docker hub

        runs-on: ubuntu-latest

        # steps to perform in job
        steps:
            - name: Checkout code
              uses: actions/checkout@v2

            # setup Docker build action
            - name: Set up Docker Buildx
              id: 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 image and push to Docker Hub
              uses: docker/build-push-action@v2
              with:
                  # relative path to the place where source code with Dockerfile is located
                  context: ./
                  # Note: tags has to be all lower-case
                  tags: |
                      zeropingheroes/lanager:develop
                  # push only on develop branch
                  push: ${{ github.ref == 'refs/heads/develop' }}

            - name: Image digest
              run: echo ${{ steps.docker_build.outputs.digest }}

Use GitHub actions to build and push Docker image on git push
Use GitHub actions to build and push Docker image on git push
