首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CircleCI运行多行命令

CircleCI运行多行命令
EN

Stack Overflow用户
提问于 2018-08-03 11:55:01
回答 3查看 10.9K关注 0票数 12

摘自CircleCI配置文件:

代码语言:javascript
复制
deploy:
  machine:
    enabled: true
  steps:
    - run:
        name: AWS EC2 deploy
        command: |
          ssh -o "StrictHostKeyChecking no" ubuntu@xxx.xxx.xxx.xxx "cd ~/circleci-aws; git pull; npm i; npm run build; pm2 restart build/server

如何将命令分解为多行?在下面的语法中尝试过,但它只运行第一个命令:

代码语言:javascript
复制
deploy:
  machine:
    enabled: true
  steps:
    - run:
        name: Deploy
        command: |
          ssh -o StrictHostKeyChecking=no ubuntu@xxx.xxx.xxx.xxx
          cd ~/circleci-aws
          git pull
          npm i
          npm run build
          pm2 restart build/server
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-04 19:45:42

您需要将这些其他命令作为args传递给shell (如bash):

代码语言:javascript
复制
ssh -o StrictHostKeyChecking=no ubuntu@xxx.xxx.xxx.xxx bash -c '
      cd ~/circleci-aws
      git pull
      npm i
      npm run build
      pm2 restart build/server'
票数 3
EN

Stack Overflow用户

发布于 2020-05-06 14:40:24

这是一个旧的,但它有很多意见,所以我发现似乎值得分享。

在CircleCI docs (https://circleci.com/docs/2.0/configuration-reference/#shorthand-syntax)中,它们表示在使用运行速记语法时,还可以执行多行操作。

如下所示

代码语言:javascript
复制
- run: |
    git add --all
    git commit -am "a commit message"
    git push

问题的例子和这两个命令之间的区别是,命令在"run“下,而不是”命令“下。

票数 19
EN

Stack Overflow用户

发布于 2022-09-13 20:22:35

来自这里

代码语言:javascript
复制
     steps:
       - run: |
           s3cmd --access_key ${<< parameters.access-key >>} \\
                 --secret_key ${<< parameters.secret-key >>} \\
                 << parameters.command >>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51672067

复制
相关文章

相似问题

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