name: build-publish on: # run it on push to the default repository branch push: branches: [develop] # run it during pull request pull_request: jobs: # define job to build and publish docker image build-and-push-docker-image: name: Build Docker image and push to repositories # run only when code is compiling and tests are passing runs-on: ubuntu-latest # steps to perform in job steps: - name: Checkout code uses: actions/checkout@v3 # setup Docker buld action - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Login to Github Packages uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build image and push to Docker Hub and GitHub Container Registry uses: docker/build-push-action@v2 with: # relative path to the place where source code with Dockerfile is located context: ./src/samples/simple # Note: tags has to be all lower-case tags: | meysamhadeli/booking-microservices:latest ghcr.io/meysamhadeli/booking-microservices:latest # build on feature branches, push only on develop branch push: ${{ github.ref == 'refs/heads/develop' }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}