如何向 gitlab-ci.yml 添加多行 bash EOD 命令?

2024-04-27

这个问题已被问过多次,但大多数问题都很容易解决,尽管使用工具expect它没有像我预期的那样工作:

/usr/bin/expect <<EOD
spawn npm adduser
expect {
  "Username:" {send "$USERNAME\r"; exp_continue}
  "Password:" {send "$PASSWORD\r"; exp_continue}
  "Email: (this IS public)" {send "$EMAIL\r"; exp_continue}
}
EOD

出于相同目的,还有更简单的变体:

npm adduser <<!
$NPM_USERNAME
$NPM_PASSWORD
$NPM_EMAIL
!

.gitlab-ci.yml:这样它会产生一行字符串,这不好并且命令将无法工作

npm_push:
  dependencies:
    - test
  script:
    - npm adduser <<!
      $NPM_USERNAME
      $NPM_PASSWORD
      $NPM_EMAIL
      !
    - npm config set registry https://$NPM_URL
    - npm push

如何以这种方式传递它,以便 gitlab-runner 在将其传递给 bash 时以多行方式执行此命令?


终于找到了

npm_publish:
  stage: deploy
  only:
    - master
  script:
    - apk update
    - apk add expect git alpine-sdk python python-dev
    - npm config set registry https://$NPM_URL
    - npm install publish
    - |
        /usr/bin/expect <<EOD
        spawn npm adduser
        expect {
            "Username:" {send "$NPM_USERNAME\r"; exp_continue}
            "Password:" {send "$NPM_PASSWORD\r"; exp_continue}
            "Email: (this IS public)" {send "$NPM_EMAIL\r"; exp_continue}
        }
        EOD
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向 gitlab-ci.yml 添加多行 bash EOD 命令? 的相关文章

随机推荐

  • 检查jsonPath中是否有重复的值

    我有一个 jsonPath 如下 book category reference author Nigel Rees title Sayings of the Century price 8 95 category fiction auth
  • UITextField 仅在顶部带有圆角

    我想实现一个仅在左上角和右上角有圆角的 UITextField 我知道 setter 方法 setCornerRadius 这是 UITextField 的默认选项 但此选项只允许我将 txtfield 的所有四个角设为圆形 但我只希望顶部
  • 如何使用Vault在Ansible中运行playbook api

    我有一本带有Vault的剧本 我可以运行它 ansible playbook info yml ask vault pass 现在 我想在 Ansible 中运行我的 playbook api 答案在如何使用Vault在Ansible v2
  • 数据库查询的内部实现

    根据我的经验 我使用过很多查询 例如select order by wheremysql sql server oracle 等中的子句等 有那么一刻我想 1 内部是如何编写来实现上述查询的 2 他们使用哪种语言 3 那是编程语言吗 如果是
  • 删除损坏的链接 Unix

    我想删除损坏的链接 但在此之前我想确认目录中是否存在链接文件 我们来调用一下链接A if a A then print ya A is ther fi But if A链接已损坏 那么我该如何检查 find L type l找到损坏的符号链
  • OpenGL 说“from_param 收到了一个不连续的数组”

    安装 Yosemite 后 我必须升级 numpy PyOpenGL 等 现在 以前运行的程序给了我以下堆栈跟踪 file latebind pyx line 44 in OpenGL accelerate latebind Curry c
  • 如何调整 jQuery UI 手风琴的高度?

    在我的用户界面中 我有一个像这样的手风琴设置 div h3 Section 1 h3 div content div More sections div 手风琴在刚形成时工作正常 并且似乎可以很好地适应每个部分内的内容 但是 如果我在 ac
  • C:Do-While 循环重复太多!

    我有一个让我困惑的小程序 我正在尝试使用循环来获取用户的输入 如果输入错误 则再次重复 如果正确 则退出 代码片段是 void main char user status Checks User Status q Quiz Master a
  • 使用 pandas 在不同轴上绘制条形图和时间序列图

    我有一个 pandas 数据框 它是从具有以下结构的 csv 文件中读取的 Date Latitude Longitude Brand Pump AKI Trip Miles Total Miles Gallons MPG PPG Tota
  • Kafka 一遍又一遍地重放消息 - 心跳会话已过期 - 标记协调器已死亡

    使用 python kafka api 从只有少量消息的主题中读取消息 Kafka 不断地一遍又一遍地重放队列中的消息 它从我的主题接收一条消息 返回每条消息内容 然后抛出ERROR Heartbeat session expired ma
  • 从字符串编译Java源代码? [复制]

    这个问题在这里已经有答案了 有没有办法让正在运行的Java程序编译Java源代码 作为字符串传递 Class newClass Compiler compile class ABC void xyz etc etc 理想情况下 传入源代码引
  • 在 PHP 中 RESTful 上传文件

    因此 我正在编写一个脚本 该脚本将通过 RESTful 接口将视频上传到服务器 文档告诉我 我应该将数据 包括二进制视频文件 作为 POST 请求的一部分传递 我知道如何设置我的 POST 变量 但我不知道如何处理二进制数据 API 说我应
  • 在 jQuery 中替换元素并返回新元素

    如何替换 jQuery 中的元素并返回替换元素而不是被删除的元素 我有以下场景 我有很多复选框 一旦您单击其中一个 该复选框就会被加载图标取代 一旦发生一些 AJAX 事件 加载图标就会被勾号图标取代 使用 jQuery 的replaceW
  • 从弹出视图控制器传递数据

    我有两个视图控制器 我首先打开 当我按下按钮时 第二个视图控制器被推到导航控制器堆栈上 在这里 在第二个视图控制器中 我有一个表视图 当我点击某些行时 它们被选中 如复选框 并且与该行相关的一些数据被添加到数组中 现在 当我完成选择后 我想
  • 获取 gradle 构建的 aapt2 参数?

    我有兴趣尝试使用 aapt2 从命令行编译 Android 应用程序 当我尝试执行以下操作时 链接约束布局库时遇到问题aapt2 link命令 该程序从 Android studio gradle 成功构建 如何使 gradle 命令行调用
  • ASP.NET Core 2.2 中的路由本地化

    我正在使用 ASP NET Core 2 2 开发应用程序 并且正在努力解决如何实现路由本地化的问题 例如 根据请求 如果路线中未指定语言 我需要重定向到路线 en products 如果未指定语言 则从接受语言标头获取区域设置 下面的de
  • 如何在 Spring MVC 中使用延迟加载

    Spring MVC中如何使用延迟加载 我现在正在使用 eager 但这会使我的应用程序运行速度变慢 这是我的域的一部分 ManyToMany fetch FetchType EAGER JoinTable name NEWS TAG jo
  • 直接屏幕像素/帧缓冲区访问[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想尝试创建一个玩游戏的程序 IE 机器人 我希望能够直接访问屏幕上的像素 IE 让我的程序 看到 一场比赛 然后 采取行动 或者至少
  • Windows批处理文件-显示所有子文件夹

    我在使用 Windows 批处理文件返回 JUST 文件夹 忽略文件 时遇到困难 这就是我现在所拥有的 目前它正在返回文件和子子文件夹 for r g in xx do echo g 另外 假设我只想返回以几个不同前缀开头的文件夹 例如 我
  • 如何向 gitlab-ci.yml 添加多行 bash EOD 命令?

    这个问题已被问过多次 但大多数问题都很容易解决 尽管使用工具expect它没有像我预期的那样工作 usr bin expect lt