首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止Vercel在分支推送上的部署

阻止Vercel在分支推送上的部署
EN

Stack Overflow用户
提问于 2022-06-11 17:58:01
回答 1查看 1K关注 0票数 1

我有我的GitHub库链接到我的vercel项目。在链接到git存储库中的分支的子域上部署更改所必需的。dev.<website>.<tld>链接到dev分支。<website>.<tld>链接到main分支。除了链接到我的git之外,我想不出另一种方法。

我有一个GitHub操作,它运行测试以及我希望在部署之前确保通过的其他事情。但是每次我将更改推到我的生产分支时,它就会启动vercel部署,这是我想要避免的。

我知道vercel上的Ignored Build Step设置中有一个git部分,但是我不知道在这个部分的command输入中添加了什么?

我增加了

[ exit 1 ]

但不确定这是否正确。

这是我的github操作工作流yml文件。

代码语言:javascript
复制
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 }}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-27 12:10:32

您可以通过引用此特性的文档来启用“忽略构建步骤”字段。如果命令返回"0",则将跳过构建。如果返回代码"1“或更高版本,则将生成新的部署。

带有脚本的

#!/bin/bash

回声"VERCEL_ENV:$VERCEL_ENV“

代码语言:javascript
复制
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“

代码语言:javascript
复制
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

带有文件夹和工作区的()

若要构建仅考虑某个文件夹的新部署,可以使用以下命令:

代码语言:javascript
复制
git diff HEAD^ HEAD --quiet ./packages/frontend/

以上内容是从这里复制的(包括更多细节):

如何在Vercel上使用“忽略构建步骤”字段?

视频教程:

如何忽略Vercel上的构建步骤

另一份指南:

忽略GitHub分支

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72586732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档