63 lines
2 KiB
YAML
63 lines
2 KiB
YAML
name: Build
|
||
|
||
on:
|
||
push:
|
||
branches: [main, uat, release*]
|
||
pull_request_target:
|
||
branches: [main, uat, release*]
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
build:
|
||
name: Run production build
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
|
||
# 安装 Rust
|
||
- run: rustup toolchain install stable --profile minimal
|
||
|
||
# 缓存 Cargo
|
||
- name: Cache Cargo registry and build artifacts
|
||
uses: actions/cache@v3
|
||
with:
|
||
path: |
|
||
target
|
||
~/.cargo/bin
|
||
~/.cargo/registry
|
||
~/.cargo/git
|
||
key: cargo-build-cache-${{ github.run_id }}
|
||
restore-keys: |
|
||
cargo-build-cache-
|
||
|
||
# 添加 wasm 目标
|
||
- run: rustup target add wasm32-unknown-unknown
|
||
|
||
# 编译器依赖
|
||
- name: Install lld
|
||
run: sudo apt install -y lld clang gcc llvm
|
||
|
||
# 安装 worker-build(版本不变)
|
||
- name: Install worker-build
|
||
run: |
|
||
if ! command -v worker-build &> /dev/null; then
|
||
cargo install worker-build
|
||
fi
|
||
|
||
# 强制安装 wasm-bindgen-cli = 0.2.103
|
||
- name: Install wasm-bindgen-cli 0.2.103
|
||
run: cargo install -f wasm-bindgen-cli --version 0.2.103
|
||
|
||
# 替换 wrangler 配置
|
||
- name: Replace D1_DATABASE_ID in wrangler.toml
|
||
run: sed -i "s/\${D1_DATABASE_ID}/${{ secrets.D1_DATABASE_ID }}/g" wrangler.toml
|
||
|
||
# Cloudflare 部署
|
||
- uses: cloudflare/wrangler-action@v3
|
||
id: cf
|
||
env:
|
||
D1_DATABASE_ID: ${{ secrets.D1_DATABASE_ID }}
|
||
with:
|
||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|