github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+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      - bin
    17      - ci
    18      - README.md
    19      - .github
    20      - prevent_extra_args_v7.go
    21      - actor/v7action
    22      - actor/v7pushaction
    23      - command/v7
    24      - integration/v7
    25  
    26  - name: cli-i18n
    27    type: git
    28    source:
    29      uri: https://github.com/cloudfoundry/cli-i18n
    30      branch: master
    31  
    32  - name: cli-ci
    33    type: git
    34    source:
    35      uri: https://github.com/cloudfoundry/cli
    36      branch: master
    37      paths:
    38      - bin
    39      - ci
    40  
    41  - name: cf-acceptance-tests
    42    type: git
    43    source:
    44      uri: https://github.com/cloudfoundry/cf-acceptance-tests
    45      branch: master
    46  
    47  - name: cf-deployment-concourse-tasks
    48    type: git
    49    source:
    50      uri: https://github.com/cloudfoundry/cf-deployment-concourse-tasks
    51      tag_filter: v7.*
    52  
    53  - name: cf-cli-binaries
    54    type: s3
    55    source:
    56      bucket: ((staging-bucket-name))
    57      access_key_id: ((cli-team-aws-s3-access-key-id))
    58      secret_access_key: ((cli-team-aws-s3-secret-access-key))
    59      versioned_file: cf-cli-binaries.tgz
    60  
    61  - name: edge-linux-binary-32
    62    type: s3
    63    source:
    64      bucket: cf-cli-releases
    65      access_key_id: ((cli-team-aws-s3-access-key-id))
    66      secret_access_key: ((cli-team-aws-s3-secret-access-key))
    67      versioned_file: master/cf-cli_edge_linux_i686.tgz
    68      region_name: us-west-1
    69  
    70  - name: edge-linux-binary-64
    71    type: s3
    72    source:
    73      bucket: cf-cli-releases
    74      access_key_id: ((cli-team-aws-s3-access-key-id))
    75      secret_access_key: ((cli-team-aws-s3-secret-access-key))
    76      versioned_file: master/cf-cli_edge_linux_x86-64.tgz
    77      region_name: us-west-1
    78  
    79  - name: edge-osx-binary-64
    80    type: s3
    81    source:
    82      bucket: cf-cli-releases
    83      access_key_id: ((cli-team-aws-s3-access-key-id))
    84      secret_access_key: ((cli-team-aws-s3-secret-access-key))
    85      versioned_file: master/cf-cli_edge_osx.tgz
    86      region_name: us-west-1
    87  
    88  - name: edge-windows-binary-32
    89    type: s3
    90    source:
    91      bucket: cf-cli-releases
    92      access_key_id: ((cli-team-aws-s3-access-key-id))
    93      secret_access_key: ((cli-team-aws-s3-secret-access-key))
    94      versioned_file: master/cf-cli_edge_win32.zip
    95      region_name: us-west-1
    96  
    97  - name: edge-windows-binary-64
    98    type: s3
    99    source:
   100      bucket: cf-cli-releases
   101      access_key_id: ((cli-team-aws-s3-access-key-id))
   102      secret_access_key: ((cli-team-aws-s3-secret-access-key))
   103      versioned_file: master/cf-cli_edge_winx64.zip
   104      region_name: us-west-1
   105  
   106  - name: edge-deb-installer-32
   107    type: s3
   108    source:
   109      bucket: cf-cli-releases
   110      access_key_id: ((cli-team-aws-s3-access-key-id))
   111      secret_access_key: ((cli-team-aws-s3-secret-access-key))
   112      versioned_file: master/cf-cli-installer_edge_i686.deb
   113      region_name: us-west-1
   114  
   115  - name: edge-deb-installer-64
   116    type: s3
   117    source:
   118      bucket: cf-cli-releases
   119      access_key_id: ((cli-team-aws-s3-access-key-id))
   120      secret_access_key: ((cli-team-aws-s3-secret-access-key))
   121      versioned_file: master/cf-cli-installer_edge_x86-64.deb
   122      region_name: us-west-1
   123  
   124  - name: edge-redhat-installer-32
   125    type: s3
   126    source:
   127      bucket: cf-cli-releases
   128      access_key_id: ((cli-team-aws-s3-access-key-id))
   129      secret_access_key: ((cli-team-aws-s3-secret-access-key))
   130      versioned_file: master/cf-cli-installer_edge_i686.rpm
   131      region_name: us-west-1
   132  
   133  - name: edge-redhat-installer-64
   134    type: s3
   135    source:
   136      bucket: cf-cli-releases
   137      access_key_id: ((cli-team-aws-s3-access-key-id))
   138      secret_access_key: ((cli-team-aws-s3-secret-access-key))
   139      versioned_file: master/cf-cli-installer_edge_x86-64.rpm
   140      region_name: us-west-1
   141  
   142  - name: edge-osx-installer-64
   143    type: s3
   144    source:
   145      bucket: cf-cli-releases
   146      access_key_id: ((cli-team-aws-s3-access-key-id))
   147      secret_access_key: ((cli-team-aws-s3-secret-access-key))
   148      versioned_file: master/cf-cli-installer_edge_osx.pkg
   149      region_name: us-west-1
   150  
   151  - name: edge-windows-installer-32
   152    type: s3
   153    source:
   154      bucket: cf-cli-releases
   155      access_key_id: ((cli-team-aws-s3-access-key-id))
   156      secret_access_key: ((cli-team-aws-s3-secret-access-key))
   157      versioned_file: master/cf-cli-installer_edge_win32.zip
   158      region_name: us-west-1
   159  
   160  - name: edge-windows-installer-64
   161    type: s3
   162    source:
   163      bucket: cf-cli-releases
   164      access_key_id: ((cli-team-aws-s3-access-key-id))
   165      secret_access_key: ((cli-team-aws-s3-secret-access-key))
   166      versioned_file: master/cf-cli-installer_edge_winx64.zip
   167      region_name: us-west-1
   168  
   169  - name: gcp-bosh-pool
   170    type: pool
   171    source:
   172      uri: git@github.com:cloudfoundry/cli-pools
   173      private_key: ((cli-pools-github-private-key))
   174      branch: master
   175      pool: baked-potato
   176  
   177  - name: legacy-gcp-bosh-pool
   178    type: pool
   179    source:
   180      uri: git@github.com:cloudfoundry/cli-pools
   181      private_key: ((cli-pools-github-private-key))
   182      branch: master
   183      pool: kloesse
   184  
   185  - name: cf-cli-tracker
   186    type: tracker
   187    source:
   188      token: ((cf-cli-public-tracker-token))
   189      project_id: ((cf-cli-public-tracker-project-id))
   190      tracker_url: https://www.pivotaltracker.com
   191  
   192  - name: golang
   193    type: docker-image
   194    source:
   195      repository: golang
   196      tag: 1.11
   197  
   198  - name: baseimage
   199    type: docker-image
   200    source:
   201      repository: phusion/baseimage
   202      tag: latest
   203  
   204  - name: cli-ci-base-dockerfile
   205    type: git
   206    source:
   207      uri: https://github.com/cloudfoundry/cli
   208      branch: master
   209      paths: [ci/cli-base/Dockerfile]
   210  
   211  - name: cli-ci-package-dockerfile
   212    type: git
   213    source:
   214      uri: https://github.com/cloudfoundry/cli
   215      branch: master
   216      paths: [ci/cli-package/Dockerfile]
   217  
   218  - name: cf-cli-base-image
   219    type: docker-image
   220    source:
   221      repository: cfcli/cli-base
   222      username: ((dockerhub-username))
   223      email: ((dockerhub-email))
   224      password: ((dockerhub-password))
   225  
   226  - name: cf-cli-package-image
   227    type: docker-image
   228    source:
   229      repository: cfcli/cli-package
   230      username: ((dockerhub-username))
   231      email: ((dockerhub-email))
   232      password: ((dockerhub-password))
   233  
   234  - name: slack-alert
   235    type: slack-notification
   236    source:
   237      url: ((slack-webhook-url))
   238  
   239  - name: vars-store
   240    type: git
   241    source:
   242      uri: git@github.com:cloudfoundry/cli-private
   243      private_key: ((cli-private-github-private-key))
   244      branch: master
   245  
   246  groups:
   247  - name: cli
   248    jobs:
   249    - units
   250    - build-binaries
   251    - integration-linux
   252    - integration-windows
   253    - integration-legacy
   254    - cats
   255    - integration-experimental
   256    - create-installers
   257  - name: images
   258    jobs:
   259    - create-cli-base-image
   260    - create-cli-package-image
   261  
   262  jobs:
   263  - name: units
   264    serial: true
   265    plan:
   266    - aggregate:
   267      - get: cli
   268        trigger: true
   269      - get: cli-ci
   270    - aggregate:
   271      - task: units-linux
   272        file: cli-ci/ci/cli/tasks/units-linux.yml
   273        on_failure:
   274           put: slack-alert
   275           params:
   276             channel: '#cli-eng'
   277             text: |
   278               Linux unit tests failed :(
   279               $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   280      - task: units-osx
   281        file: cli-ci/ci/cli/tasks/units-osx.yml
   282        on_failure:
   283           put: slack-alert
   284           params:
   285             channel: '#cli-eng'
   286             text: |
   287               OS X unit tests failed :(
   288               $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   289      - task: units-windows
   290        tags: ["cli-windows"]
   291        file: cli-ci/ci/cli/tasks/units-windows.yml
   292        on_failure:
   293           put: slack-alert
   294           params:
   295             channel: '#cli-eng'
   296             text: |
   297               Windows unit tests failed :(
   298               $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   299  
   300  - name: build-binaries
   301    serial: true
   302    plan:
   303    - aggregate:
   304      - get: cli
   305        trigger: true
   306        passed: [units]
   307      - get: cli-ci
   308      - get: cli-i18n
   309    - task: build-i18n
   310      file: cli-ci/ci/cli/tasks/generate-i18n-resources.yml
   311      on_failure:
   312        put: slack-alert
   313        params:
   314          channel: '#cli-eng'
   315          text: |
   316            i18n generation failed :(
   317            $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   318    - task: build
   319      file: cli-ci/ci/cli/tasks/build-binaries.yml
   320      on_failure:
   321        put: slack-alert
   322        params:
   323          channel: '#cli-eng'
   324          text: |
   325            build binaries failed :(
   326            $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   327    - task: build-osx
   328      file: cli-ci/ci/cli/tasks/build-osx-binary.yml
   329      on_failure:
   330        put: slack-alert
   331        params:
   332          channel: '#cli-eng'
   333          text: |
   334            build OS X binaries failed :(
   335            $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   336    - task: combine-binaries
   337      file: cli-ci/ci/cli/tasks/combine-binaries.yml
   338    - put: cf-cli-binaries
   339      params:
   340        file: compiled/cf-cli-binaries.tgz
   341  
   342  - name: integration-linux
   343    serial: true
   344    plan:
   345    - aggregate:
   346      - get: cli
   347        passed: [build-binaries]
   348      - get: cf-cli-binaries
   349        passed: [build-binaries]
   350        trigger: true
   351      - get: cli-ci
   352      - get: vars-store
   353      - put: bosh-lock
   354        resource: gcp-bosh-pool
   355        timeout: 2h
   356        params:
   357          acquire: true
   358    - do:
   359      - task: cleanup-integration
   360        file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   361      - task: integration
   362        file: cli-ci/ci/cli/tasks/integration-linux.yml
   363        on_failure:
   364          put: slack-alert
   365          params:
   366            channel: '#cli-eng'
   367            text: |
   368              Linux integration failed :(
   369              $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   370        ensure:
   371          task: cleanup-integration
   372          file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   373        params: &integration_params
   374          CF_INT_CLIENT_ID: 'potato-face'
   375          CF_INT_CLIENT_SECRET: ((client-secret))
   376          CF_INT_DOCKER_IMAGE: ((dockerhub-private-image))
   377          CF_INT_DOCKER_USERNAME: ((dockerhub-username))
   378          CF_INT_DOCKER_PASSWORD: ((dockerhub-password))
   379          CF_INT_IGNORE_API_VERSION_CHECK: false
   380    ensure:
   381      put: gcp-bosh-pool
   382      params:
   383        release: bosh-lock
   384  
   385  - name: integration-windows
   386    serial: true
   387    plan:
   388    - aggregate:
   389      - get: cli
   390        passed: [build-binaries]
   391      - get: cf-cli-binaries
   392        passed: [build-binaries]
   393        trigger: true
   394      - get: cli-ci
   395      - get: vars-store
   396      - put: bosh-lock
   397        resource: gcp-bosh-pool
   398        timeout: 2h
   399        params:
   400          acquire: true
   401    - do:
   402      - task: cleanup-integration
   403        file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   404      - task: integration
   405        tags: ["cli-windows"]
   406        file: cli-ci/ci/cli/tasks/integration-windows.yml
   407        params:
   408          <<: *integration_params
   409        input_mapping:
   410          cf-credentials: cleanup-integration-outputs
   411        on_failure:
   412          put: slack-alert
   413          params:
   414            channel: '#cli-eng'
   415            text: |
   416              Windows integration failed :(
   417              $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   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-lock
   425  
   426  - name: integration-experimental
   427    serial: true
   428    plan:
   429    - aggregate:
   430      - get: cli
   431        passed: [build-binaries]
   432      - get: cf-cli-binaries
   433        passed: [build-binaries]
   434        trigger: true
   435      - get: cli-ci
   436      - get: vars-store
   437      - put: bosh-lock
   438        resource: gcp-bosh-pool
   439        timeout: 2h
   440        params:
   441          acquire: true
   442    - do:
   443      - task: cleanup-integration
   444        file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   445      - task: integration-windows
   446        tags: ["cli-windows"]
   447        file: cli-ci/ci/cli/tasks/integration-experimental-windows.yml
   448        params:
   449          <<: *integration_params
   450        input_mapping:
   451          cf-credentials: cleanup-integration-outputs
   452        on_failure:
   453          put: slack-alert
   454          params:
   455            channel: '#cli-eng'
   456            text: |
   457              Windows integration-experimental failed :(
   458              $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   459        ensure:
   460          task: cleanup-integration
   461          file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   462      - task: integration-linux
   463        file: cli-ci/ci/cli/tasks/integration-experimental-linux.yml
   464        on_failure:
   465          put: slack-alert
   466          params:
   467            channel: '#cli-eng'
   468            text: |
   469              Linux integration-experimental failed :(
   470              $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   471        ensure:
   472          task: cleanup-integration
   473          file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   474        params:
   475          <<: *integration_params
   476    ensure:
   477      put: gcp-bosh-pool
   478      params:
   479        release: bosh-lock
   480  
   481  - name: integration-legacy
   482    serial: true
   483    plan:
   484    - aggregate:
   485      - get: cli
   486        passed: [build-binaries]
   487      - get: cf-cli-binaries
   488        passed: [build-binaries]
   489        trigger: true
   490      - get: cli-ci
   491      - get: vars-store
   492      - put: bosh-lock
   493        resource: legacy-gcp-bosh-pool
   494        timeout: 2h
   495        params:
   496          acquire: true
   497    - do:
   498      - task: cleanup-integration
   499        file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   500      - task: integration
   501        file: cli-ci/ci/cli/tasks/integration-linux.yml
   502        params:
   503          <<: *integration_params
   504          NODES: 12
   505        on_failure:
   506          put: slack-alert
   507          params:
   508            channel: '#cli-eng'
   509            text: |
   510              Legacy integration failed :(
   511              $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   512        ensure:
   513          task: cleanup-integration
   514          file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   515    ensure:
   516      put: legacy-gcp-bosh-pool
   517      params:
   518        release: bosh-lock
   519  
   520  - name: create-installers
   521    serial: true
   522    plan:
   523    - aggregate:
   524      - get: cli
   525        passed: [integration-linux, integration-windows, integration-experimental, integration-legacy]
   526      - get: cf-cli-binaries
   527        passed: [integration-linux, integration-windows, integration-experimental, integration-legacy]
   528        trigger: true
   529      - get: cli-ci
   530    - task: extract-binaries
   531      file: cli-ci/ci/cli/tasks/extract-binaries.yml
   532      on_failure:
   533         put: slack-alert
   534         params:
   535           channel: '#cli-eng'
   536           text: "extracting the binaries in installer creation failed :("
   537    - aggregate:
   538      - task: unix
   539        file: cli-ci/ci/cli/tasks/create-installers.yml
   540        on_failure:
   541           put: slack-alert
   542           params:
   543             channel: '#cli-eng'
   544             text: "create unix installers failed :("
   545      - task: windows
   546        tags: ["cli-windows"]
   547        file: cli-ci/ci/cli/tasks/create-installers-windows.yml
   548        on_failure:
   549           put: slack-alert
   550           params:
   551             channel: '#cli-eng'
   552             text: "create windows installer failed :("
   553    - task: package-binaries
   554      file: cli-ci/ci/cli/tasks/package-binaries.yml
   555      on_failure:
   556         put: slack-alert
   557         params:
   558           channel: '#cli-eng'
   559           text: "extracting the binaries in installer creation failed :("
   560    - aggregate:
   561      - put: edge-linux-binary-32
   562        params:
   563          file: archives/cf-cli_edge_linux_i686.tgz
   564      - put: edge-linux-binary-64
   565        params:
   566          file: archives/cf-cli_edge_linux_x86-64.tgz
   567      - put: edge-osx-binary-64
   568        params:
   569          file: archives/cf-cli_edge_osx.tgz
   570      - put: edge-windows-binary-32
   571        params:
   572          file: archives/cf-cli_edge_win32.zip
   573      - put: edge-windows-binary-64
   574        params:
   575          file: archives/cf-cli_edge_winx64.zip
   576      - put: edge-deb-installer-32
   577        params:
   578          file: archives/cf-cli-installer_i686.deb
   579      - put: edge-deb-installer-64
   580        params:
   581          file: archives/cf-cli-installer_x86-64.deb
   582      - put: edge-redhat-installer-32
   583        params:
   584          file: archives/cf-cli-installer_i686.rpm
   585      - put: edge-redhat-installer-64
   586        params:
   587          file: archives/cf-cli-installer_x86-64.rpm
   588      - put: edge-osx-installer-64
   589        params:
   590          file: archives/cf-cli-installer_osx.pkg
   591      - put: edge-windows-installer-32
   592        params:
   593          file: winstallers/cf-cli-installer_win32.zip
   594      - put: edge-windows-installer-64
   595        params:
   596          file: winstallers/cf-cli-installer_winx64.zip
   597      - put: cf-cli-tracker
   598        params:
   599          repos:
   600          - cli
   601  
   602  - name: cats
   603    serial: true
   604    plan:
   605    - aggregate:
   606      - get: cli
   607        passed: [integration-linux, integration-windows, integration-experimental, integration-legacy]
   608      - get: cf-acceptance-tests
   609      - get: cf-deployment-concourse-tasks
   610      - get: cf-cli-binaries
   611        passed: [integration-linux, integration-windows, integration-experimental, integration-legacy]
   612        trigger: true
   613      - get: cli-ci
   614      - get: vars-store
   615      - put: bosh-lock
   616        resource: gcp-bosh-pool
   617        timeout: 2h
   618        params:
   619          acquire: true
   620    - do:
   621      - task: cleanup-integration
   622        file: cli-ci/ci/cli/tasks/cleanup-integration.yml
   623      - task: config
   624        file: cli-ci/ci/cli/tasks/cats-config.yml
   625        params:
   626          INCLUDE_V3: true
   627          BROKER_START_TIMEOUT: 330
   628          CF_PUSH_TIMEOUT: 210
   629          DEFAULT_TIMEOUT: 60
   630          LONG_CURL_TIMEOUT: 210
   631      - task: extract-linux-binary
   632        file: cli-ci/ci/cli/tasks/extract-linux-binary.yml
   633      - task: run-tests
   634        file: cf-deployment-concourse-tasks/run-cats-with-provided-cli/task.yml
   635        input_mapping:
   636          integration-config: cats-config
   637          cf-cli: linux-cf-binary
   638        params:
   639          NODES: 16
   640          SKIP_REGEXP: "transparently proxies both reserved"
   641          REPORTER_CONFIG_FILE_PATH: ""
   642          FLAKE_ATTEMPTS: 2
   643        on_failure:
   644          put: slack-alert
   645          params:
   646            channel: '#cli-eng'
   647            text: |
   648              CATs Linux failed :(
   649              $ATC_EXTERNAL_URL/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME
   650    ensure:
   651      put: gcp-bosh-pool
   652      params:
   653        release: bosh-lock
   654  
   655  
   656  - name: create-cli-base-image
   657    serial: true
   658    plan:
   659    - aggregate:
   660      - get: cli-ci-base-dockerfile
   661        trigger: true
   662      - get: golang
   663        trigger: true
   664        params: {save: true}
   665    - put: cf-cli-base-image
   666      params:
   667        load_base: golang
   668        build: cli-ci-base-dockerfile/ci/cli-base
   669  
   670  - name: create-cli-package-image
   671    serial: true
   672    plan:
   673    - aggregate:
   674      - get: cli-ci-package-dockerfile
   675        trigger: true
   676      - get: baseimage
   677        trigger: true
   678        params: {save: true}
   679    - put: cf-cli-package-image
   680      params:
   681        load_base: baseimage
   682        build: cli-ci-package-dockerfile/ci/cli-package