name: build-image-for-release on: push: branches: ['v2-dev'] paths: - "trigger/release.trigger" # workflow_run: # workflows: [ "deploy-demo" ] # types: # - completed # 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}} - name: deploy-certd-doc uses: tyrrrz/action-http-request@master with: url: ${{ secrets.WEBHOOK_CERTD_DOC }} method: POST body: | { "CERTD_VERSION": "1.0.0" } headers: | Content-Type: application/json retry-count: 3 retry-delay: 5000 - name: publish_to_atomgit id: publish_to_atomgit run: | rm -rf ./packages/ui/certd-client/dist/**/*.gz zip -r ui.zip ./packages/ui/certd-client/dist export ATOMGIT_TOKEN=${{ secrets.ATOMGIT_TOKEN }} pnpm install npm run publish_to_atomgit working-directory: ./