github.com/elopio/cli@v6.21.2-0.20160902224010-ea909d1fdb2f+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    - shipit
   158    - publish-edge-archives
   159    - publish-final-release
   160  - name: images
   161    jobs:
   162    - create-cli-ci-image
   163  
   164  jobs:
   165  - name: units
   166    serial: true
   167    plan:
   168    - aggregate:
   169      - get: cli
   170        trigger: true
   171      - get: final-cli
   172      - get: cli-ci
   173    - aggregate:
   174      - task: units-linux
   175        file: cli-ci/ci/cli/tasks/units-linux.yml
   176        on_failure:
   177           put: slack-alert
   178           params:
   179             channel: '#cli-firehose'
   180             text: "linux unit tests failed OR errored :("
   181      - task: units-osx
   182        file: cli-ci/ci/cli/tasks/units-osx.yml
   183        on_failure:
   184           put: slack-alert
   185           params:
   186             channel: '#cli-firehose'
   187             text: "osx unit tests failed OR errored :("
   188      - task: units-windows
   189        file: cli-ci/ci/cli/tasks/units-windows.yml
   190        on_failure:
   191           put: slack-alert
   192           params:
   193             channel: '#cli-firehose'
   194             text: "windows unit tests failed OR errored :("
   195      - task: lint
   196        file: cli-ci/ci/cli/tasks/lint.yml
   197  
   198  - name: build-binaries
   199    serial: true
   200    plan:
   201    - aggregate:
   202      - get: cli
   203        trigger: true
   204        passed: [units]
   205      - get: final-cli
   206        passed: [units]
   207      - get: cli-ci
   208    - aggregate:
   209      - task: build
   210        file: cli-ci/ci/cli/tasks/build-binaries.yml
   211        on_failure:
   212           put: slack-alert
   213           params:
   214             channel: '#cli-firehose'
   215             text: "build binaries failed OR errored :("
   216      - task: build-osx
   217        file: cli-ci/ci/cli/tasks/build-osx-binary.yml
   218        on_failure:
   219           put: slack-alert
   220           params:
   221             channel: '#cli-firehose'
   222             text: "build osx binaries failed OR errored :("
   223    - task: sign-windows-binary
   224      file: cli-ci/ci/cli/tasks/sign-windows-binary.yml
   225      params:
   226        SIGNTOOL_CERT_PATH: {{signtool-cert-path}}
   227        SIGNTOOL_CERT_PASSWORD: {{signtool-cert-password}}
   228      on_failure:
   229         put: slack-alert
   230         params:
   231           channel: '#cli-firehose'
   232           text: "signing binaries failed OR errored :("
   233    - task: combine-binaries
   234      file: cli-ci/ci/cli/tasks/combine-binaries.yml
   235    - put: cf-cli-binaries
   236      params:
   237        file: compiled/cf-cli-binaries.tgz
   238  
   239  - name: gats
   240    serial: true
   241    plan:
   242    - aggregate:
   243      - get: cf-cli-binaries
   244        trigger: true
   245        passed: [build-binaries]
   246      - get: final-cli
   247        passed: [build-binaries]
   248      - get: cli
   249        passed: [build-binaries]
   250      - get: cli-acceptance-tests
   251      - get: cli-ci
   252      - put: bosh-lite-lock
   253        resource: bosh-lites-dea-pool
   254        params:
   255          acquire: true
   256    - aggregate:
   257      - do:
   258        - task: linux
   259          file: cli-ci/ci/cli/tasks/gats-linux.yml
   260        - task: windows
   261          file: cli-ci/ci/cli/tasks/gats-windows.yml
   262          params:
   263            ADMIN_USER: {{bosh-lite-admin-username}}
   264            ADMIN_PASSWORD: {{bosh-lite-admin-password}}
   265        on_failure:
   266           put: slack-alert
   267           params:
   268             channel: '#cli-firehose'
   269             text: "gats failed OR errored :("
   270      ensure:
   271        put: bosh-lites-dea-pool
   272        params:
   273          release: bosh-lite-lock
   274  
   275  - name: cats-linux
   276    serial: true
   277    plan:
   278    - aggregate:
   279      - get: final-cli
   280        passed: [build-binaries]
   281      - get: cli
   282        passed: [build-binaries]
   283      - get: cf-release-repo
   284        params:
   285          submodules:
   286          - src/github.com/cloudfoundry/cf-acceptance-tests
   287      - get: cf-cli-binaries
   288        trigger: true
   289        passed: [build-binaries]
   290      - get: cli-ci
   291      - put: bosh-lite-lock
   292        resource: bosh-lites-dea-pool
   293        params:
   294          acquire: true
   295    - aggregate:
   296      - task: cats
   297        file: cli-ci/ci/cli/tasks/cats-linux.yml
   298        params:
   299          BACKEND: dea
   300          INCLUDE_DEFAULT: true
   301          INCLUDE_INTERNET_DEPENDENT: true
   302          INCLUDE_ROUTE_SERVICES: true
   303          INCLUDE_SECURITY_GROUPS: true
   304        on_failure:
   305           put: slack-alert
   306           params:
   307             channel: '#cli-firehose'
   308             text: "cats linux failed OR errored :("
   309      - task: cats-services
   310        file: cli-ci/ci/cli/tasks/cats-linux.yml
   311        params:
   312          INCLUDE_SERVICES: true
   313        on_failure:
   314           put: slack-alert
   315           params:
   316             channel: '#cli-firehose'
   317             text: "cats services linux failed OR errored :("
   318      ensure:
   319        put: bosh-lites-dea-pool
   320        params:
   321          release: bosh-lite-lock
   322  
   323  - name: cats-diego
   324    serial: true
   325    plan:
   326    - aggregate:
   327      - get: final-cli
   328        passed: [build-binaries]
   329      - get: cli
   330        passed: [build-binaries]
   331      - get: cf-release-repo
   332        params:
   333          submodules:
   334          - src/github.com/cloudfoundry/cf-acceptance-tests
   335      - get: cf-cli-binaries
   336        trigger: true
   337        passed: [build-binaries]
   338      - get: cli-ci
   339      - put: bosh-lite-lock
   340        resource: bosh-lites-diego-pool
   341        params:
   342          acquire: true
   343    - task: linux
   344      file: cli-ci/ci/cli/tasks/cats-linux.yml
   345      params:
   346        BACKEND: diego
   347        INCLUDE_DEFAULT: true
   348        INCLUDE_BACKEND_COMPATIBILITY: true
   349        INCLUDE_DIEGO_DOCKER: true
   350        INCLUDE_DIEGO_SSH: true
   351        INCLUDE_INTERNET_DEPENDENT: true
   352        INCLUDE_ROUTE_SERVICES: true
   353        INCLUDE_SECURITY_GROUPS: true
   354      ensure:
   355        put: bosh-lites-diego-pool
   356        params:
   357          release: bosh-lite-lock
   358      on_failure:
   359         put: slack-alert
   360         params:
   361           channel: '#cli-firehose'
   362           text: "cats diego failed OR errored :("
   363  
   364  - name: cats-windows
   365    serial: true
   366    plan:
   367    - aggregate:
   368      - get: cf-cli-binaries
   369        trigger: true
   370        passed: [build-binaries]
   371      - get: final-cli
   372        passed: [build-binaries]
   373      - get: cli
   374        passed: [build-binaries]
   375      - get: cf-release-repo
   376        params:
   377          submodules:
   378          - src/github.com/cloudfoundry/cf-acceptance-tests
   379      - get: cli-ci
   380      - put: bosh-lite-lock
   381        resource: bosh-lites-dea-pool
   382        params:
   383          acquire: true
   384    - task: cats
   385      file: cli-ci/ci/cli/tasks/cats-windows.yml
   386      params:
   387        ADMIN_USER: {{bosh-lite-admin-username}}
   388        ADMIN_PASSWORD: {{bosh-lite-admin-password}}
   389      ensure:
   390        put: bosh-lites-dea-pool
   391        params:
   392          release: bosh-lite-lock
   393      on_failure:
   394         put: slack-alert
   395         params:
   396           channel: '#cli-firehose'
   397           text: "cats windows failed OR errored :("
   398  
   399  - name: create-installers
   400    serial: true
   401    plan:
   402    - aggregate:
   403      - get: final-cli
   404        passed: [cats-linux, cats-windows, cats-diego, gats]
   405      - get: cli
   406        passed: [cats-linux, cats-windows, cats-diego, gats]
   407      - get: cf-cli-binaries
   408        trigger: true
   409        passed: [cats-linux, cats-windows, cats-diego, gats]
   410      - get: cli-private
   411      - get: cli-ci
   412    - aggregate:
   413      - do:
   414        - task: windows
   415          file: cli-ci/ci/cli/tasks/create-installers-windows.yml
   416          params:
   417            SIGNTOOL_CERT_PATH: {{signtool-cert-path}}
   418            SIGNTOOL_CERT_PASSWORD: {{signtool-cert-password}}
   419        - task: unix
   420          file: cli-ci/ci/cli/tasks/create-installers.yml
   421        on_failure:
   422           put: slack-alert
   423           params:
   424             channel: '#cli-firehose'
   425             text: "create installers failed OR errored :("
   426    - aggregate:
   427      - put: cf-cli-installer-win32
   428        params:
   429          file: winstallers/cf-cli-installer_win32.zip
   430      - put: cf-cli-installer-win64
   431        params:
   432          file: winstallers/cf-cli-installer_winx64.zip
   433      - put: cf-cli-installers
   434        params:
   435          file: installers/cf-cli-installers.tgz
   436  
   437  - name: publish-edge-archives
   438    serial: true
   439    plan:
   440    - aggregate:
   441      - get: cf-cli-binaries
   442        trigger: true
   443        passed: [create-installers]
   444      - get: cli
   445        passed: [create-installers]
   446      - get: cf-cli-installers
   447        passed: [create-installers]
   448      - get: cf-cli-installer-win32
   449        passed: [create-installers]
   450      - get: cf-cli-installer-win64
   451        passed: [create-installers]
   452      - get: cli-ci
   453    - task: publish
   454      file: cli-ci/ci/cli/tasks/publish-edge-archives.yml
   455      params:
   456        AWS_ACCESS_KEY_ID: {{release-bucket-access-key-id}}
   457        AWS_SECRET_ACCESS_KEY: {{release-bucket-secret-access-key}}
   458      on_failure:
   459         put: slack-alert
   460         params:
   461           channel: '#cli-firehose'
   462           text: "publish edge archives failed OR errored :("
   463    - put: cf-cli-tracker
   464      params:
   465        repos:
   466        - cli
   467  
   468  - name: shipit
   469    serial: true
   470    plan:
   471    - aggregate:
   472      - get: final-cli
   473        trigger: true
   474        passed: [create-installers]
   475      - get: cli
   476        passed: [create-installers]
   477      - get: cf-cli-binaries
   478        passed: [create-installers]
   479      - get: cf-cli-installers
   480        passed: [create-installers]
   481      - get: cf-cli-installer-win32
   482        passed: [create-installers]
   483      - get: cf-cli-installer-win64
   484        passed: [create-installers]
   485  
   486  - name: publish-final-release
   487    serial: true
   488    plan:
   489    - aggregate:
   490      - get: final-cli
   491        trigger: true
   492        passed: [shipit]
   493      - get: cli
   494        passed: [shipit]
   495      - get: cf-cli-binaries
   496        passed: [shipit]
   497      - get: cf-cli-installers
   498        passed: [shipit]
   499      - get: cf-cli-installer-win32
   500        passed: [shipit]
   501      - get: cf-cli-installer-win64
   502        passed: [shipit]
   503      - get: cli-ci
   504      - get: homebrew-tap
   505      - get: cli-private
   506    - task: publish
   507      file: cli-ci/ci/cli/tasks/publish-final-release.yml
   508      params:
   509        AWS_ACCESS_KEY_ID: {{release-bucket-access-key-id}}
   510        AWS_SECRET_ACCESS_KEY: {{release-bucket-secret-access-key}}
   511      on_failure:
   512         put: slack-alert
   513         params:
   514           channel: '#cli-firehose'
   515           text: "publish final release failed OR errored :("
   516    - task: update-brew-formula
   517      file: cli-ci/ci/cli/tasks/update-brew-formula.yml
   518      on_failure:
   519         put: slack-alert
   520         params:
   521           channel: '#cli-firehose'
   522           text: "Update brew formula failed OR errored :("
   523    - put: homebrew-tap
   524      params:
   525        repository: update-brew-formula-output/homebrew-tap
   526    - task: publish-debian
   527      file: cli-ci/ci/cli/tasks/publish-debian.yml
   528      params:
   529        GPG_KEY: {{gpg_key}}
   530        KEY_ID:  {{gpg_key_id}}
   531        AWS_SECRET_ACCESS_KEY: {{debian_secret_access_key}}
   532        AWS_ACCESS_KEY_ID: {{debian_access_key_id}}
   533  
   534  - name: create-cli-ci-image
   535    serial: true
   536    plan:
   537    - aggregate:
   538      - get: cli-ci-dockerfile
   539        trigger: true
   540      - get: golang
   541        trigger: true
   542        params: {save: true}
   543    - put: cf-cli-image
   544      params:
   545        load_base: golang
   546        build: cli-ci-dockerfile/ci