2017-05-03 34 views

回答

4

如果您只是在同一作業中的任務之間傳遞,則可以使用工件(http://concourse.ci/running-tasks.html#outputs),如果您在作業之間傳遞,則可以使用資源(如將其放入git或s3中)。例如,如果你在任務之間傳遞,你可以有一個任務文件

--- 
platform: linux 

image_resource: # ... 

outputs: 
- name: unique-id 

run: 
    path: project-src/ci/fill-in-output.sh 

和腳本fill-in-output.sh將把包含獨特的ID爲路徑unique-id/文件。這樣,您可以執行另一個將唯一標識輸出作爲輸入的任務(http://concourse.ci/running-tasks.html#inputs)並使用該唯一標識文件。

0

除了任務之外,資源會自動爲你放置文件在他們的工作目錄中。

比如我有一個管道的工作如下

jobs: 
- name: build 
    plan: 
    - get: git-some-repo 
    - put: push-some-image 
     params: 
     build: git-some-repo/the-image 
    - task: Use-the-image-details 
     config: 
     platform: linux 
     image_resource: 
      type: docker-image 
      source: 
      repository: alpine 
     inputs: 
      - name: push-some-image 
     run: 
      path: sh 
      args: 
      - -exc 
      - | 
      ls -lrt push-some-image 
      cat push-some-image/repository 
      cat push-some-image/digest 

好看到圖像推的細節從push-some-image

+ cat push-some-image/repository 
xxxxxxxxx.dkr.ecr.eu-west-1.amazonaws.com/path/image 
+ cat push-some-image/digest 
sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
0

傳遞數據內作業的任務可以很容易地與輸入完成/輸出工件(文件),正如Clara Fu指出的那樣。

對於作業之間的情況,當簡單例如'string'數據必須被傳遞,並且使用git是一種矯枉過正,'keyval'資源[1]似乎是一個很好的解決方案。自述文件描述了數據作爲標準屬性文件進行存儲和管理。

  1. https://github.com/SWCE/keyval-resource