1*8975f5c5SAndroid Build Coastguard Worker# 3pp_common 2*8975f5c5SAndroid Build Coastguard Worker 3*8975f5c5SAndroid Build Coastguard WorkerContains helper scripts for chromium 3pp configs. 4*8975f5c5SAndroid Build Coastguard Worker 5*8975f5c5SAndroid Build Coastguard Worker## Usage 6*8975f5c5SAndroid Build Coastguard Worker 7*8975f5c5SAndroid Build Coastguard WorkerMost scripts assume the following `3pp.pb` format, which does as little as 8*8975f5c5SAndroid Build Coastguard Workerpossible in the recipes so that scripts can be tested locally. 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Worker``` 11*8975f5c5SAndroid Build Coastguard Workercreate { 12*8975f5c5SAndroid Build Coastguard Worker source { 13*8975f5c5SAndroid Build Coastguard Worker script { 14*8975f5c5SAndroid Build Coastguard Worker name: "3pp.py" 15*8975f5c5SAndroid Build Coastguard Worker use_fetch_checkout_workflow: true 16*8975f5c5SAndroid Build Coastguard Worker } 17*8975f5c5SAndroid Build Coastguard Worker } 18*8975f5c5SAndroid Build Coastguard Worker 19*8975f5c5SAndroid Build Coastguard Worker build { 20*8975f5c5SAndroid Build Coastguard Worker install: ["3pp.py", "install"] 21*8975f5c5SAndroid Build Coastguard Worker # Any 3pp packages here are added to PATH by recipes. 22*8975f5c5SAndroid Build Coastguard Worker # For local testing, they must already exist on your PATH. 23*8975f5c5SAndroid Build Coastguard Worker tool: "chromium/third_party/maven" 24*8975f5c5SAndroid Build Coastguard Worker } 25*8975f5c5SAndroid Build Coastguard Worker} 26*8975f5c5SAndroid Build Coastguard Worker 27*8975f5c5SAndroid Build Coastguard Workerupload { 28*8975f5c5SAndroid Build Coastguard Worker # Assuming 3pp.pb is in //third_party/foo/bar/3pp/3pp.pb 29*8975f5c5SAndroid Build Coastguard Worker pkg_prefix: "chromium/third_party/foo" 30*8975f5c5SAndroid Build Coastguard Worker universal: true 31*8975f5c5SAndroid Build Coastguard Worker} 32*8975f5c5SAndroid Build Coastguard Worker``` 33*8975f5c5SAndroid Build Coastguard Worker 34*8975f5c5SAndroid Build Coastguard WorkerFlow for local testing: 35*8975f5c5SAndroid Build Coastguard Worker 36*8975f5c5SAndroid Build Coastguard Worker``` 37*8975f5c5SAndroid Build Coastguard Worker# Install any tools needed (that are listed as "tools" in 3pp.pb") 38*8975f5c5SAndroid Build Coastguard Worker$ sudo apt-get install maven 39*8975f5c5SAndroid Build Coastguard Worker 40*8975f5c5SAndroid Build Coastguard Worker# Tests all three commands. 41*8975f5c5SAndroid Build Coastguard Worker$ 3pp/3pp.py local-test 42*8975f5c5SAndroid Build Coastguard Worker``` 43*8975f5c5SAndroid Build Coastguard Worker 44*8975f5c5SAndroid Build Coastguard WorkerTo test individual steps: 45*8975f5c5SAndroid Build Coastguard Worker``` 46*8975f5c5SAndroid Build Coastguard Worker$ 3pp/3pp.py latest 47*8975f5c5SAndroid Build Coastguard Workersomeversion.somehash 48*8975f5c5SAndroid Build Coastguard Worker 49*8975f5c5SAndroid Build Coastguard Worker$ 3pp/3pp.py checkout /tmp/foo --version someversion.somehash 50*8975f5c5SAndroid Build Coastguard Worker 51*8975f5c5SAndroid Build Coastguard Worker$ 3pp/3pp.py install out unused_dep_dir --version someversion.somehash --checkout-dir /tmp/foo 52*8975f5c5SAndroid Build Coastguard Worker``` 53*8975f5c5SAndroid Build Coastguard Worker 54*8975f5c5SAndroid Build Coastguard Worker## References 55*8975f5c5SAndroid Build Coastguard Worker 56*8975f5c5SAndroid Build Coastguard Worker* [`//docs/docs/cipd_and_3pp.md`](/docs/cipd_and_3pp.md) 57*8975f5c5SAndroid Build Coastguard Worker* [`//build/recipes/recipe_modules/chromium_3pp/api.py`]https://source.chromium.org/chromium/infra/infra_superproject/+/main:build/recipes/recipe_modules/chromium_3pp/api.py) 58