| # Copyright 2020 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from platform import platform |
| from recipe_engine.recipe_api import Property |
| |
| DEPS = [ |
| 'flutter/repo_util', |
| 'flutter/yaml', |
| 'recipe_engine/cipd', |
| 'recipe_engine/context', |
| 'recipe_engine/json', |
| 'recipe_engine/path', |
| 'recipe_engine/platform', |
| 'recipe_engine/properties', |
| 'recipe_engine/step', |
| ] |
| |
| |
| # This recipe builds the codesign CIPD package. |
| def RunSteps(api): |
| start_path = api.path['start_dir'] |
| cocoon_dir = start_path.join('cocoon') |
| cocoon_git_rev = api.repo_util.checkout( |
| 'cocoon', |
| cocoon_dir, |
| ref='refs/heads/main', |
| ) |
| |
| # Get properties from ci.yaml. |
| # Assume ci.yaml has the following properties |
| # - name: Mac codesign |
| # bringup: true |
| # postsubmit: false |
| # recipe: cocoon/codesign |
| # properties: |
| # add_recipes_cq: "true" |
| # script: device_doctor/tool/build.sh |
| # cipd_name: flutter/device_doctor/mac-amd64 |
| |
| script_path_list = api.properties.get('script') |
| cipd_full_name = api.properties.get('cipd_name') |
| project_name = cipd_full_name.split('/')[1] |
| project_path = cocoon_dir.join(project_name) |
| |
| build_file = cocoon_dir.join(script_path_list) |
| |
| cmd = [build_file] |
| if not api.platform.is_win: |
| cmd = ['bash', build_file] |
| |
| with api.context(cwd=project_path): |
| api.step('build package', cmd) |
| |
| cipd_zip_path = project_name + '.zip' |
| |
| api.cipd.build(project_path.join('build'), cipd_zip_path, cipd_full_name) |
| api.cipd.register(cipd_full_name, cipd_zip_path, refs = ["latest"]) |
| |
| |
| def GenTests(api): |
| yield api.test( |
| 'cipd_mac', |
| api.properties( |
| script='codesign/tool/build.sh', |
| cipd_name='flutter/codesign/mac-amd64' |
| ), |
| api.platform('mac', 64), |
| ) |
| |
| yield api.test( |
| 'cipd_win', |
| api.properties( |
| script='device_doctor\\tool\\build.bat', |
| cipd_name='flutter/device_doctor/windows-amd64' |
| ), |
| api.platform('win', 64), |
| ) |