首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据作业日志中的条件将Gitlab CI阶段标记为已通过

根据作业日志中的条件将Gitlab CI阶段标记为已通过
EN

Stack Overflow用户
提问于 2021-10-26 20:37:26
回答 1查看 82关注 0票数 0

我有一个执行数据流作业的bash脚本,如下所示

/deploy.sh

代码语言:javascript
复制
python3 main.py \
--runner DataflowRunner \
--region us-west1 \
--job_name name \
--project project \
--autoscaling_algorithm THROUGHPUT_BASED \
--max_num_workers 10 \
--environment prod \
--staging_location gs staging loc \
--temp_location temp loc \
--setup_file ./setup.py \
--subnetwork subnetwork \
--experiments use_network_tags=internal-ssh-server

所以我使用gitlab ci来运行这个

./gitlab-ci.yml

代码语言:javascript
复制
Deploy Prod:
  stage: Deploy Prod
  environment: production
  script:
    - *setup-project
    - pip3 install --upgrade pip;
    - pip install -r requirements.txt;
    - chmod +x deploy.sh
    - ./deploy.sh
  only:
    - master

现在,我的代码运行并记录在gitlab管道和数据流中的日志查看器中。我希望能够做的是,一旦gitlab看到JOB_STATE_RUNNING,它就会将管道标记为已通过,并停止向gitlab输出日志。也许在bash脚本中有一种方法可以做到这一点?或者可以在gitlab ci中完成?

EN

回答 1

Stack Overflow用户

发布于 2021-10-29 07:17:20

GitLab不具备此功能,因此您只需编写解决方案脚本。

这样的代码应该可以监视输出,并在遇到该文本时退出。

代码语言:javascript
复制
python3 myscript.py > logfile.log &
( tail -f -n0 logfile.log & ) | grep -q "JOB_STATE_RUNNING"
echo "Job is running. We're done here"
exit 0

参考:https://superuser.com/a/900134/654263

您需要担心脚本中的其他一些事情,但这是基本思想。遗憾的是,GitLab没有基于跟踪输出的成功条件。

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

https://stackoverflow.com/questions/69729663

复制
相关文章

相似问题

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