Skip to content

Commit 5f7bb18

Browse files
authored
Add a travis bot for testing dartdoc against SDK head analyzer (#1777)
* Add a travis bot for testing dartdoc against the SDK version of the analyzer * add missing await * Remove publish check step
1 parent e514bec commit 5f7bb18

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ env:
88
- DARTDOC_BOT=packages
99
- DARTDOC_BOT=flutter
1010
- DARTDOC_BOT=sdk-docs
11+
- DARTDOC_BOT=sdk-analyzer
1112
script: ./tool/travis.sh
1213

1314
os:

tool/grind.dart

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,10 @@ void analyze() async {
209209
);
210210
}
211211

212+
@Task('analyze, test, and self-test dartdoc')
213+
@Depends(analyze, checkBuild, test, testDartdoc)
214+
void buildbotNoPublish() => null;
215+
212216
@Task('analyze, test, and self-test dartdoc')
213217
@Depends(analyze, checkBuild, test, testDartdoc, tryPublish)
214218
void buildbot() => null;
@@ -362,6 +366,51 @@ Future<String> createComparisonDartdoc() async {
362366
return dartdocClean.path;
363367
}
364368

369+
/// Helper function to create a clean version of dartdoc (based on the current
370+
/// directory, assumed to be a git repository), configured to use the head
371+
/// version of the Dart SDK for analyzer, front-end, and kernel.
372+
Future<String> createSdkDartdoc() async {
373+
var launcher = new SubprocessLauncher('create-sdk-dartdoc');
374+
Directory dartdocSdk = Directory.systemTemp.createTempSync('dartdoc-sdk');
375+
await launcher
376+
.runStreamed('git', ['clone', Directory.current.path, dartdocSdk.path]);
377+
await launcher.runStreamed('git', ['checkout'],
378+
workingDirectory: dartdocSdk.path);
379+
380+
Directory sdkClone = Directory.systemTemp.createTempSync('sdk-checkout');
381+
await launcher.runStreamed('git', [
382+
'clone',
383+
'--depth',
384+
'1',
385+
'https://github.com/dart-lang/sdk.git',
386+
sdkClone.path
387+
]);
388+
File dartdocPubspec = new File(pathLib.join(dartdocSdk.path, 'pubspec.yaml'));
389+
dartdocPubspec.writeAsStringSync('''
390+
dependency_overrides:
391+
analyzer:
392+
path: '${sdkClone.path}/pkg/analyzer'
393+
front_end:
394+
path: '${sdkClone.path}/pkg/front_end'
395+
kernel:
396+
path: '${sdkClone.path}/pkg/kernel'
397+
''', mode: FileMode.append);
398+
399+
await launcher.runStreamed(sdkBin('pub'), ['get'],
400+
workingDirectory: dartdocSdk.path);
401+
return dartdocSdk.path;
402+
}
403+
404+
@Task('Run grind tasks with the analyzer SDK.')
405+
Future<void> testWithAnalyzerSdk() async {
406+
var launcher = new SubprocessLauncher('test-with-analyzer-sdk');
407+
var sdkDartdoc = await createSdkDartdoc();
408+
final String defaultGrindParameter =
409+
Platform.environment['DARTDOC_GRIND_STEP'] ?? 'test';
410+
await launcher.runStreamed(sdkBin('pub'), ['run', 'grinder', defaultGrindParameter],
411+
workingDirectory: sdkDartdoc);
412+
}
413+
365414
Future<List<Map>> _buildSdkDocs(String sdkDocsPath, Future<String> futureCwd,
366415
[String label]) async {
367416
if (label == null) label = '';

tool/travis.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ elif [ "$DARTDOC_BOT" = "flutter" ]; then
2323
elif [ "$DARTDOC_BOT" = "packages" ]; then
2424
echo "Running packages dartdoc bot"
2525
PACKAGE_NAME=angular PACKAGE_VERSION=">=5.0.0-beta" DARTDOC_PARAMS="--include=angular,angular.security" pub run grinder build-pub-package
26+
elif [ "$DARTDOC_BOT" = "sdk-analyzer" ]; then
27+
echo "Running main dartdoc bot against the SDK analyzer"
28+
DARTDOC_GRIND_STEP=buildbot-no-publish pub run grinder test-with-analyzer-sdk
2629
else
2730
echo "Running main dartdoc bot"
2831
pub run grinder buildbot

0 commit comments

Comments
 (0)