name: build-image
on:
  push:
    branches: ['v2-dev']
    paths:
      - "build.trigger"

#  schedule:
#    - # 国际时间 19:17 执行，北京时间3:17  ↙↙↙ 改成你想要每天自动执行的时间
#    - cron: '17 19 * * *'
permissions:
  contents: read
  packages: write

jobs:
  build-certd-image:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          lfs: true

      - name: get_certd_version
        id: get_certd_version
        uses: actions/github-script@v6
        with:
          result-encoding: string
          script: |
            const fs = require('fs');
            const path = require('path');
            const pnpmWorkspace = "./pnpm-workspace.yaml";
            fs.unlinkSync(pnpmWorkspace)
            const jsonFilePath = "./packages/ui/certd-server/package.json";
            const jsonContent = fs.readFileSync(jsonFilePath, 'utf-8');
            const pkg = JSON.parse(jsonContent)
            console.log("certd_version:",pkg.version);
            return pkg.version
#      - name: Use Node.js
#        uses: actions/setup-node@v4
#        with:
#          node-version: 18
#          cache: 'npm'
#        working-directory: ./packages/ui/certd-client
      - run: |
          npm install -g pnpm
          pnpm install
          npm run build
        working-directory: ./packages/ui/certd-client

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to aliyun container Registry
        uses: docker/login-action@v3
        with:
          registry: registry.cn-shenzhen.aliyuncs.com
          username: ${{ secrets.aliyun_cs_username }}
          password: ${{ secrets.aliyun_cs_password }}

      - name: Login to GitHub Packages
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
  
      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.dockerhub_username }}
          password: ${{ secrets.dockerhub_password }}

      - name: Build default platforms
        uses: docker/build-push-action@v6
        with:
          platforms: linux/amd64,linux/arm64
          push: true
          context: ./packages/ui/
          tags: |
            registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
            registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}
            greper/certd:latest
            greper/certd:${{steps.get_certd_version.outputs.result}}
            ghcr.io/${{ github.repository }}:latest
            ghcr.io/${{ github.repository }}:${{steps.get_certd_version.outputs.result}}
      - name: Build armv7
        uses: docker/build-push-action@v6
        with:
          platforms: linux/arm/v7
          push: true
          context: ./packages/ui/
          tags: |
            registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7
            registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}-armv7
            greper/certd:armv7
            greper/certd:${{steps.get_certd_version.outputs.result}}-armv7
            ghcr.io/${{ github.repository }}:armv7
            ghcr.io/${{ github.repository }}:${{steps.get_certd_version.outputs.result}}-armv7

#      - name: Build agent
#        uses: docker/build-push-action@v6
#        with:
#          platforms: linux/amd64,linux/arm64
#          push: true
#          context: ./packages/ui/agent/
#          tags: |
#            registry.cn-shenzhen.aliyuncs.com/handsfree/certd-agent:latest
#            registry.cn-shenzhen.aliyuncs.com/handsfree/certd-agent:${{steps.get_certd_version.outputs.result}}
#            greper/certd-agent:latest
#            greper/certd-agent:${{steps.get_certd_version.outputs.result}}
