fune/taskcluster/docker/rust-build/splat_rust.py
CuriousLearner e67707b149 Bug 1302763 - Move docker images out of testing/docker into taskcluster/docker; r=dustin r=CuriousLearner
MozReview-Commit-ID: 7v1uCDB5qoN

--HG--
rename : testing/docker/README.md => taskcluster/docker/README.md
rename : testing/docker/REGISTRY => taskcluster/docker/REGISTRY
rename : testing/docker/android-gradle-build/Dockerfile => taskcluster/docker/android-gradle-build/Dockerfile
rename : testing/docker/android-gradle-build/README.md => taskcluster/docker/android-gradle-build/README.md
rename : testing/docker/android-gradle-build/REGISTRY => taskcluster/docker/android-gradle-build/REGISTRY
rename : testing/docker/android-gradle-build/VERSION => taskcluster/docker/android-gradle-build/VERSION
rename : testing/docker/android-gradle-build/bin/after.sh => taskcluster/docker/android-gradle-build/bin/after.sh
rename : testing/docker/android-gradle-build/bin/before.sh => taskcluster/docker/android-gradle-build/bin/before.sh
rename : testing/docker/android-gradle-build/bin/build.sh => taskcluster/docker/android-gradle-build/bin/build.sh
rename : testing/docker/android-gradle-build/bin/checkout-script.sh => taskcluster/docker/android-gradle-build/bin/checkout-script.sh
rename : testing/docker/android-gradle-build/bin/checkout-sources.sh => taskcluster/docker/android-gradle-build/bin/checkout-sources.sh
rename : testing/docker/android-gradle-build/buildprops.json => taskcluster/docker/android-gradle-build/buildprops.json
rename : testing/docker/android-gradle-build/dot-config/pip/pip.conf => taskcluster/docker/android-gradle-build/dot-config/pip/pip.conf
rename : testing/docker/android-gradle-build/oauth.txt => taskcluster/docker/android-gradle-build/oauth.txt
rename : testing/docker/base-build/Dockerfile => taskcluster/docker/base-build/Dockerfile
rename : testing/docker/base-build/HASH => taskcluster/docker/base-build/HASH
rename : testing/docker/base-build/VERSION => taskcluster/docker/base-build/VERSION
rename : testing/docker/base-build/system-setup.sh => taskcluster/docker/base-build/system-setup.sh
rename : testing/docker/base-test/Dockerfile => taskcluster/docker/base-test/Dockerfile
rename : testing/docker/base-test/HASH => taskcluster/docker/base-test/HASH
rename : testing/docker/base-test/REGISTRY => taskcluster/docker/base-test/REGISTRY
rename : testing/docker/base-test/VERSION => taskcluster/docker/base-test/VERSION
rename : testing/docker/base-test/sources.list => taskcluster/docker/base-test/sources.list
rename : testing/docker/centos6-build-upd/Dockerfile => taskcluster/docker/centos6-build-upd/Dockerfile
rename : testing/docker/centos6-build-upd/HASH => taskcluster/docker/centos6-build-upd/HASH
rename : testing/docker/centos6-build-upd/REGISTRY => taskcluster/docker/centos6-build-upd/REGISTRY
rename : testing/docker/centos6-build-upd/VERSION => taskcluster/docker/centos6-build-upd/VERSION
rename : testing/docker/centos6-build/Dockerfile => taskcluster/docker/centos6-build/Dockerfile
rename : testing/docker/centos6-build/HASH => taskcluster/docker/centos6-build/HASH
rename : testing/docker/centos6-build/REGISTRY => taskcluster/docker/centos6-build/REGISTRY
rename : testing/docker/centos6-build/VERSION => taskcluster/docker/centos6-build/VERSION
rename : testing/docker/centos6-build/hgrc => taskcluster/docker/centos6-build/hgrc
rename : testing/docker/centos6-build/system-setup.sh => taskcluster/docker/centos6-build/system-setup.sh
rename : testing/docker/decision/Dockerfile => taskcluster/docker/decision/Dockerfile
rename : testing/docker/decision/HASH => taskcluster/docker/decision/HASH
rename : testing/docker/decision/README.md => taskcluster/docker/decision/README.md
rename : testing/docker/decision/REGISTRY => taskcluster/docker/decision/REGISTRY
rename : testing/docker/decision/VERSION => taskcluster/docker/decision/VERSION
rename : testing/docker/decision/system-setup.sh => taskcluster/docker/decision/system-setup.sh
rename : testing/docker/desktop-build/Dockerfile => taskcluster/docker/desktop-build/Dockerfile
rename : testing/docker/desktop-build/bin/build.sh => taskcluster/docker/desktop-build/bin/build.sh
rename : testing/docker/desktop-build/bin/checkout-script.sh => taskcluster/docker/desktop-build/bin/checkout-script.sh
rename : testing/docker/desktop-build/bin/checkout-sources.sh => taskcluster/docker/desktop-build/bin/checkout-sources.sh
rename : testing/docker/desktop-build/buildprops.json => taskcluster/docker/desktop-build/buildprops.json
rename : testing/docker/desktop-build/dot-config/pip/pip.conf => taskcluster/docker/desktop-build/dot-config/pip/pip.conf
rename : testing/docker/desktop-build/oauth.txt => taskcluster/docker/desktop-build/oauth.txt
rename : testing/docker/desktop-test/Dockerfile => taskcluster/docker/desktop-test/Dockerfile
rename : testing/docker/desktop-test/apport => taskcluster/docker/desktop-test/apport
rename : testing/docker/desktop-test/buildprops.json => taskcluster/docker/desktop-test/buildprops.json
rename : testing/docker/desktop-test/deja-dup-monitor.desktop => taskcluster/docker/desktop-test/deja-dup-monitor.desktop
rename : testing/docker/desktop-test/dot-files/config/pip/pip.conf => taskcluster/docker/desktop-test/dot-files/config/pip/pip.conf
rename : testing/docker/desktop-test/dot-files/config/user-dirs.dirs => taskcluster/docker/desktop-test/dot-files/config/user-dirs.dirs
rename : testing/docker/desktop-test/dot-files/config/user-dirs.locale => taskcluster/docker/desktop-test/dot-files/config/user-dirs.locale
rename : testing/docker/desktop-test/dot-files/pulse/default.pa => taskcluster/docker/desktop-test/dot-files/pulse/default.pa
rename : testing/docker/desktop-test/fonts.conf => taskcluster/docker/desktop-test/fonts.conf
rename : testing/docker/desktop-test/jockey-gtk.desktop => taskcluster/docker/desktop-test/jockey-gtk.desktop
rename : testing/docker/desktop-test/motd => taskcluster/docker/desktop-test/motd
rename : testing/docker/desktop-test/release-upgrades => taskcluster/docker/desktop-test/release-upgrades
rename : testing/docker/desktop-test/taskcluster-interactive-shell => taskcluster/docker/desktop-test/taskcluster-interactive-shell
rename : testing/docker/desktop-test/tc-vcs-config.yml => taskcluster/docker/desktop-test/tc-vcs-config.yml
rename : testing/docker/desktop-test/tester.env => taskcluster/docker/desktop-test/tester.env
rename : testing/docker/desktop1604-test/Dockerfile => taskcluster/docker/desktop1604-test/Dockerfile
rename : testing/docker/desktop1604-test/apport => taskcluster/docker/desktop1604-test/apport
rename : testing/docker/desktop1604-test/buildprops.json => taskcluster/docker/desktop1604-test/buildprops.json
rename : testing/docker/desktop1604-test/deja-dup-monitor.desktop => taskcluster/docker/desktop1604-test/deja-dup-monitor.desktop
rename : testing/docker/desktop1604-test/dot-files/config/pip/pip.conf => taskcluster/docker/desktop1604-test/dot-files/config/pip/pip.conf
rename : testing/docker/desktop1604-test/dot-files/config/user-dirs.dirs => taskcluster/docker/desktop1604-test/dot-files/config/user-dirs.dirs
rename : testing/docker/desktop1604-test/dot-files/config/user-dirs.locale => taskcluster/docker/desktop1604-test/dot-files/config/user-dirs.locale
rename : testing/docker/desktop1604-test/dot-files/pulse/default.pa => taskcluster/docker/desktop1604-test/dot-files/pulse/default.pa
rename : testing/docker/desktop1604-test/fonts.conf => taskcluster/docker/desktop1604-test/fonts.conf
rename : testing/docker/desktop1604-test/jockey-gtk.desktop => taskcluster/docker/desktop1604-test/jockey-gtk.desktop
rename : testing/docker/desktop1604-test/motd => taskcluster/docker/desktop1604-test/motd
rename : testing/docker/desktop1604-test/release-upgrades => taskcluster/docker/desktop1604-test/release-upgrades
rename : testing/docker/desktop1604-test/taskcluster-interactive-shell => taskcluster/docker/desktop1604-test/taskcluster-interactive-shell
rename : testing/docker/desktop1604-test/tc-vcs-config.yml => taskcluster/docker/desktop1604-test/tc-vcs-config.yml
rename : testing/docker/desktop1604-test/tester.env => taskcluster/docker/desktop1604-test/tester.env
rename : testing/docker/image_builder/Dockerfile => taskcluster/docker/image_builder/Dockerfile
rename : testing/docker/image_builder/HASH => taskcluster/docker/image_builder/HASH
rename : testing/docker/image_builder/REGISTRY => taskcluster/docker/image_builder/REGISTRY
rename : testing/docker/image_builder/VERSION => taskcluster/docker/image_builder/VERSION
rename : testing/docker/image_builder/build-image.sh => taskcluster/docker/image_builder/build-image.sh
rename : testing/docker/image_builder/setup.sh => taskcluster/docker/image_builder/setup.sh
rename : testing/docker/lint/Dockerfile => taskcluster/docker/lint/Dockerfile
rename : testing/docker/lint/system-setup.sh => taskcluster/docker/lint/system-setup.sh
rename : testing/docker/recipes/centos6-build-system-setup.sh => taskcluster/docker/recipes/centos6-build-system-setup.sh
rename : testing/docker/recipes/common.sh => taskcluster/docker/recipes/common.sh
rename : testing/docker/recipes/install-mercurial.sh => taskcluster/docker/recipes/install-mercurial.sh
rename : testing/docker/recipes/run-task => taskcluster/docker/recipes/run-task
rename : testing/docker/recipes/tooltool.py => taskcluster/docker/recipes/tooltool.py
rename : testing/docker/recipes/ubuntu1204-test-system-setup.sh => taskcluster/docker/recipes/ubuntu1204-test-system-setup.sh
rename : testing/docker/recipes/ubuntu1604-test-system-setup.sh => taskcluster/docker/recipes/ubuntu1604-test-system-setup.sh
rename : testing/docker/recipes/xvfb.sh => taskcluster/docker/recipes/xvfb.sh
rename : testing/docker/rust-build/Dockerfile => taskcluster/docker/rust-build/Dockerfile
rename : testing/docker/rust-build/README.md => taskcluster/docker/rust-build/README.md
rename : testing/docker/rust-build/REGISTRY => taskcluster/docker/rust-build/REGISTRY
rename : testing/docker/rust-build/VERSION => taskcluster/docker/rust-build/VERSION
rename : testing/docker/rust-build/build_cargo.sh => taskcluster/docker/rust-build/build_cargo.sh
rename : testing/docker/rust-build/build_rust.sh => taskcluster/docker/rust-build/build_rust.sh
rename : testing/docker/rust-build/build_rust_mac.sh => taskcluster/docker/rust-build/build_rust_mac.sh
rename : testing/docker/rust-build/fetch_cargo.sh => taskcluster/docker/rust-build/fetch_cargo.sh
rename : testing/docker/rust-build/fetch_rust.sh => taskcluster/docker/rust-build/fetch_rust.sh
rename : testing/docker/rust-build/package_rust.sh => taskcluster/docker/rust-build/package_rust.sh
rename : testing/docker/rust-build/repack_rust.py => taskcluster/docker/rust-build/repack_rust.py
rename : testing/docker/rust-build/splat_rust.py => taskcluster/docker/rust-build/splat_rust.py
rename : testing/docker/rust-build/task.json => taskcluster/docker/rust-build/task.json
rename : testing/docker/rust-build/tcbuild.py => taskcluster/docker/rust-build/tcbuild.py
rename : testing/docker/rust-build/upload_rust.sh => taskcluster/docker/rust-build/upload_rust.sh
rename : testing/docker/tester/Dockerfile => taskcluster/docker/tester/Dockerfile
rename : testing/docker/tester/HASH => taskcluster/docker/tester/HASH
rename : testing/docker/tester/REGISTRY => taskcluster/docker/tester/REGISTRY
rename : testing/docker/tester/VERSION => taskcluster/docker/tester/VERSION
rename : testing/docker/tester/bin/test.sh => taskcluster/docker/tester/bin/test.sh
rename : testing/docker/tester/dot-config/pip/pip.conf => taskcluster/docker/tester/dot-config/pip/pip.conf
rename : testing/docker/tester/dot-config/user-dirs.dirs => taskcluster/docker/tester/dot-config/user-dirs.dirs
rename : testing/docker/tester/dot-config/user-dirs.locale => taskcluster/docker/tester/dot-config/user-dirs.locale
rename : testing/docker/tester/dot-pulse/default.pa => taskcluster/docker/tester/dot-pulse/default.pa
rename : testing/docker/tester/tc-vcs-config.yml => taskcluster/docker/tester/tc-vcs-config.yml
rename : testing/docker/tester/tester.env => taskcluster/docker/tester/tester.env
rename : testing/docker/upload-symbols/Dockerfile => taskcluster/docker/upload-symbols/Dockerfile
rename : testing/docker/upload-symbols/README.md => taskcluster/docker/upload-symbols/README.md
rename : testing/docker/upload-symbols/bin/checkout-script.sh => taskcluster/docker/upload-symbols/bin/checkout-script.sh
rename : testing/docker/upload-symbols/bin/upload.sh => taskcluster/docker/upload-symbols/bin/upload.sh
rename : testing/docker/upload-symbols/test_exports.sh => taskcluster/docker/upload-symbols/test_exports.sh
extra : rebase_source : fd02b10c77de5b68476ce462b5f888475520a6fe
extra : source : 50adff295bf00ea0d9d7426e745acf3635e7dba5
2016-10-20 18:25:34 +05:30

106 lines
3.9 KiB
Python

#!/bin/env python
'''
This script patches tooltool manifests in the firefox source
tree to update them to a new set of rust packages.
'''
import json
import os.path
import sys
from collections import OrderedDict
def load_manifest(path):
with open(path) as f:
return json.load(f, object_pairs_hook=OrderedDict)
return None
def save_manifest(manifest, path):
with open(path, 'w') as f:
json.dump(manifest, f,
indent=0, separators=(',', ': '))
f.write('\n')
def replace(manifest, stanza):
key = 'rustc'
version = stanza.get('version')
for s in manifest:
if key in s.get('filename'):
if version:
print('Replacing %s\n with %s' % (s['version'], version))
s['version'] = version
print(' old %s' % s['digest'][:12])
s['digest'] = stanza['digest']
s['size'] = stanza['size']
print(' new %s' % s['digest'][:12])
return True
print('Warning: Could not find matching %s filename' % key)
return False
def update_manifest(source_manifest, target, target_filename):
for stanza in source_manifest:
filename = stanza.get('filename')
if target in filename:
size = int(stanza.get('size'))
print('Found %s %d bytes' % (filename, size))
version = stanza.get('version')
if version:
print(' %s' % version)
print('Updating %s' % target_filename)
old = load_manifest(target_filename)
replace(old, stanza)
save_manifest(old, target_filename)
break
'''Mapping from targets to target filenames.'''
TARGETS = {
'x86_64-unknown-linux-gnu-repack': [
'b2g/dev/config/tooltool-manifests/linux64/hazard.manifest',
'b2g/dev/config/tooltool-manifests/linux64/releng.manifest',
'browser/config/tooltool-manifests/linux32/releng.manifest',
'browser/config/tooltool-manifests/linux64/asan.manifest',
'browser/config/tooltool-manifests/linux64/clang.manifest',
'browser/config/tooltool-manifests/linux64/clang.manifest.centos6',
'browser/config/tooltool-manifests/linux64/hazard.manifest',
'browser/config/tooltool-manifests/linux64/msan.manifest',
'browser/config/tooltool-manifests/linux64/releng.manifest',
],
'x86_64-unknown-linux-gnu-android-cross-repack': [
'mobile/android/config/tooltool-manifests/android/releng.manifest',
'mobile/android/config/tooltool-manifests/android-x86/releng.manifest',
'mobile/android/config/tooltool-manifests/android-gradle-dependencies/releng.manifest',
],
'x86_64-unknown-linux-gnu-mac-cross-repack': [
'browser/config/tooltool-manifests/macosx64/cross-releng.manifest',
],
'x86_64-apple-darwin-repack': [
'browser/config/tooltool-manifests/macosx64/clang.manifest',
'browser/config/tooltool-manifests/macosx64/releng.manifest',
],
'x86_64-pc-windows-msvc-repack': [
'browser/config/tooltool-manifests/win64/clang.manifest',
'browser/config/tooltool-manifests/win64/releng.manifest',
],
'i686-pc-windows-msvc-repack': [
'browser/config/tooltool-manifests/win32/build-clang-cl.manifest',
'browser/config/tooltool-manifests/win32/clang.manifest',
'browser/config/tooltool-manifests/win32/releng.manifest',
],
}
if __name__ == '__main__':
if len(sys.argv) < 2:
print('%s PATH' % sys.argv[0])
sys.exit(1)
base_path = sys.argv[1]
updates = load_manifest('manifest.tt')
for target, filenames in TARGETS.items():
for target_filename in filenames:
update_manifest(updates, target,
os.path.join(base_path, target_filename))