github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+incompatible/ci/cli/pipeline.yml (about)

     1  ---
     2  resource_types:
     3  - name: slack-notification
     4    type: docker-image
     5    source:
     6      repository: cfcommunity/slack-notification-resource
     7      tag: latest
     8  
     9  resources:
    10  - name: cli
    11    type: git
    12    source:
    13      uri: https://github.com/cloudfoundry/cli
    14      branch: master
    15      ignore_paths:
    16      - ci
    17      - integration
    18  
    19  - name: cli-ci
    20    type: git
    21    source:
    22      uri: https://github.com/cloudfoundry/cli
    23      branch: master
    24      paths:
    25      - bin
    26      - ci
    27  
    28  - name: cli-integration
    29    type: git
    30    source:
    31      uri: https://github.com/cloudfoundry/cli
    32      branch: master
    33      paths:
    34      - integration
    35  
    36  - name: cf-release-repo
    37    type: git
    38    source:
    39      uri: https://github.com/cloudfoundry/cf-release
    40      branch: master
    41      tag_filter: "v*"
    42  
    43  - name: cf-cli-binaries
    44    type: s3
    45    source:
    46      bucket: {{staging-bucket-name}}
    47      access_key_id: {{cli-production-access-key-id}}
    48      secret_access_key: {{cli-production-secret-access-key}}
    49      versioned_file: cf-cli-binaries.tgz
    50  
    51  - name: edge-linux-binary-32
    52    type: s3
    53    source:
    54      bucket: cf-cli-releases
    55      access_key_id: {{cli-production-access-key-id}}
    56      secret_access_key: {{cli-production-secret-access-key}}
    57      versioned_file: master/cf-cli_edge_linux_i686.tgz
    58      region_name: us-west-1
    59  
    60  - name: edge-linux-binary-64
    61    type: s3
    62    source:
    63      bucket: cf-cli-releases
    64      access_key_id: {{cli-production-access-key-id}}
    65      secret_access_key: {{cli-production-secret-access-key}}
    66      versioned_file: master/cf-cli_edge_linux_x86-64.tgz
    67      region_name: us-west-1
    68  
    69  - name: edge-osx-binary-64
    70    type: s3
    71    source:
    72      bucket: cf-cli-releases
    73      access_key_id: {{cli-production-access-key-id}}
    74      secret_access_key: {{cli-production-secret-access-key}}
    75      versioned_file: master/cf-cli_edge_osx.tgz
    76      region_name: us-west-1
    77  
    78  - name: edge-windows-binary-32
    79    type: s3
    80    source:
    81      bucket: cf-cli-releases
    82      access_key_id: {{cli-production-access-key-id}}
    83      secret_access_key: {{cli-production-secret-access-key}}
    84      versioned_file: master/cf-cli_edge_win32.zip
    85      region_name: us-west-1
    86  
    87  - name: edge-windows-binary-64
    88    type: s3
    89    source:
    90      bucket: cf-cli-releases
    91      access_key_id: {{cli-production-access-key-id}}
    92      secret_access_key: {{cli-production-secret-access-key}}
    93      versioned_file: master/cf-cli_edge_winx64.zip
    94      region_name: us-west-1
    95  
    96  - name: edge-deb-installer-32
    97    type: s3
    98    source:
    99      bucket: cf-cli-releases
   100      access_key_id: {{cli-production-access-key-id}}
   101      secret_access_key: {{cli-production-secret-access-key}}
   102      versioned_file: master/cf-cli-installer_edge_i686.deb
   103      region_name: us-west-1
   104  
   105  - name: edge-deb-installer-64
   106    type: s3
   107    source:
   108      bucket: cf-cli-releases
   109      access_key_id: {{cli-production-access-key-id}}
   110      secret_access_key: {{cli-production-secret-access-key}}
   111      versioned_file: master/cf-cli-installer_edge_x86-64.deb
   112      region_name: us-west-1
   113  
   114  - name: edge-redhat-installer-32
   115    type: s3
   116    source:
   117      bucket: cf-cli-releases
   118      access_key_id: {{cli-production-access-key-id}}
   119      secret_access_key: {{cli-production-secret-access-key}}
   120      versioned_file: master/cf-cli-installer_edge_i686.rpm
   121      region_name: us-west-1
   122  
   123  - name: edge-redhat-installer-64
   124    type: s3
   125    source:
   126      bucket: cf-cli-releases
   127      access_key_id: {{cli-production-access-key-id}}
   128      secret_access_key: {{cli-production-secret-access-key}}
   129      versioned_file: master/cf-cli-installer_edge_x86-64.rpm
   130      region_name: us-west-1
   131  
   132  - name: edge-osx-installer-64
   133    type: s3
   134    source:
   135      bucket: cf-cli-releases
   136      access_key_id: {{cli-production-access-key-id}}
   137      secret_access_key: {{cli-production-secret-access-key}}
   138      versioned_file: master/cf-cli-installer_edge_osx.pkg
   139      region_name: us-west-1
   140  
   141  - name: edge-windows-installer-32
   142    type: s3
   143    source:
   144      bucket: cf-cli-releases
   145      access_key_id: {{cli-production-access-key-id}}
   146      secret_access_key: {{cli-production-secret-access-key}}
   147      versioned_file: master/cf-cli-installer_edge_win32.zip
   148      region_name: us-west-1
   149  
   150  - name: edge-windows-installer-64
   151    type: s3
   152    source:
   153      bucket: cf-cli-releases
   154      access_key_id: {{cli-production-access-key-id}}
   155      secret_access_key: {{cli-production-secret-access-key}}
   156      versioned_file: master/cf-cli-installer_edge_winx64.zip
   157      region_name: us-west-1
   158  
   159  - name: bosh-lites-dea-pool
   160    type: pool
   161    source:
   162      uri: git@github.com:cloudfoundry/cli-pools
   163      private_key: {{cli-pools-github-private-key}}
   164      branch: master
   165      pool: bosh-lites-dea
   166  
   167  - name: bosh-lites-diego-pool
   168    type: pool
   169    source:
   170      uri: git@github.com:cloudfoundry/cli-pools
   171      private_key: {{cli-pools-github-private-key}}
   172      branch: master
   173      pool: bosh-lites-diego
   174  
   175  - name: cf-cli-tracker
   176    type: tracker
   177    source:
   178      token: {{cf-cli-public-tracker-token}}
   179      project_id: {{cf-cli-public-tracker-project-id}}
   180      tracker_url: https://www.pivotaltracker.com
   181  
   182  - name: golang
   183    type: docker-image
   184    source:
   185      repository: golang
   186      tag: latest
   187  
   188  - name: cli-ci-dockerfile
   189    type: git
   190    source:
   191      uri: https://github.com/cloudfoundry/cli
   192      branch: master
   193      paths: [ci/Dockerfile]
   194  
   195  - name: cf-cli-image
   196    type: docker-image
   197    source:
   198      repository: cloudfoundry/cli-ci
   199      username: {{dockerhub-username}}
   200      email: {{dockerhub-email}}
   201      password: {{dockerhub-password}}
   202  
   203  - name: slack-alert
   204    type: slack-notification
   205    source:
   206      url: {{slack-webhook-url}}
   207  
   208  groups:
   209  - name: cli
   210    jobs:
   211    - units
   212    - build-binaries
   213    - integration-windows
   214    - integration-linux
   215    - cats-linux
   216    - cats-diego
   217    - cats-windows
   218    - create-installers
   219  - name: images
   220    jobs:
   221    - create-cli-ci-image
   222  
   223  jobs:
   224  - name: units
   225    serial: true
   226    plan:
   227    - aggregate:
   228      - get: cli
   229        trigger: true
   230        depth: 3
   231      - get: cli-ci
   232        depth: 3
   233    - aggregate:
   234      - task: units-linux
   235        file: cli-ci/ci/cli/tasks/units-linux.yml
   236        on_failure:
   237           put: slack-alert
   238           params:
   239             channel: '#cli-firehose'
   240             text: "linux unit tests failed OR errored :("
   241      - task: units-osx
   242        file: cli-ci/ci/cli/tasks/units-osx.yml
   243        on_failure:
   244           put: slack-alert
   245           params:
   246             channel: '#cli-firehose'
   247             text: "osx unit tests failed OR errored :("
   248      - task: units-windows
   249        file: cli-ci/ci/cli/tasks/units-windows.yml
   250        on_failure:
   251           put: slack-alert
   252           params:
   253             channel: '#cli-firehose'
   254             text: "windows unit tests failed OR errored :("
   255      - task: lint
   256        file: cli-ci/ci/cli/tasks/lint.yml
   257  
   258  - name: build-binaries
   259    serial: true
   260    plan:
   261    - aggregate:
   262      - get: cli
   263        trigger: true
   264        passed: [units]
   265        depth: 3
   266      - get: cli-ci
   267        depth: 3
   268    - aggregate:
   269      - task: build
   270        file: cli-ci/ci/cli/tasks/build-binaries.yml
   271        on_failure:
   272           put: slack-alert
   273           params:
   274             channel: '#cli-firehose'
   275             text: "build binaries failed OR errored :("
   276      - task: build-osx
   277        file: cli-ci/ci/cli/tasks/build-osx-binary.yml
   278        on_failure:
   279           put: slack-alert
   280           params:
   281             channel: '#cli-firehose'
   282             text: "build osx binaries failed OR errored :("
   283    - task: combine-binaries
   284      file: cli-ci/ci/cli/tasks/combine-binaries.yml
   285    - put: cf-cli-binaries
   286      params:
   287        file: compiled/cf-cli-binaries.tgz
   288  
   289  - name: integration-windows
   290    serial: true
   291    plan:
   292    - aggregate:
   293      - get: cli
   294        trigger: true
   295        passed: [build-binaries]
   296        depth: 3
   297      - get: cf-cli-binaries
   298        passed: [build-binaries]
   299      - get: cli-ci
   300        depth: 3
   301      - get: cli-integration
   302        depth: 3
   303      - put: bosh-lite-lock
   304        resource: bosh-lites-dea-pool
   305        params:
   306          acquire: true
   307    - do:
   308      - task: cleanup-integration
   309        file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   310      - task: integration
   311        file: cli-ci/ci/cli/tasks/integration-windows.yml
   312        ensure:
   313          task: cleanup-integration
   314          file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   315      on_failure:
   316         put: slack-alert
   317         params:
   318           channel: '#cli-firehose'
   319           text: "window integration failed OR errored :("
   320      ensure:
   321        put: bosh-lites-dea-pool
   322        params:
   323          release: bosh-lite-lock
   324  
   325  - name: integration-linux
   326    serial: true
   327    plan:
   328    - aggregate:
   329      - get: cli
   330        trigger: true
   331        passed: [build-binaries]
   332        depth: 3
   333      - get: cf-cli-binaries
   334        passed: [build-binaries]
   335      - get: cli-ci
   336        depth: 3
   337      - get: cli-integration
   338        depth: 3
   339      - put: bosh-lite-lock
   340        resource: bosh-lites-dea-pool
   341        params:
   342          acquire: true
   343    - do:
   344      - task: cleanup-integration
   345        file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   346      - task: integration
   347        file: cli-ci/ci/cli/tasks/integration-linux.yml
   348        ensure:
   349          task: cleanup-integration
   350          file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   351      on_failure:
   352         put: slack-alert
   353         params:
   354           channel: '#cli-firehose'
   355           text: "linux integration failed OR errored :("
   356      ensure:
   357        put: bosh-lites-dea-pool
   358        params:
   359          release: bosh-lite-lock
   360  
   361  - name: cats-linux
   362    serial: true
   363    plan:
   364    - aggregate:
   365      - get: cli
   366        trigger: true
   367        passed: [build-binaries]
   368        depth: 3
   369      - get: cf-release-repo
   370        params:
   371          submodules:
   372          - src/github.com/cloudfoundry/cf-acceptance-tests
   373      - get: cf-cli-binaries
   374        passed: [build-binaries]
   375      - get: cli-ci
   376        depth: 3
   377      - put: bosh-lite-lock
   378        resource: bosh-lites-dea-pool
   379        params:
   380          acquire: true
   381    - do:
   382      - task: cats-config
   383        file: cli-ci/ci/cli/tasks/cats-config.yml
   384        params:
   385          BACKEND: dea
   386          INCLUDE_V3: false
   387          BROKER_START_TIMEOUT: 330
   388          CF_PUSH_TIMEOUT: 210
   389          DEFAULT_TIMEOUT: 60
   390          LONG_CURL_TIMEOUT: 210
   391      - task: cats
   392        file: cli-ci/ci/cli/tasks/cats-linux.yml
   393        params:
   394          BACKEND: dea
   395          NODES: 10
   396        on_failure:
   397           put: slack-alert
   398           params:
   399             channel: '#cli-firehose'
   400             text: "cats linux failed OR errored :("
   401      ensure:
   402        put: bosh-lites-dea-pool
   403        params:
   404          release: bosh-lite-lock
   405  
   406  - name: cats-diego
   407    serial: true
   408    plan:
   409    - aggregate:
   410      - get: cli
   411        trigger: true
   412        passed: [build-binaries]
   413        depth: 3
   414      - get: cf-release-repo
   415        params:
   416          submodules:
   417          - src/github.com/cloudfoundry/cf-acceptance-tests
   418      - get: cf-cli-binaries
   419        passed: [build-binaries]
   420      - get: cli-ci
   421        depth: 3
   422      - put: bosh-lite-lock
   423        resource: bosh-lites-diego-pool
   424        params:
   425          acquire: true
   426    - do:
   427      - task: cats-config
   428        file: cli-ci/ci/cli/tasks/cats-config.yml
   429        params:
   430          BACKEND: diego
   431          INCLUDE_V3: false
   432          BROKER_START_TIMEOUT: 330
   433          CF_PUSH_TIMEOUT: 210
   434          DEFAULT_TIMEOUT: 60
   435          LONG_CURL_TIMEOUT: 210
   436      - task: cats
   437        file: cli-ci/ci/cli/tasks/cats-linux.yml
   438        params:
   439          BACKEND: diego
   440          NODES: 6
   441      ensure:
   442        put: bosh-lites-diego-pool
   443        params:
   444          release: bosh-lite-lock
   445      on_failure:
   446         put: slack-alert
   447         params:
   448           channel: '#cli-firehose'
   449           text: "cats diego failed OR errored :("
   450  
   451  - name: cats-windows
   452    serial: true
   453    plan:
   454    - aggregate:
   455      - get: cli
   456        trigger: true
   457        passed: [build-binaries]
   458        depth: 3
   459      - get: cf-cli-binaries
   460        passed: [build-binaries]
   461      - get: cf-release-repo
   462        params:
   463          submodules:
   464          - src/github.com/cloudfoundry/cf-acceptance-tests
   465      - get: cli-ci
   466        depth: 3
   467      - put: bosh-lite-lock
   468        resource: bosh-lites-dea-pool
   469        params:
   470          acquire: true
   471    - do:
   472      - task: cats-config
   473        file: cli-ci/ci/cli/tasks/cats-config.yml
   474        params:
   475          BACKEND: dea
   476          INCLUDE_V3: false
   477          BROKER_START_TIMEOUT: 330
   478          CF_PUSH_TIMEOUT: 210
   479          DEFAULT_TIMEOUT: 60
   480          LONG_CURL_TIMEOUT: 210
   481      - task: cats
   482        file: cli-ci/ci/cli/tasks/cats-windows.yml
   483        params:
   484          NODES: 10
   485      ensure:
   486        put: bosh-lites-dea-pool
   487        params:
   488          release: bosh-lite-lock
   489      on_failure:
   490         put: slack-alert
   491         params:
   492           channel: '#cli-firehose'
   493           text: "cats windows failed OR errored :("
   494  
   495  - name: create-installers
   496    serial: true
   497    plan:
   498    - aggregate:
   499      - get: cli
   500        trigger: true
   501        passed: [cats-linux, cats-windows, cats-diego, integration-windows, integration-linux]
   502        depth: 3
   503      - get: cf-cli-binaries
   504        passed: [cats-linux, cats-windows, cats-diego, integration-windows, integration-linux]
   505      - get: cli-ci
   506        depth: 3
   507    - task: extract-binaries
   508      file: cli-ci/ci/cli/tasks/extract-binaries.yml
   509      on_failure:
   510         put: slack-alert
   511         params:
   512           channel: '#cli-firehose'
   513           text: "extracting the binaries in installer creation failed OR errored :("
   514    - aggregate:
   515      - task: unix
   516        file: cli-ci/ci/cli/tasks/create-installers.yml
   517        on_failure:
   518           put: slack-alert
   519           params:
   520             channel: '#cli-firehose'
   521             text: "create unix installers failed OR errored :("
   522      - task: windows
   523        file: cli-ci/ci/cli/tasks/create-installers-windows.yml
   524        on_failure:
   525           put: slack-alert
   526           params:
   527             channel: '#cli-firehose'
   528             text: "create windows installer failed OR errored :("
   529    - task: package-binaries
   530      file: cli-ci/ci/cli/tasks/package-binaries.yml
   531      on_failure:
   532         put: slack-alert
   533         params:
   534           channel: '#cli-firehose'
   535           text: "extracting the binaries in installer creation failed OR errored :("
   536    - aggregate:
   537      - put: edge-linux-binary-32
   538        params:
   539          file: archives/cf-cli_edge_linux_i686.tgz
   540      - put: edge-linux-binary-64
   541        params:
   542          file: archives/cf-cli_edge_linux_x86-64.tgz
   543      - put: edge-osx-binary-64
   544        params:
   545          file: archives/cf-cli_edge_osx.tgz
   546      - put: edge-windows-binary-32
   547        params:
   548          file: archives/cf-cli_edge_win32.zip
   549      - put: edge-windows-binary-64
   550        params:
   551          file: archives/cf-cli_edge_winx64.zip
   552      - put: edge-deb-installer-32
   553        params:
   554          file: archives/cf-cli-installer_i686.deb
   555      - put: edge-deb-installer-64
   556        params:
   557          file: archives/cf-cli-installer_x86-64.deb
   558      - put: edge-redhat-installer-32
   559        params:
   560          file: archives/cf-cli-installer_i686.rpm
   561      - put: edge-redhat-installer-64
   562        params:
   563          file: archives/cf-cli-installer_x86-64.rpm
   564      - put: edge-osx-installer-64
   565        params:
   566          file: archives/cf-cli-installer_osx.pkg
   567      - put: edge-windows-installer-32
   568        params:
   569          file: winstallers/cf-cli-installer_win32.zip
   570      - put: edge-windows-installer-64
   571        params:
   572          file: winstallers/cf-cli-installer_winx64.zip
   573    - put: cf-cli-tracker
   574      params:
   575        repos:
   576        - cli
   577  
   578  - name: create-cli-ci-image
   579    serial: true
   580    plan:
   581    - aggregate:
   582      - get: cli-ci-dockerfile
   583        trigger: true
   584        depth: 3
   585      - get: golang
   586        trigger: true
   587        params: {save: true}
   588    - put: cf-cli-image
   589      params:
   590        load_base: golang
   591        build: cli-ci-dockerfile/ci