我正在尝试将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)传递给我的工作的任何想法?
答案 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:
.........