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