有没有办法将GitLab CI工件上传到Openshift容器?

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

我有一个GitLab CI管道,可以构建一些工件。例如:

train:job:
  stage: train
  script: python script.py
  artifacts:
    paths:
      - artifact.csv
    expire_in: 1 week

现在,我使用GitLab管道中的以下步骤将存储库部署到OpenShift。这将把我的GitLab repo拉入OpenShift。它不包括“测试”中的工件。

deploy:app:
  stage: deploy
  image: ayufan/openshift-cli
  before_script:
    - oc login $OPENSHIFT_DOMAIN --token=$OPENSHIFT_TOKEN
  script:
    - oc start-build my_app

如何让OpenShift使用此存储库,以及在我的管道中创建的工件?

gitlab openshift gitlab-ci
1个回答
0
投票

一般来说,OpenShift build pipelines依靠s2i构建过程来构建应用程序。

在s2i构建之间重用工件的最佳实践可能是通过使用incremental builds或将多个BuildConfig定义(一个BuildConfig的输出图像作为源图像输入另一个BuildConfig)链接在一起,通过spec.source.images中的spec.source.gitBuildConfig definition配置。

在您的情况下,因为您使用Jenkins管道来生成工件而不是OpenShift构建过程,所以您实际上只需要将工件与源代码和运行时容器映像组合在一起。

为此,您可以创建一个构建器容器图像,该图像在s2i工作流的assemble阶段(通过curl,wget等)期间从外部源中提取这些工件。然后,您可以将BuildConfig配置为指向源存储库。在构建时,BuildConfig将下拉您的源代码,汇编脚本将下拉您的工件。

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