name: build-image on: push: branches: ['v2-dev'] paths: - "trigger/build.trigger" workflow_dispatch: # 添加手动触发 # 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 ref: 'v2-dev' - 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:${{steps.get_certd_version.outputs.result}}