11name : Build Docker image
22
3- on : pull_request
3+ on :
4+ push :
5+ branches : [main]
46
57jobs :
68 prepare :
2830 runs-on : ubuntu-latest
2931 needs : prepare
3032 environment :
31- name : dev
33+ name : cloudops
3234 outputs :
3335 BUILD_TAG : ${{ steps.build-push.outputs.build-tag }}
3436
@@ -44,17 +46,22 @@ jobs:
4446 - name : Checkout
4547 uses : actions/checkout@v2
4648
47- - name : Login to GCR
49+ - name : Login to Docker Hub
4850 uses : docker/login-action@v1
4951 with :
50- registry : gcr.io
51- username : _json_key
52- password : ${{ secrets.GCP_CREDENTIALS }}
52+ username : ${{ secrets.DOCKERHUB_USERNAME }}
53+ password : ${{ secrets.DOCKERHUB_TOKEN }}
5354
54- - name : Build and push to GCR
55+ - name : Extract metadata (tags, labels) for Docker
56+ id : meta
57+ uses : docker/metadata-action@v3
58+ with :
59+ images : $GITHUB_REPOSITORY
60+
61+
62+ - name : Build and push to Docker Hub
5563 id : build-push
5664 env :
57- GCR_REGISTRY : gcr.io/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_GCR_REPO }}
5865 IMAGE_TAG : ${{ needs.prepare.outputs.FULL_IMAGE_TAG }}
5966 run : |
6067 printf '{\n "commit": "%s",\n "version": "%s",\n "image_tag": "%s",\n "source": "%s",\n "build": "%s"\n}\n' \
6370 "$IMAGE_TAG" \
6471 "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" \
6572 "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" > ./version.json
66- docker build --file infra/Dockerfile -t $GCR_REGISTRY :$IMAGE_TAG .
67- docker image tag $GCR_REGISTRY :$IMAGE_TAG $GCR_REGISTRY :latest
68- docker push $GCR_REGISTRY :$IMAGE_TAG
69- docker push $GCR_REGISTRY :latest
73+ docker build --file infra/Dockerfile -t $GITHUB_REPOSITORY :$IMAGE_TAG .
74+ docker image tag $GITHUB_REPOSITORY :$IMAGE_TAG $GITHUB_REPOSITORY :latest
75+ docker push $GITHUB_REPOSITORY :$IMAGE_TAG
76+ docker push $GITHUB_REPOSITORY :latest
7077 echo "::set-output name=build-tag::$IMAGE_TAG"
7178 echo "::debug::Set the build-tag output as $IMAGE_TAG"
0 commit comments