| Index: tools/bots/dart_sdk.py
|
| diff --git a/tools/bots/dart_sdk.py b/tools/bots/dart_sdk.py
|
| index 16094f0140468369fb35cc91c90a35af2e659965..4ae91b7cacdd7e43e11f02b591ace3e16bda36aa 100644
|
| --- a/tools/bots/dart_sdk.py
|
| +++ b/tools/bots/dart_sdk.py
|
| @@ -7,6 +7,7 @@
|
| import os.path
|
| import shutil
|
| import sys
|
| +import subprocess
|
|
|
| import bot
|
| import bot_utils
|
| @@ -30,6 +31,23 @@ def BuildAPIDocs():
|
| Run([sys.executable, './tools/build.py', '--mode=release',
|
| '--arch=ia32', 'dartdocgen'])
|
|
|
| +def BuildDartdocAPIDocs(dirname):
|
| + dart_sdk = os.path.join(bot_utils.DART_DIR,
|
| + utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
|
| + 'dart-sdk')
|
| + dart_exe = os.path.join(dart_sdk, 'bin', 'dart')
|
| + dartdoc_dart = os.path.join(bot_utils.DART_DIR,
|
| + 'third_party', 'pkg' , 'dartdoc' , 'bin' ,
|
| + 'dartdoc.dart')
|
| + packages_dir = os.path.join(bot_utils.DART_DIR,
|
| + utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
|
| + 'packages')
|
| + with bot.BuildStep('Build API docs by dartdoc'):
|
| + subprocess.call([dart_exe, '--package-root=' + packages_dir, dartdoc_dart,
|
| + '--sdk-docs','--output', dirname, '--dart-sdk', dart_sdk,
|
| + '--package-root=%s' % packages_dir],
|
| + stdout=open(os.devnull, 'wb'))
|
| +
|
| def CreateUploadVersionFile():
|
| file_path = os.path.join(bot_utils.DART_DIR,
|
| utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
|
| @@ -86,12 +104,23 @@ def CreateUploadAPIDocs():
|
| api_zip = os.path.join(bot_utils.DART_DIR,
|
| utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
|
| 'dart-api-docs.zip')
|
| + dartdoc_dir = os.path.join(bot_utils.DART_DIR,
|
| + utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
|
| + 'gen-dartdocs')
|
| + dartdoc_zip = os.path.join(bot_utils.DART_DIR,
|
| + utils.GetBuildRoot(BUILD_OS, 'release', 'ia32'),
|
| + 'dartdocs-api.zip')
|
| shutil.rmtree(api_path, ignore_errors=True)
|
| FileDelete(api_zip)
|
| BuildAPIDocs()
|
| UploadApiDocs(api_path)
|
| + UploadApiLatestFile()
|
| CreateZip(api_path, api_zip)
|
| DartArchiveUploadAPIDocs(api_zip)
|
| + BuildDartdocAPIDocs(dartdoc_dir)
|
| + UploadDartdocApiDocs(dartdoc_dir)
|
| + CreateZip(dartdoc_dir, dartdoc_zip)
|
| + DartArchiveUploadDartdocAPIDocs(dartdoc_zip)
|
|
|
| def DartArchiveUploadAPIDocs(api_zip):
|
| namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW)
|
| @@ -120,6 +149,36 @@ def UploadApiDocs(dir_name):
|
| gsutil.upload(dir_name, apidocs_destination_gcsdir, recursive=True,
|
| public=True)
|
|
|
| +def DartArchiveUploadDartdocAPIDocs(api_zip):
|
| + namer = bot_utils.GCSNamer(CHANNEL, bot_utils.ReleaseType.RAW)
|
| + revision = utils.GetArchiveVersion()
|
| + for revision in [revision, 'latest']:
|
| + destination = (namer.apidocs_directory(revision) + '/' +
|
| + namer.dartdocs_zipfilename())
|
| + DartArchiveFile(api_zip, destination, checksum_files=False)
|
| +
|
| +def UploadDartdocApiDocs(dir_name):
|
| + apidocs_namer = bot_utils.GCSNamerApiDocs(CHANNEL)
|
| + revision = utils.GetArchiveVersion()
|
| + dartdocs_destination_gcsdir = apidocs_namer.dartdocs_dirpath(revision)
|
| +
|
| + # Return early if the documents have already been uploaded.
|
| + # This can happen if a build was forced, or a commit had no changes in the
|
| + # dart repository (e.g. DEPS file update).
|
| + if GsutilExists(dartdocs_destination_gcsdir):
|
| + print ("Not uploading api docs, since %s is already present."
|
| + % dartdocs_destination_gcsdir)
|
| + return
|
| +
|
| + # Upload everything inside the built apidocs directory.
|
| + gsutil = bot_utils.GSUtil()
|
| + gsutil.upload(dir_name, dartdocs_destination_gcsdir, recursive=True,
|
| + public=True, multithread=True)
|
| +
|
| +def UploadApiLatestFile():
|
| + apidocs_namer = bot_utils.GCSNamerApiDocs(CHANNEL)
|
| + revision = utils.GetArchiveVersion()
|
| + apidocs_destination_latestfile = apidocs_namer.docs_latestpath(revision)
|
| # Update latest.txt to contain the newest revision.
|
| with utils.TempDir('latest_file') as temp_dir:
|
| latest_file = os.path.join(temp_dir, 'latest.txt')
|
|
|