Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Unified Diff: recipes/recipes/build_conda_cipd_pkg.py

Issue 2041313002: infra: check in recipes running on master.chromium.infra (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: TODO Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « recipes/recipes.py ('k') | recipes/recipes/build_conda_cipd_pkg.expected/linux.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: recipes/recipes/build_conda_cipd_pkg.py
diff --git a/recipes/recipes/build_conda_cipd_pkg.py b/recipes/recipes/build_conda_cipd_pkg.py
new file mode 100644
index 0000000000000000000000000000000000000000..9fd66c3da1ea14f15a569507876e226b4047240a
--- /dev/null
+++ b/recipes/recipes/build_conda_cipd_pkg.py
@@ -0,0 +1,90 @@
+# Copyright 2015 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.
+
+"""Recipe to build CIPD package with sealed Conda environment.
+
+Supposed to be used from manually triggered Buildbot builders. We aren't
+expecting rebuilding this environment often, so setting up and periodic schedule
+is a waste of resources.
+
+To build a new package for all platforms:
+1. Manually trigger all builders by clicking buttons in Buildbot.
+2. Once they all complete, tag the with some release identifier by running:
+ ./cipd set-tag infra/conda_python/scientific/ \
+ -tag=release:<name> \
+ -version=latest
+3. Update Puppet configs to use 'release:<name>' as a version.
+"""
+
+DEPS = [
+ 'build/cipd',
+ 'build/conda',
+ 'build/file',
+ 'recipe_engine/path',
+ 'recipe_engine/platform',
+ 'recipe_engine/properties',
+]
+
+
+# See https://repo.continuum.io/miniconda/. Miniconda3 is not supported.
+CONDA_VERSION = 'Miniconda2-3.18.3'
+
+
+# These conda packages will be installed into Conda environment.
+EXTRA_CONDA_PACKAGES = [
+ 'matplotlib',
+ 'numpy',
+ 'scipy',
+]
+
+
+def RunSteps(api):
+ api.cipd.install_client()
+ cipd_pkg_name = 'infra/conda_python/scientific/' + api.cipd.platform_suffix()
+ cipd_pkg_file = api.path['slave_build'].join('conda_python.cipd')
+
+ # Prepare staging directory to install conda into.
+ staging_dir = api.path['slave_build'].join('conda_staging_dir')
+ api.file.rmtree('cleaning staging dir', staging_dir)
+
+ # Install miniconda and all Conda packages, package in CIPD and upload.
+ with api.conda.install(CONDA_VERSION, staging_dir) as conda:
+ for pkg in EXTRA_CONDA_PACKAGES:
+ conda.install(pkg)
+ try:
+ conda.convert_to_cipd_package(cipd_pkg_name, cipd_pkg_file)
+ api.cipd.set_service_account_credentials(
+ api.cipd.default_bot_service_account_credentials)
+ tags = {
+ 'buildbot_build': '%s/%s/%s' % (
+ api.properties['mastername'],
+ api.properties['buildername'],
+ api.properties['buildnumber']),
+ 'conda': CONDA_VERSION.replace('.', '-'),
+ }
+ api.cipd.register(
+ package_name=cipd_pkg_name,
+ package_path=cipd_pkg_file,
+ refs=['latest'],
+ tags=tags)
+ finally:
+ api.file.remove('remove *.cipd file', cipd_pkg_file)
+
+
+def GenTests(api):
+ yield (
+ api.test('linux') +
+ api.platform.name('linux') +
+ api.properties.generic(path_config='kitchen')
+ )
+ yield (
+ api.test('mac') +
+ api.platform.name('mac') +
+ api.properties.generic(path_config='kitchen')
+ )
+ yield (
+ api.test('win') +
+ api.platform.name('win') +
+ api.properties.generic(path_config='kitchen')
+ )
« no previous file with comments | « recipes/recipes.py ('k') | recipes/recipes/build_conda_cipd_pkg.expected/linux.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698