无法在大厅触发工作

时间:2019-06-15 02:40:21

标签: concourse

我刚接触过大厅,并像下面这样在centos7.6中设置环境。

$ wget https://concourse-ci.org/docker-compose.yml
$ docker-compose up -d
Then login by `fly --target example login --team-name main --concourse-url  http://192.168.77.140:8080/ -u test -p test`

我可以在下面看到

[root@centostest ~]# fly targets
name     url                         team  expiry
example  http://192.168.77.140:8080  main  Sun, 16 Jun 2019 02:23:48 UTC

我在yaml.xml下面使用了 2.yaml

---
resources:
- name: my-git-repo
  type: git
  source:
    uri: https://github.com/ruanbekker/concourse-test
    branch: basic-helloworld

jobs:
- name: hello-world-job
  public: true
  plan:
  - get: my-git-repo
  - task: task_print-hello-world
    file: my-git-repo/ci/task-hello-world.yml

然后我一步一步地运行以下命令。

fly -t example sp -c 2.yaml -p pipeline-01
fly -t example up -p pipeline-01
fly -t example tj -j pipeline-01/hello-world-job --watch

但是我只是挂在那儿,没有如下有用的答复。

[root@centostest ~]# fly -t example tj -j pipeline-01/hello-world-job --watch
started pipeline-01/hello-world-job #3



理论上,它应该打印如下内容。

Cloning into '/tmp/build/get'...
Fetching HEAD
292c84b change task name
initializing
running echo hello world
hello world
succeeded

我在哪里做错了?谢谢。

1 个答案:

答案 0 :(得分:0)

欢迎来到大厅!

从Concourse开始时可能会引起困惑的一件事是了解何时 Concourse检测到管道已更改,以及管道是一个文件还是多个文件时会发生什么。

您的管道(与现实世界中的大多数管道一样)是“嵌套的”:主管道文件2.yaml是指名为my-git-repo/ci/task-hello-world.yml的任务文件

将Concourse与其他CI系统区分开来的原因是:

  1. 主管道文件(2.yaml)可以位于任何地方,也可以位于其他存储库中。
  2. 由于1,Concourse无法检测到主管道文件的更改,因此必须使用fly set-pipeline或诸如concourse-pipeline-resource之类的自动方式来告知Concourse文件已更改。 。

因此经常发生以下错误:

  • 更改主管道文件,提交并推送,并期望Concourse接受更改。丢失:您必须做fly set-pipeline
  • 一旦完成fly set-pipeline的操作,您就会发现相反的错误:更改主管道文件和嵌套任务文件,而不是推送,而是执行set-pipeline。在这种情况下,Concourse拾取的唯一更改将是对主管道文件的更改,而不是对任务文件的更改。丢失:提交并推送。

从对您的问题的描述中,我感觉到它是我提到的陷阱的混合物。