Skip to content

CI

CI #205

Workflow file for this run

## 代码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