GitLab CI/CD如何捕捉管线中的卷曲响应 [英] Gitlab CI/CD how to catch curl response in pipline
本文介绍了GitLab CI/CD如何捕捉管线中的卷曲响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
pipeline
,现在我想添加test
阶段,在那里我检查应用程序是否启动成功,例如当构建阶段完成时,我检查curl
,我的意思是cURL127.0.0.1:8080
如果响应200
OK,否则失败。
如何使用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环境中运行您的应用程序并对其进行测试,您有两个选择:
- 您可以在启动应用程序的同一作业中运行测试(您可能需要使用
nohup
运行应用程序才能在后台运行它) - 您可以将应用打包到停靠容器中,然后在测试作业中将其作为
service
运行。
这篇关于GitLab CI/CD如何捕捉管线中的卷曲响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文