NodeJS Gitlab CI变量是否返回空字符串?

dvtswwa3  于 2023-04-29  发布在  Node.js
关注(0)|答案(3)|浏览(151)

我的一个项目在Gitlab CI上开始失败已经两天了。主要错误是E_MISSING_APP_KEY,当我检查另一个变量时,只是通过从.gitlab-ci.yml配置返回$HOST$PORT,如下所示

tests:
  script:
    - echo "${HOST} ${PORT}"
    - node -e "console.log(process.env.HOST, process.env.PORT)"
    - node_modules/.bin/nyc node ace test -t 0

我什么都没找到

生成失败,因为它无法读取我在其配置项设置中设置的环境变量。

有人遇到同样的问题吗?&如何解决这个问题?
更新:
我试图创建一个新的项目,只包含.gitlab-ci.yml文件here,它似乎工作正常

但为什么我的main project还是失败了?

qyyhg6bp

qyyhg6bp1#

对于其他有类似问题的人:
检查你的变量,如果它是受保护的,你的分支也必须受到保护,或者删除变量上的protected选项

xdyibdwo

xdyibdwo2#

这个问题可以通过删除我所有的变量来解决,并从CI设置中设置它们。并且构建管道正在运行,没有任何错误。* (除了实际测试仍然失败,lol)*

说实话我还在想为什么会发生这种事希望没有人会像我一样遇到同样的问题。.

mrwjdhj3

mrwjdhj33#

如果您正在运行标签创建作业,则必须保护标签。为了自动完成这一点,你可以给予它一个Gitlab模式来保护它。如果您认为任何人都应该能够创建标记,那么最好取消标记变量的protected选项。

Gitlab docs
要保护标记,您必须至少具有Maintainer角色。
1.转到项目的Settings〉Repository。
1.从“标记”下拉列表中,选择要保护的标记或
键入并选择“创建通配符”。在下面的截图中,我们选择保护所有匹配v* 的标签

例如,您可以只给予维护人员创建标记模式的权限。
从“允许创建”下拉列表中,选择具有创建匹配标记权限的用户,然后选择“保护

相关问题