GitLab CI/CD如何捕捉管线中的卷曲响应 [英] Gitlab CI/CD how to catch curl response in pipline

查看:27
本文介绍了GitLab CI/CD如何捕捉管线中的卷曲响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有启动一些应用程序的pipeline,现在我想添加test阶段,在那里我检查应用程序是否启动成功,例如当构建阶段完成时,我检查curl,我的意思是cURL127.0.0.1:8080如果响应200OK,否则失败。 如何使用Gitlab pipline?

创建
stages:
  - build
  - deploy
  - test

build:
  stage: build
  script:
    - echo Build Stage 1
  tags:
    - java-run

deploy:
  stage: deploy
  tags:
    - java-run
  script:
    - "some script"

test:
  stage: test
  tags:
    - java-run
  script:

推荐答案

我在这里围绕您的用例做了一些假设,如果它们不正确,请告诉我。我假设:

  • 您正在远程启动Java应用程序(即,您的管道正在将其部署到云提供商或非CI/CD服务器)
  • 运行CI/CD的服务器可以通过Internet访问该应用程序
如果是这样的话,假设您希望您的作业在服务不可访问时失败,您只需使用-f标志卷曲URL,如果它收到404错误,则它将失败。示例:


test:
  image: alpine:latest
  script:
    - apk add curl
    - curl -o /dev/null -s -w "%{http_code}
" https://httpstat.us/404 -f

上述作业将失败,因为cURL在收到>;=400错误代码并使用-f标志时返回退出代码22:

现在,如果您尝试在您的CI/CD中运行应用程序(这就是您在问题中引用127.0.0.1的原因),那么您不能在一个作业中本地运行该应用程序,而在另一个作业中进行测试。作业将仅在运行它的容器的上下文中存在和运行,test位于单独的容器中,因为它是单独的作业。如果您尝试在CI/CD环境中运行您的应用程序并对其进行测试,您有两个选择:

  1. 您可以在启动应用程序的同一作业中运行测试(您可能需要使用nohup运行应用程序才能在后台运行它)
  2. 您可以将应用打包到停靠容器中,然后在测试作业中将其作为service运行。

这篇关于GitLab CI/CD如何捕捉管线中的卷曲响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆