This folder contains auto built/deployed public CIPD packages used by Flutter CI. These packages will be consumed from tests and auto cached to boost future runs.
Please follow these steps to add a new package.
Create a new sub directory under this folder named with the new package. Add a build.sh
script for Linux/Mac or build.bat
for Windows, and put it under a child dir tool
. This is the main script to build this package. Add necessary lib files if needed.
Note:
cipd packages
in CODEOWNERS file.This is to enable the auto build and upload. Please follow the following example format:
- name: Mac <package_name> recipe: cocoon/cipd bringup: true properties: script: cipd_packages/<package_name>/tool/build.sh cipd_name: flutter/<package_name>/mac-amd64 # Use mac-arm64 for arm64 version. device_type: none runIf: - cipd_packages/<package_name>/** - .ci.yaml
Start with bringup: true
, same as any other regular new target. Once validated in CI, remove it to enable running in the prod
environment so that artifacts are to be uploaded to CIPD.
Note: with bringup: true
, the target will be executed in a staging environment and it validates only the logic and will not upload to CIPD.
Until this step, artifacts are being uploaded to CIPD whenever a new commit is merged. It is useful to add a reference to the package, so that we can use the reference in the CI recipe. This way we won’t need to change the recipe whenever we update the package.
Googlers have default access to add a reference to a package via:
cipd set-ref flutter/PackageName/mac-amd64 -ref Reference -version InstanceID
latest
will be used based on the latest package instance.Note: for non-Googler contributors, please file an infra bug to make a reference request.
Example CL: 51547
Refer to CONTRIBUTING.md on how to contribute to recipes repository.
This is the last step to enable the package usage in the real CI. Add or update the new package to either the platform level or target level entries for your targeted repository:
dependencies: >- [ {"dependency": "chrome_and_driver", "version": "Reference"}, ]
Note: use the Reference
created above.
More details about configuration setup can be found in CI_YAML.md.