## 代码CI快速集成流水线,lint、fix、build name: CI ## 触发条件 on: pull_request: branches: - 'master' - 'next' - '!pages/**' push: branches: - master - next # 手动触发部署 workflow_dispatch: schedule: - cron: "0 0 1 * *" jobs: install-init: name: "依赖安装初始化" runs-on: macos-latest permissions: actions: read pull-requests: read steps: - name: checkout code uses: actions/checkout@v3 with: # “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 fetch-depth: 0 - name: PNPM Install uses: pnpm/action-setup@v2 with: version: 7 - name: Install Node.js uses: actions/setup-node@v3 with: node-version: 18.18.0 cache: 'pnpm' - run: pnpm i --frozen-lockfile --registry https://registry.npmmirror.com - name: Cache Dependencies uses: actions/cache@v3 with: path: node_modules key: ${{ runner.os }}-node_modules-${{ hashFiles('**/pnpm-lock.yaml') }} Base-Build: name: "基础编译构建" runs-on: macos-latest needs: install-init steps: - name: Checkout Code uses: actions/checkout@v3 with: fetch-depth: 0 - name: Restore Dependencies From Cache uses: actions/cache@v3 with: path: node_modules key: ${{ runner.os }}-node_modules-${{ hashFiles('**/pnpm-lock.yaml') }} - name: Code LintFix run: ./scripts/lint --fix - name: Build Site run: ./scripts/bundle build - name: Build Site With Proxy run: ./scripts/bundle build_proxy Build-Docker-Image: name: "构建Docker镜像" runs-on: macos-latest needs: install-init ## 主库且tag更新时执行 if: github.repository == '142vip/408CSFamily' && startsWith(github.ref, 'refs/tags/v') permissions: actions: read pull-requests: read steps: - name: Checkout Code uses: actions/checkout@v3 with: # “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录 fetch-depth: 0 - name: Login Docker run: | docker version echo "-----------Docker Login-----------" docker login \ --username=${{ env.UserName }} \ --password=${{ secrets.DOCKER_PASSWORD }} \ ${{env.REGISTRY}} - name: Restore Dependencies From Cache uses: actions/cache@v3 with: path: node_modules key: ${{ runner.os }}-node_modules-${{ hashFiles('**/pnpm-lock.yaml') }} ## 构建,支持domain - name: Build To Dist run: ./scripts/bundle build_proxy - name: Push Docker Image run: ./scripts/bundle image_faster