我有我的GitHub库链接到我的vercel项目。在链接到git存储库中的分支的子域上部署更改所必需的。dev.<website>.<tld>链接到dev分支。<website>.<tld>链接到main分支。除了链接到我的git之外,我想不出另一种方法。
我有一个GitHub操作,它运行测试以及我希望在部署之前确保通过的其他事情。但是每次我将更改推到我的生产分支时,它就会启动vercel部署,这是我想要避免的。
我知道vercel上的Ignored Build Step设置中有一个git部分,但是我不知道在这个部分的command输入中添加了什么?
我增加了
[ exit 1 ]
但不确定这是否正确。
这是我的github操作工作流yml文件。
name: Deploy Web Application
on:
push:
branches: ["master", "development"]
paths:
- "web/**"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./web
strategy:
matrix:
node-version: [16.13.0]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Node Version ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: "yarn"
cache-dependency-path: "./web/yarn.lock"
- name: Install Dependencies
run: yarn
- name: Build Project
run: yarn build
- name: Run Linting
run: yarn lint
- name: Run Typecheck
run: yarn typecheck
- name: Start Deployment
uses: bobheadxi/deployments@v0.6.2
id: deployment
with:
step: start
token: ${{ secrets.GH_TOKEN }}
env: prod
- name: Deploy to Vercel
uses: amondnet/vercel-action@v20
id: vercel-action
with:
github-token: ${{ secrets.GH_TOKEN }}
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
# if main branch go to --prod environment otherwise nothing for preview environment
vercel-args: "${{ github.ref == 'refs/heads/master' && '--prod' || '' }}"
working-directory: ./web
- name: Update Deployment Status
uses: bobheadxi/deployments@v0.6.2
if: always()
with:
step: finish
token: ${{ secrets.GH_TOKEN }}
status: ${{ job.status }}
deployment_id: ${{ steps.deployment.outputs.deployment_id }}
env_url: ${{ steps.vercel-action.outputs.preview-url }}发布于 2022-06-27 12:10:32
您可以通过引用此特性的文档来启用“忽略构建步骤”字段。如果命令返回"0",则将跳过构建。如果返回代码"1“或更高版本,则将生成新的部署。
带有脚本的
#!/bin/bash
回声"VERCEL_ENV:$VERCEL_ENV“
if [[ "$VERCEL_ENV" == "production" ]] ; then
# Proceed with the build
echo "✅ - Build can proceed"
exit 1;
else
# Don't build
echo " - Build cancelled"
exit 0;
fi带有环境变量的
#!/bin/bash
回声"VERCEL_GIT_COMMIT_REF:$VERCEL_GIT_COMMIT_REF“
if [[ "$VERCEL_GIT_COMMIT_REF" == "staging" || "$VERCEL_GIT_COMMIT_REF" == "main" ]] ; then
# Proceed with the build
echo "✅ - Build can proceed"
exit 1;
else
# Don't build
echo " - Build cancelled"
exit 0;
fi带有文件夹和工作区的()
若要构建仅考虑某个文件夹的新部署,可以使用以下命令:
git diff HEAD^ HEAD --quiet ./packages/frontend/以上内容是从这里复制的(包括更多细节):
视频教程:
另一份指南:
https://stackoverflow.com/questions/72586732
复制相似问题