name: Build & Publish Docker Images on: workflow_call: inputs: dockerhub-username: required: true type: string secrets: CI_DOCKERHUB_TOKEN: required: true # runs in ci-master after successful checks # you can use images built by this action in future jobs. # https://docs.docker.com/build/ci/github-actions/examples/#share-built-image-between-jobs jobs: docker: # https://github.com/marketplace/actions/build-and-push-docker-images runs-on: ubuntu-latest steps: # ensure working with latest code - name: Checkout uses: actions/checkout@v3 # generate a git commit hash to be used as image tag - name: Generate short hash id: commit-hash run: echo "short=$( git rev-parse --short $GITHUB_SHA )" >> $GITHUB_OUTPUT # qemu is used to emulate different platform architectures - name: Set up QEMU uses: docker/setup-qemu-action@v2 # cross-platform build of the image - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 # authenticate for publish to docker hub - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ inputs.dockerhub-username }} password: ${{ secrets.CI_DOCKERHUB_TOKEN }} # publish to docker hub, tag with short git hash - name: Build and push uses: docker/build-push-action@v3 with: context: . platforms: linux/amd64,linux/arm64 push: true tags: kava/kava:${{ steps.commit-hash.outputs.short }},kava/kava:master