我需要将一些静态站点部署到survey.sh服务中,方法是在控制台和脚本的本地主机上运行很好的一行代码。
printf '%s\n' user@abcdefg.com somePassword | surge --project ./public --domain domain_aka_domain_any_name.surge.sh (npm包)-是一个交互式命令,提示登录/注册电子邮件,然后输入密码。
因此,通过使用printf,它在我的主机上成功地传递了两个响应。它的输出在这里:
欢迎来到浪涌!(surge.sh)通过输入电子邮件和密码登录(或创建激增帐户)。 电邮: user01@abc.com密码: 以user01@abc.com身份运行(学生) 项目:./公共域: ciicicicdciqq.surge.sh上载:==================== 100% eta: 0.0s (66个文件,1699903字节) CDN:==================== 100%加密:*.surge.sh,surge.sh (366天) IP: 138.197.235.000 成功!-发布在ciicicicdciqq.surge.sh上
但是,当我在..gitlab ci.yml中使用相同的一行或script.sh时,在舞台上部署如下:
deploy to surge:
image: node
stage: deploy
script:
- npm install --global surge
- printf '%s\n' user@abcdefg.com somePassword | surge --project ./public --domain domain_aka_domain_any_name.surge.sh它不起作用,它的输出仅限于:
欢迎来到浪涌!(surge.sh)通过输入电子邮件和密码登录(或创建激增帐户)。电子邮件:密码:清理项目目录和基于文件的变量00:01职务成功
因此,我假设在docker容器中,它就像是在第二个提示符上中断(甚至可能是在第一个提示符上)。是与非交互的shell有关还是类似的?我尝试了sh -c方法,但不走运。需要关于解释/人的帮助和参考。谢谢
编辑,以澄清我的问题:/docker行为与我的本地主机和不同的原因是什么?如何通过shell/unix 解决它?因此,无论是激增(我知道令牌可能性)命令或其他任何东西。
发布于 2022-05-16 22:13:31
喘振提供了一种令牌机制,用于从CI提供程序(如GitLab )进行身份验证,并非交互地使用喘振。
首先,您需要创建一个浪涌令牌。在本地系统中,使用命令surge token生成令牌。保存此值。
在GitLab项目中,打开CI/CD设置并创建两个变量及其各自的值:
SURGE_LOGIN -用于激增的电子邮件地址(根据我对来源的阅读,这实际上可能是可选的)SURGE_TOKEN -您刚才使用surge token创建的令牌然后可以运行您的命令(例如surge --project ./public --domain domain_aka_domain_any_name.surge.sh),并且不会提示您输入凭据。
script:
- npm install --global surge
- surge --project ./public --domain domain_aka_domain_any_name.surge.shhttps://stackoverflow.com/questions/72265544
复制相似问题