簡體   English   中英

如何根據推送的分支在 .gitlab-ci.yml 中使用不同的腳本

[英]How can I use different script in .gitlab-ci.yml depending on pushed branched

我在gitlab-ci.yml文件中有以下設置用於構建

build_app:
  image: node:10
  stage: build
  artifacts:
    expire_in: 5 minute
    paths:
      - ./dist
  script:
#    - mkdir app
#    - cp package*.json ./app
    - npm ci
#    - COPY . . ???
    - npm run build --prod

如您所見,我的構建始終帶有--prod標志,當我在測試服務器上進行測試時,它也以prod數據開頭

當我推送到master分支時,如何制作腳本以使用ng build --prod和推送到dev分支時的ng build --configuration=stage

每個存儲庫只有一個 yaml 文件。 但是您可以僅使用關鍵字來定義腳本的哪個部分在哪個分支上運行(有關更多詳細信息,請參閱文檔)。 這應該是這樣的:

部署主:

階段:-構建

構建:階段:構建腳本:-“這里是您的命令”僅:-主

部署開發:

階段:-構建

構建:階段:構建腳本:-“這里是您的命令”僅:-開發

只需編寫一個 shell 腳本來檢查導致 ci/cd 運行的當前分支:

- case "$CI_COMMIT_BRANCH" in 
  "master") ng build --prod; ;;
  "dev") ng build --configuration=stage; ;;
  esac

或者使用簡單的 if else 可能更具可讀性:

- if [ "$CI_COMMIT_BRANCH" = "master" ]; then
       ng build --prod;
  elif [ "$CI_COMMIT_BRANCH" = "dev" ]; then
       ng build --configuration=stage;
  fi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM