首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在gitlab CI中使用交互式提示或脚本运行一个线性shell命令

在gitlab CI中使用交互式提示或脚本运行一个线性shell命令
EN

Stack Overflow用户
提问于 2022-05-16 20:58:02
回答 1查看 295关注 0票数 0

我需要将一些静态站点部署到survey.sh服务中,方法是在控制台和脚本的本地主机上运行很好的一行代码。

代码语言:javascript
复制
printf '%s\n' user@abcdefg.com somePassword  | surge --project ./public --domain domain_aka_domain_any_name.surge.sh 

(npm包)-是一个交互式命令,提示登录/注册电子邮件,然后输入密码。

  • -项目点存在带有静态网站的目录
  • -在空间*.surge.sh中创建新的子域

因此,通过使用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时,在舞台上部署如下:

代码语言:javascript
复制
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 解决它?因此,无论是激增(我知道令牌可能性)命令或其他任何东西。

EN

回答 1

Stack Overflow用户

发布于 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),并且不会提示您输入凭据。

代码语言:javascript
复制
  script:
    - npm install --global surge
    - surge --project ./public --domain domain_aka_domain_any_name.surge.sh
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72265544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档