Gitlab-ci:如何在工件过期时禁用手动步骤?

问题描述 投票:5回答:1

由于磁盘空间的限制,我想在几个小时内使我的工件过期。 Gitlab-CI通过在expire_in中定义时间来支持这一点。

这非常有效,但我有一个手动部署步骤(单击按钮开始部署)。部署基本上将webroot rsyncs到服务器。问题是工件何时到期(在此示例中为3小时后)。如果您点击手动部署按钮,将抛出错误,因为webroot工件不再存在。之前的步骤需要在部署之前重建。所有这些都是完全可以理解的,但是必须通读错误日志以找出部署失败的原因是不方便的。

我想禁用手动步骤(使按钮不可点击),当它依赖的工件不再可用时。有没有选择来实现这个目标?

gitlab-ci.yaml

stages:
  - build frontend
  - build backend
  - deploy

before_script:
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - mkdir -p ~/.ssh
  - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config

npm build:
  stage: build frontend
  image: node:6
  script:
    - cd build
    - yarn install
    - npm run build:prod
  artifacts:
    paths:
      - profile/
    expire_in: 1 hour

drupal build:
  stage: build backend
  image: drupaldocker/drush:8
  dependencies:
    - npm build
  script:
    - sudo apt-get update
    - sudo apt-get install unzip
    - cd webroot
    - drush make drupal.make.yml -y
    - rm -r sites
  artifacts:
    paths:
      - webroot/
    expire_in: 3 hours

staging deploy:
  stage: deploy
  image: drupaldocker/drush:8
  dependencies:
    - drupal build
    - npm build
  script:
    - export SSH_ENV_DIR="master1/drupal"
    - bash bin/gitlab/deploy.sh
  when: manual
  environment:
    name: staging
gitlab gitlab-ci
1个回答
0
投票

你应该尝试使用最新的gitlab版本,它现在应该显示一个原因。 (V11.2)

© www.soinside.com 2019 - 2024. All rights reserved.