更新CI自动创建docker工作流

pull/490/head
ayakasuki 2025-08-07 06:53:48 +08:00
parent 9633b56d47
commit de99308a91
3 changed files with 87 additions and 183 deletions

View File

@ -1,115 +1,87 @@
name: build-image name: build-image
on: on:
push: push:
branches: ['v2-dev'] branches: ['v2-dev']
paths: paths:
- "build.trigger" - "build.trigger"
# schedule: permissions:
# - # 国际时间 19:17 执行北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间 contents: read
# - cron: '17 19 * * *' packages: write
permissions:
contents: read jobs:
packages: write build-certd-image:
runs-on: ubuntu-latest
jobs: steps:
build-certd-image: - name: Checkout Code
runs-on: ubuntu-latest uses: actions/checkout@v4
steps: with:
- name: Checkout Code fetch-depth: 0
uses: actions/checkout@v4 lfs: true
with:
fetch-depth: 0 - name: get_certd_version
lfs: true id: get_certd_version
uses: actions/github-script@v6
- name: get_certd_version with:
id: get_certd_version result-encoding: string
uses: actions/github-script@v6 script: |
with: const fs = require('fs');
result-encoding: string const path = require('path');
script: | const pnpmWorkspace = "./pnpm-workspace.yaml";
const fs = require('fs'); fs.unlinkSync(pnpmWorkspace);
const path = require('path'); const jsonFilePath = "./packages/ui/certd-server/package.json";
const pnpmWorkspace = "./pnpm-workspace.yaml"; const jsonContent = fs.readFileSync(jsonFilePath, 'utf-8');
fs.unlinkSync(pnpmWorkspace) const pkg = JSON.parse(jsonContent);
const jsonFilePath = "./packages/ui/certd-server/package.json"; console.log("certd_version:", pkg.version);
const jsonContent = fs.readFileSync(jsonFilePath, 'utf-8'); return pkg.version;
const pkg = JSON.parse(jsonContent)
console.log("certd_version:",pkg.version); - name: Build Frontend
return pkg.version run: |
# - name: Use Node.js npm install -g pnpm
# uses: actions/setup-node@v4 pnpm install
# with: npm run build
# node-version: 18 working-directory: ./packages/ui/certd-client
# cache: 'npm'
# working-directory: ./packages/ui/certd-client - name: Set up QEMU
- run: | uses: docker/setup-qemu-action@v3
npm install -g pnpm
pnpm install - name: Set up Docker Buildx
npm run build uses: docker/setup-buildx-action@v3
working-directory: ./packages/ui/certd-client
# 只保留 Docker Hub 和 GitHub Packages 登录
- name: Set up QEMU - name: Login to GitHub Packages
uses: docker/setup-qemu-action@v3 uses: docker/login-action@v3
with:
- name: Set up Docker Buildx registry: ghcr.io
uses: docker/setup-buildx-action@v3 username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to aliyun container Registry
uses: docker/login-action@v3 - name: Login to Docker Hub
with: uses: docker/login-action@v3
registry: registry.cn-shenzhen.aliyuncs.com with:
username: ${{ secrets.aliyun_cs_username }} username: ${{ secrets.dockerhub_username }}
password: ${{ secrets.aliyun_cs_password }} password: ${{ secrets.dockerhub_password }}
- name: Login to GitHub Packages - name: Build & Push (amd64/arm64)
uses: docker/login-action@v3 uses: docker/build-push-action@v6
with: with:
registry: ghcr.io platforms: linux/amd64,linux/arm64
username: ${{ github.actor }} push: true
password: ${{ secrets.GITHUB_TOKEN }} context: ./packages/ui/
tags: |
- name: Login to Docker Hub Ayakasuki/certd:latest
uses: docker/login-action@v3 Ayakasuki/certd:${{ steps.get_certd_version.outputs.result }}
with: ghcr.io/${{ github.repository }}:latest
username: ${{ secrets.dockerhub_username }} ghcr.io/${{ github.repository }}:${{ steps.get_certd_version.outputs.result }}
password: ${{ secrets.dockerhub_password }}
- name: Build & Push (armv7)
- name: Build default platforms uses: docker/build-push-action@v6
uses: docker/build-push-action@v6 with:
with: platforms: linux/arm/v7
platforms: linux/amd64,linux/arm64 push: true
push: true context: ./packages/ui/
context: ./packages/ui/ tags: |
tags: | Ayakasuki/certd:armv7
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest Ayakasuki/certd:${{ steps.get_certd_version.outputs.result }}-armv7
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}} ghcr.io/${{ github.repository }}:armv7
greper/certd:latest ghcr.io/${{ github.repository }}:${{ steps.get_certd_version.outputs.result }}-armv7
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}}

View File

@ -1,34 +0,0 @@
name: sync-to-gitee-dev
on:
push:
branches: ['v2-dev']
# schedule:
# - # 国际时间 19:17 执行北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
# - cron: '17 19 * * *'
permissions:
contents: read
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout work repo # 1. 检出当前仓库(certd-sync-work)
uses: actions/checkout@v4
with:
fetch-depth: 0
lfs: true
- name: Set git user # 2. 给git命令设置用户名和邮箱,↙↙↙ 改成你的name和email
run: |
git config --global user.name "xiaojunnuo"
git config --global user.email "xiaojunnuo@qq.com"
- name: Set git token # 3. 给git命令设置token用于push到目标仓库
uses: de-vri-es/setup-git-credentials@v2
with: # token 格式为: username:password
credentials: https://${{secrets.PUSH_TOKEN_GITEE}}@gitee.com
- name: push to gitee # 4. 执行同步
run: |
git remote add upstream https://gitee.com/certd/certd
git push --set-upstream upstream v2-dev

View File

@ -1,34 +0,0 @@
name: sync-to-gitee
on:
push:
branches: ['v2']
# schedule:
# - # 国际时间 19:17 执行北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
# - cron: '17 19 * * *'
permissions:
contents: read
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout work repo # 1. 检出当前仓库(certd-sync-work)
uses: actions/checkout@v4
with:
fetch-depth: 0
lfs: true
- name: Set git user # 2. 给git命令设置用户名和邮箱,↙↙↙ 改成你的name和email
run: |
git config --global user.name "xiaojunnuo"
git config --global user.email "xiaojunnuo@qq.com"
- name: Set git token # 3. 给git命令设置token用于push到目标仓库
uses: de-vri-es/setup-git-credentials@v2
with: # token 格式为: username:password
credentials: https://${{secrets.PUSH_TOKEN_GITEE}}@gitee.com
- name: push to gitee # 4. 执行同步
run: |
git remote add upstream https://gitee.com/certd/certd
git push --set-upstream upstream v2