name: Build and Push to ACR

on:
  push:
    ### Production
    branches: ["master"]

env:
  REGION_ID: cn-shenzhen
  REGISTRY: mmc-registry.cn-shenzhen.cr.aliyuncs.com
  NAMESPACE: sharefly
  IMAGE: admin
  TAG: ${{ github.sha }}

  ACR_EE_REGISTRY: mmc-registry.cn-shenzhen.cr.aliyuncs.com
  ACR_EE_INSTANCE_ID: cri-yhk5zgfc2v1sia6l
  ACR_EE_NAMESPACE: sharefly
  ACR_EE_IMAGE: admin
  ACR_EE_TAG: ${{ github.sha }}
  JAVA_VERSION: "8"
  GITLAB_URL: https://oauth2:MjVJKxB7m4tCy7symBzn@git.mmcuav.cn/iuav/csf-admin.git
  PROFILES_ACTIVE: production

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    ### Production
    environment: prod
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: WeChat Work notification by markdown
        uses: chf007/action-wechat-work@master
        env:
          WECHAT_WORK_BOT_WEBHOOK: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=9be1b073-1760-442d-8e3d-faa0fd32ea16
        with:
          msgtype: markdown
          content: "
          ### GitHub提交信息 \n
          > - 提交人: ${{github.actor}} \n
          > - 提交信息: ${{ github.event.head_commit.message }} \n
          > - 提交到仓库: ${{github.repository}} \n
          > - 提交到分支: ${{github.ref}} \n
          即将开始更新，请关注Argocd同步状态...
          "        

      - name: Login to ACR EE with the AccessKey pair
        uses: aliyun/acr-login@v1
        with:
          login-server: "https://${{ env.ACR_EE_REGISTRY }}"
          region-id: "${{ env.REGION_ID }}"
          username: "QD--KeBiTeHangKong@1354706964800968"
          password: "MMC@2023&ACR"
          instance-id: "${{ env.ACR_EE_INSTANCE_ID }}"

      - name: Build and push image to ACR EE
        run: |
          echo $PROFILES_ACTIVE
          docker build --build-arg PROFILES_ACTIVE=$PROFILES_ACTIVE -t "$ACR_EE_REGISTRY/$ACR_EE_NAMESPACE/$ACR_EE_IMAGE:$TAG" .
          docker push "$ACR_EE_REGISTRY/$ACR_EE_NAMESPACE/$ACR_EE_IMAGE:$TAG"
      ### Production
      - name: Kustomize Set Image
        run: |-
          cd kustomization/overlays/prod
          curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"  | bash /dev/stdin 3.8.6
          ./kustomize edit set image REGISTRY/NAMESPACE/IMAGE:TAG=$REGISTRY/$NAMESPACE/$IMAGE:$TAG
      ### Production
      - name: Commit and Push
        run: |
          git config user.name "Chuck"
          git config user.email "Chuck@users.noreply.github.com"
          git remote set-url origin "$GITLAB_URL"
          git commit -am "Update Image Tag"
          git tag -a $TAG -m "日常迭代"          
          git push origin "master" --tags

      - name: Send Error Notification by WeChat
        if: ${{ failure() }}
        run: |
          curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=9be1b073-1760-442d-8e3d-faa0fd32ea16' -H 'Content-Type: application/json' -d '
          {
            "msgtype": "markdown",
            "markdown": {
              "content": "### GitHub构建并推送镜像失败 \n
                          > - 提交人: ${{github.actor}} \n
                          > - 提交信息: ${{github.event.head_commit.message}} \n
                          > - 提交到仓库: ${{github.repository}} \n
                          > - 提交到分支: ${{github.ref}} \n 请修复错误后重新提交..."
          }'          