我正在从公共库导入模板yml。模板调用函数extractText.js,该函数无法运行,因为它期望该函数位于正在导入gitlab-ci的项目的根文件夹中。yml文件。
脚本工作,如果我有extractText.js文件在项目的根文件夹。
我怎样才能使它,以便我不需要添加extractText.js文件到导入模板的每个项目。
gitlab-ci。yml文件
include:
- project: 'common-library'
ref: 'branch-123'
file:
- 'templates/gitlab-ci.yml'
测试部分test:
stage: test
before_script:
- npm ci
script:
- npm test
after_script:
- export Text=$(node extractText.js)
最好和最简单的方法是把你的功能放到一个自己的Docker镜像中,并作为自己的步骤执行。
好处:
- 您不能确定包含存储库将满足需求。可能需要的Node版本不同等等。
- 如果你把它作为一个单独的步骤运行,根据你的结构,你可以很容易地应用它,如果你需要它也为其他步骤转发所需的资源。
很难给出一个真正好的建议,因为动机缺失,之后这个Text
会发生什么。
还取决于extractText.js
的功能,您可能只想使用shell脚本,它将在任何类型的容器中开箱工作,如果它真的只是某种提取。