skia2/infra/bots/assets/win_toolchain/create_and_upload.py
Brian Osman 044044f5a2 Update win_toolchain, and refactor how it's built
The old win_toolchain script required a Chromium checkout, and
extracted portions of the win_toolchain from that to build the
Skia asset. Instead, use the depot_tools script that assembles
a toolchain from a locally installed MSVC.

The create script doesn't do that, but relies on the user to
run that script first. Automating everything would be a nice
follow-up.

With the new strategy, the toolchain directory is simpler, and
no longer contains the depot_tools kruft or extra directories.
Adjust the bot scripts accordingly. (Renaming the directory to
win_toolchain from 't' would be a nice touch, too).

Finally, I built the new toolchain with the updated process,
and included the ARM64 compiler and libraries, so we can set
up a bot to build Windows ARM64.

Docs-Preview: https://skia.org/?cl=176968
Bug: skia:8569
Change-Id: I4bdf3cfb29d50f4464853445d0226241e70c33b4
Reviewed-on: https://skia-review.googlesource.com/c/176968
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-12-12 15:50:16 +00:00

48 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python
#
# Copyright 2016 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Create the asset and upload it."""
import argparse
import common
import os
import subprocess
import sys
import utils
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--gsutil')
parser.add_argument('--src_dir', '-s', required=True)
args = parser.parse_args()
with utils.tmp_dir():
cwd = os.getcwd()
create_script = os.path.join(common.FILE_DIR, 'create.py')
upload_script = os.path.join(common.FILE_DIR, 'upload.py')
target_dir = os.path.join(cwd, 'win_toolchain')
try:
cmd = ['python', create_script,
'-t', target_dir,
'-s', args.src_dir]
subprocess.check_call(cmd)
cmd = ['python', upload_script, '-t', target_dir]
if args.gsutil:
cmd.extend(['--gsutil', args.gsutil])
subprocess.check_call(cmd)
except subprocess.CalledProcessError:
# Trap exceptions to avoid printing two stacktraces.
sys.exit(1)
if __name__ == '__main__':
main()