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