我尝试在git CI/CD管道的最后阶段启动一个API。这是在Python中通过FastAPI/uvicorn完成的,它在Docker容器中运行。
app = FastAPI()
if __name__ == '__main__':
uvicorn.run(app, port=777, host="0.0.0.0")
字符串
一切正常,但是,有一个问题。由于API启动并继续运行(它应该),一旦API启动,CI/CD阶段就不会通过,但它也会继续运行。因此,整个管道永远不会达到通过状态。
即使底层的Docker容器(以及其中的Python脚本)还没有终止,因为它需要保持API运行,如何将CI/CD阶段标记为已通过?
1条答案
按热度按时间p8h8hvxi1#
也许有些人来到这里也很高兴将测试中的API作为服务运行。下面的CI Pipeline与Gitlab一起工作。但是,在运行器上调试它是丑陋的。就像这里已经建议的许多评论一样,我也更喜欢在staging环境中进行适当的端到端测试。它在某些情况下仍然很有用,调试也不太成问题,当你有shell访问runner上的作业时。
字符串