在作业运行步骤中无法使用<< parameters.my_param >>

时间:2019-06-11 20:03:33

标签: parameters circleci

我正在尝试将URL作为参数传递给CircleCi作业(作为Workflow的一部分)。

我知道parameters可以在When步骤中使用(与conditions一样),但是我找不到任何将参数传递给作业的方式,以便使用在“运行”步骤中。

最终我想通过另一个项目的API请求来触发此作业。

version: 2
jobs:
  smokes:
    parallelism: 4
    working_directory: ~/regression-repo/
    parameters:
        target_url:
           type: string
           default: <defaultURL>
    docker:
      - image: circleci/node:latest-browsers

    steps:
     - checkout
     - run:
          name: Run smoke tests
          command: |
            TEST_FILES=$(circleci tests glob "./tests/**/*.js" | circleci tests split --split-by=filesize)
            TEST_NAME=$(basename -- ${TEST_FILES%.js})
            TARGET_URL= << parameters.target_url >>
            printf "\nTest files:\n$TEST_FILES\nURL:\n$TARGET_URL\n"
            TEST_PATH=$TEST_FILES RESULTS_NAME=$TEST_NAME URL=$TARGET_URL npm run smokes


workflows:
  version: 2

  build_on_changes:
    jobs:
      - smokes

我希望这会将URL传递给运行步骤...但是我得到了错误:

/bin/bash: line 4: warning: here-document at line 2 delimited by end-of-file (wanted `parameters.target_url')
/bin/bash: -c: line 4: syntax error near unexpected token `newline'
Exited with code 2

我尝试添加引号(单引号,双引号和反引号),以及仅呼应参数:

steps:
      - run:
          name: target_url
          command: |
            echo << parameters.target_url >>

但是我仍然遇到相同的错误消息。

我已将其通过YAML解析器进行了验证,并证明它不是配置问题...关于如何将参数(URL)传递给我的工作的任何想法?

1 个答案:

答案 0 :(得分:0)

该问题与CircleCi Config版本有关(2,当使用参数时应为2.1)。很简单,但是我以某种方式错过了几天:

version: 2.1
jobs:
  smokes:
    parallelism: 4
    working_directory: ~/regression-repo/
    parameters:
        target_url:
           type: string
           default: <defaultURL>
    docker:
      - image: circleci/node:latest-browsers

    steps:
    .........