From 5026b41f05e5a5ccedce5d4a5f376048d004bae6 Mon Sep 17 00:00:00 2001 From: Feri Ahmad Nurdin <93630456+feriahmad@users.noreply.github.com> Date: Mon, 4 Mar 2024 20:38:36 +0700 Subject: [PATCH] Create release-production.yml --- .github/workflows/release-production.yml | 61 ++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/release-production.yml diff --git a/.github/workflows/release-production.yml b/.github/workflows/release-production.yml new file mode 100644 index 0000000..a98f62e --- /dev/null +++ b/.github/workflows/release-production.yml @@ -0,0 +1,61 @@ +name: Release to Production GKE + +on: + push: + branches: [main] + +jobs: + deploy: + name: Setup, Build, Publish, and Deploy + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + # Configure Docker with Credentials + - name: Configure Docker + run: | + docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USERNAME }} -p "${{ secrets.REGISTRY_PASSWORD }}" + + # Build the Docker image + - name: Set version tag + id: vars + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + file: docker/Dockerfile + context: . + push: true + tags: ${{ secrets.SERVICE_IMAGENAME }}:${{ env.sha_short }} + + # GitOps + - name: GitOps ArgoCD Setup + run: | + echo "${{ secrets.GITLAB_ARGOCD_KEY }}" > /tmp/gitlab-deploy-ssh-key + chmod 600 /tmp/gitlab-deploy-ssh-key + export GIT_SSH_COMMAND="ssh -i /tmp/gitlab-deploy-ssh-key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + git clone ${{ secrets.GITLAB_ARGOCD_REPOSITORY }} + + - name: GitOps ArgoCD Update Image Tag Shortlink Service Production + uses: mikefarah/yq@master + with: + cmd: yq -i '.spec.template.spec.containers[0].image = "${{ secrets.SERVICE_IMAGENAME }}:${{ env.sha_short }}"' 'jds-terraform-gke/k8s/digiteam-shortlink/deployment.yaml' + + - name: GitOps ArgoCD Create Branch, Commit, Push + run: | + export GIT_SSH_COMMAND="ssh -i /tmp/gitlab-deploy-ssh-key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + cd jds-terraform-gke/k8s/digiteam-shortlink + git config user.email "github-action@github.com" + git config user.name "Github Action" + git add . + git commit -m "Digiteam Shortlink Release to Production" + git push origin master