github action
字数: 0 字 时长: 0 分钟
flutte web
yml
name: 打包部署flutter web
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: 3.22.2
# 生成静态文件
- name: Build
run: |
flutter pub get
flutter build web --web-renderer canvaskit --base-href="/仓库名/"
# 部署到 GitHub Pages
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
# 生成的 secret
token: ${{ secrets.ACCESS_TOKEN }}
# 部署到 page 分支,因为 main 分支存放的一般是源码,而 page 分支则用来存放生成的静态文件
branch: page
# 生成的静态文件存放的地方
folder: build/web
前端项目
yml
# name 可以自定义
name: 部署前端项目
# 触发条件:在 push 到 main/master 分支后,新的 Github 项目 应该都是 main,而之前的项目一般都是 master
on:
push:
branches:
- main
# 任务
jobs:
build-and-deploy:
# 服务器环境:最新版 Ubuntu
runs-on: ubuntu-latest
steps:
# 拉取代码
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
# 生成静态文件
- name: Build
run: |
npm i pnpm -g
pnpm install
pnpm run build
# 部署到 GitHub Pages
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
# 生成的 secret
token: ${{ secrets.ACCESS_TOKEN }}
# 部署到 page 分支,因为 main 分支存放的一般是源码,而 page 分支则用来存放生成的静态文件
branch: page
# 生成的静态文件存放的地方
folder: docs/other/build
flutter 分析
yml
name: Flutter Analysis
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
jobs:
package-analysis:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
# 下载flutter依赖
- name: Install dependencies
run: flutter pub get
# 检查代码格式是否符合规范并在不符合时退出。
# - name: Check formatting
# run: dart format --set-exit-if-changed .
# 分析代码
- name: Run analysis
run: flutter analyze
# 模拟发布,检查项目的包是否可以顺利发布到 pub.dev,并验证包的健康状态。
- name: Verify package health
run: flutter pub publish --dry-run
# 执行 Flutter 的单元测试。
# - name: Run tests
# run: flutter test
私有仓库的构建文件发布到另一个公开仓库
yml
# https://developer.aliyun.com/article/1425333
# 仓库A是不开源的,是我的项目源码,但是我想要将仓库A的build文件,上传到另外一个GitHub公开仓库B的main分支,同时仓库B的main分支已经设置为pages,这样就能方便别人访问和使用
# 这是仓库A的actions文件
name: Deploy GitHub Pages
on:
push:
branches:
- main
# 任务
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
# 生成静态文件
- name: Build
run: |
npm i pnpm -g
pnpm install
pnpm run build
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
with:
# 令牌
personal_token: ${{ secrets.PERSONAL_TOKEN }}
# 仓库A 构建后的文件目录
publish_dir: docs/other/build
# 仓库B,格式为:user/repo
external_repository: user/repo
# 仓库B的分支
publish_branch: page
#
# 部署之后,github page的custom domian自定义域名失效
# 主文件夹下新建CNAME文件,比如public里面,里面填入你的域名,并保存,github page就不会出现域名重置了