mirror of
https://github.com/142vip/408CSFamily.git
synced 2026-02-03 02:23:38 +08:00
119 lines
2.9 KiB
YAML
119 lines
2.9 KiB
YAML
## 代码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: ubuntu-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: 16.20.2
|
||
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: ubuntu-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: ubuntu-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
|