## 代码CI快速集成流水线,lint、fix、build name: CI ## 触发条件 on: # 提PR到next分支触发CI pull_request: branches: - next push: branches: - next # 手动触发部署 workflow_dispatch: schedule: - cron: "0 0 1 * *" # 环境变量 env: # 阿里云仓库信息 REGISTRY: registry.cn-hangzhou.aliyuncs.com UserName: 142vip jobs: Base-Build: name: "基础编译构建" runs-on: ubuntu-latest ## 主库且拉取PR时触发 if: github.repository == '142vip/408CSFamily' && github.event_name == 'pull_request' permissions: actions: read pull-requests: read steps: - name: Checkout Code uses: actions/checkout@v4 with: persist-credentials: false # “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 fetch-depth: 0 ## 安装PNPM - name: PNPM Install uses: pnpm/action-setup@v2 with: version: 8 ## 安装Node环境 - name: Install Node.js uses: actions/setup-node@v3 with: node-version: 18.18.0 ## 淘宝镜像加速 registry-url: 'https://registry.npmmirror.com' ## 缓存 cache: 'pnpm' ## 下载依赖,并执行初始化脚本:钩子函数、思维导图构建 - name: Install Dependencies run: | ./scripts/ci - name: Code LintFix run: | ./scripts/lint - name: Build Site run: | ./scripts/bundle build - name: Build Site With Proxy run: | ./scripts/bundle build_proxy Build-Docker-Image: name: "构建Docker镜像" runs-on: ubuntu-latest ## 主库且tag更新时执行 if: github.repository == '142vip/408CSFamily' && startsWith(github.event.head_commit.message, 'chore(release):') permissions: actions: read pull-requests: read steps: - name: Checkout Code uses: actions/checkout@v4 with: persist-credentials: false # “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 fetch-depth: 0 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login Docker run: | docker version echo "-----------Docker Login-----------" docker login \ --username=${{ env.UserName }} \ --password=${{ secrets.DOCKER_PASSWORD }} \ ${{env.REGISTRY}} - name: Install Dependencies run: | ./scripts/ci ## 构建,支持domain - name: Build To Dist run: | ./scripts/bundle build ## 快速构建并推送 - name: Push Docker Image run: | ./scripts/bundle image_faster