🤔 save-file: GitHub Desktop 更改了本地的col配置; #49
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 参考资料 | |
# https://vercel.com/guides/how-can-i-use-github-actions-with-vercel | |
# https://vercel.com/guides/how-to-alias-a-preview-deployment-using-the-cli | |
name: 基于vercel命令的部署 | |
env: | |
# vercel的token | |
vct: ${{ secrets.vercel_token }} | |
# 从教程内得知 环境变量名称必须大写 | |
VERCEL_ORG_ID: ${{ secrets.vercel_orgId }} | |
VERCEL_PROJECT_ID: ${{ secrets.vercel_projectId }} | |
# vercel项目名称 | |
pjn: vercel-monorepo-test-1-zn20 | |
# 项目路径 | |
p1: ./packages/monorepo-1 | |
p2: ./packages/proj-2-vp2-custom-components | |
p3: ./packages/monorepo-3 | |
p4: ./packages/monorepo-4 | |
p5: ./packages/monorepo-5 | |
docs01Star: ./packages/docs-01-star | |
eci: ./.eslint-config-inspector | |
# 项目url | |
p1-url: monorepo-1.ruancat6312.top | |
p2-url-1: monorepo-2.ruancat6312.top | |
p2-url-2: m2.ruan-cat.com | |
p2-url-3: m2.ruancat6312.top | |
p3-url: monorepo-3.ruancat6312.top | |
p4-url: monorepo-4.ruancat6312.top | |
p5-url-1: monorepo-5.ruancat6312.top | |
p5-url-2: monorepo5.ruan-cat.com | |
docs-01-star-url: docs-01-star.ruancat6312.top | |
eci-url-longest: eslint-config-inspector.ruan-cat-vercel-monorepo-test.ruancat6312.top | |
eci-url-medium: eci.ruancat-vc-monorepo.ruancat6312.top | |
eci-url-mini: eci.rc-vc.ruancat6312.top | |
on: | |
push: | |
branches: | |
# 避免高频率占用vercel资源,改成仅在main分支执行部署行为 | |
# - dev | |
- main | |
jobs: | |
Deploy-Production: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 检出分支 | |
uses: actions/checkout@main | |
- name: 开启 corepack | |
run: corepack enable && corepack install | |
- name: 检查pnpm版本 | |
run: pnpm -v | |
- name: 安装整个项目的依赖 | |
run: pnpm i | |
- name: 用npm安装vercel cli工具 | |
run: npm i -g vercel@latest | |
- name: 检查vercel cli版本 | |
run: vc -v | |
- name: eci:在连接vercel项目之前,预构建项目目录 | |
run: pnpm run -w eci:b | |
- name: 各子项目连接现有的vercel项目 | |
# 本地window使用 | |
# run: vc link --yes --cwd=./packages/monorepo-3 --project=vercel-monorepo-test-1-zn20 | |
run: | | |
vc link --yes --cwd=${{env.p1}} --project=${{env.pjn}} -t ${{env.vct}} | |
vc link --yes --cwd=${{env.p2}} --project=${{env.pjn}} -t ${{env.vct}} | |
vc link --yes --cwd=${{env.p3}} --project=${{env.pjn}} -t ${{env.vct}} | |
vc link --yes --cwd=${{env.p4}} --project=${{env.pjn}} -t ${{env.vct}} | |
vc link --yes --cwd=${{env.p5}} --project=${{env.pjn}} -t ${{env.vct}} | |
vc link --yes --cwd=${{env.docs01Star}} --project=${{env.pjn}} -t ${{env.vct}} | |
vc link --yes --cwd=${{env.eci}} --project=${{env.pjn}} -t ${{env.vct}} | |
- name: vercel生成特定.vercel/output/static目录 | |
# build命令仍然需要用token来运行。 | |
# run: vc build --yes --prod --cwd=./packages/monorepo-3 -A ./vercel.null.json | |
run: | | |
vc build --yes --prod --cwd=${{env.p1}} -A ./vercel.null.json -t ${{env.vct}} | |
vc build --yes --prod --cwd=${{env.p2}} -A ./vercel.null.json -t ${{env.vct}} | |
vc build --yes --prod --cwd=${{env.p3}} -A ./vercel.null.json -t ${{env.vct}} | |
vc build --yes --prod --cwd=${{env.p4}} -A ./vercel.null.json -t ${{env.vct}} | |
vc build --yes --prod --cwd=${{env.p5}} -A ./vercel.null.json -t ${{env.vct}} | |
vc build --yes --prod --cwd=${{env.docs01Star}} -A ./vercel.null.json -t ${{env.vct}} | |
# eci项目的目录不是固定的目录,是动态生成的目录,所以构建vercel目录的命令应该在其构建之后 | |
# vc build --yes --prod --cwd=${{env.eci}} -A ./vercel.null.json -t ${{env.vct}} | |
- name: turbo并发打包全部子项目 | |
run: pnpm run on-github-action-flow | |
- name: eci:生成vercel静态站点目录结构 | |
run: vc build --yes --prod --cwd=${{env.eci}} -A ./vercel.null.json -t ${{env.vct}} | |
- name: 各子项目上传文件并部署到vercel内 | |
run: | | |
url1="$(vc deploy --yes --prebuilt --prod --cwd=${{env.p1}} -t ${{env.vct}})" | |
vc alias -t ${{env.vct}} set "$url1" ${{env.p1-url}} | |
url2="$(vc deploy --yes --prebuilt --prod --cwd=${{env.p2}} -t ${{env.vct}})" | |
vc alias -t ${{env.vct}} set "$url2" ${{env.p2-url-1}} | |
vc alias -t ${{env.vct}} set "$url2" ${{env.p2-url-2}} | |
vc alias -t ${{env.vct}} set "$url2" ${{env.p2-url-3}} | |
url3="$(vc deploy --yes --prebuilt --prod --cwd=${{env.p3}} -t ${{env.vct}})" | |
vc alias -t ${{env.vct}} set "$url3" ${{env.p3-url}} | |
url4="$(vc deploy --yes --prebuilt --prod --cwd=${{env.p4}} -t ${{env.vct}})" | |
vc alias -t ${{env.vct}} set "$url4" ${{env.p4-url}} | |
url5="$(vc deploy --yes --prebuilt --prod --cwd=${{env.p5}} -t ${{env.vct}})" | |
vc alias -t ${{env.vct}} set "$url5" ${{env.p5-url-1}} | |
vc alias -t ${{env.vct}} set "$url5" ${{env.p5-url-2}} | |
url01Star="$(vc deploy --yes --prebuilt --prod --cwd=${{env.docs01Star}} -t ${{env.vct}})" | |
vc alias -t ${{env.vct}} set "$url01Star" ${{env.docs-01-star-url}} | |
urlEci="$(vc deploy --yes --prebuilt --prod --cwd=${{env.eci}} -t ${{env.vct}})" | |
vc alias -t ${{env.vct}} set "$urlEci" ${{env.eci-url-longest}} | |
vc alias -t ${{env.vct}} set "$urlEci" ${{env.eci-url-medium}} | |
vc alias -t ${{env.vct}} set "$urlEci" ${{env.eci-url-mini}} |