Skip to content

Commit 8fa89c6

Browse files
authored
Add flutter support (#155)
* Add flutter support * Add changelog * Rev version * Fix small bug in health
1 parent 65817bf commit 8fa89c6

File tree

8 files changed

+42
-73
lines changed

8 files changed

+42
-73
lines changed

pkgs/base_repo

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 65817bf10a4e5c45a99299aa4ae92a0993bf9847

pkgs/firehose/CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 0.3.26
2+
3+
- Add support for Flutter package auto-publishing, fixing [#154](https://github.com/dart-lang/ecosystem/issues/154).
14
## 0.3.25
25

36
- Switch to pub.dev API in `package:firehose`.

pkgs/firehose/lib/firehose.dart

+28-7
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automati
115115
print('Validating $package:${package.name}');
116116

117117
print('pubspec:');
118-
var pubspecVersion = package.pubspec.version;
118+
var pubspecVersion = package.pubspec.version?.toString();
119119
if (pubspecVersion == null) {
120120
var result = Result.fail(
121121
package,
@@ -146,16 +146,15 @@ Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automati
146146
var result = Result.info(package, 'already published at pub.dev');
147147
print(result);
148148
results.addResult(result);
149-
} else if (package.pubspec.isPreRelease) {
149+
} else if (package.pubspec.version!.isPreRelease) {
150150
var result = Result.info(
151151
package,
152152
'pre-release version (no publish necessary)',
153153
);
154154
print(result);
155155
results.addResult(result);
156156
} else {
157-
var code = await runCommand('dart',
158-
args: ['pub', 'publish', '--dry-run'], cwd: package.directory);
157+
final code = await _runPublish(package, dryRun: true, force: false);
159158

160159
final ignoreWarnings = github.prLabels.contains(_ignoreWarningsLabel);
161160

@@ -245,7 +244,7 @@ Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automati
245244
print('');
246245

247246
print('pubspec:');
248-
var pubspecVersion = package.pubspec.version;
247+
var pubspecVersion = package.pubspec.version?.toString();
249248
print(' version: $pubspecVersion');
250249

251250
print('changelog:');
@@ -267,13 +266,35 @@ Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automati
267266
await runCommand('dart', args: ['pub', 'get'], cwd: package.directory);
268267
print('');
269268

270-
var result = await runCommand('dart',
271-
args: ['pub', 'publish', '--force'], cwd: package.directory);
269+
var result = await _runPublish(package, dryRun: false, force: true);
272270
if (result != 0) {
273271
exitCode = result;
274272
}
275273
return result == 0;
276274
}
275+
276+
Future<int> _runPublish(
277+
Package package, {
278+
required bool dryRun,
279+
required bool force,
280+
}) async {
281+
String command;
282+
if (package.pubspec.dependencies.containsKey('flutter')) {
283+
command = 'flutter';
284+
} else {
285+
command = 'dart';
286+
}
287+
return await runCommand(
288+
command,
289+
args: [
290+
'pub',
291+
'publish',
292+
if (dryRun) '--dry-run',
293+
if (force) '--force',
294+
],
295+
cwd: package.directory,
296+
);
297+
}
277298
}
278299

279300
class VerificationResults {

pkgs/firehose/lib/src/health/coverage.dart

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class Coverage {
3131

3232
var filesOfInterest = files
3333
.where((file) => path.extension(file.filename) == '.dart')
34+
.where((file) => file.status != FileStatus.removed)
3435
.where((file) => isInSomePackage(packages, file.relativePath))
3536
.where((file) => isNotATest(packages, file.relativePath))
3637
.toList();

pkgs/firehose/lib/src/pubspec.dart

-31
This file was deleted.

pkgs/firehose/lib/src/repo.dart

+7-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import 'dart:io';
66

77
import 'package:firehose/src/changelog.dart';
88
import 'package:path/path.dart' as path;
9+
import 'package:pubspec_parse/pubspec_parse.dart';
910
import 'package:yaml/yaml.dart' as yaml;
1011

1112
import 'github.dart';
12-
import 'pubspec.dart';
1313

1414
class Repository {
1515
final Directory baseDirectory;
@@ -90,13 +90,16 @@ class Package {
9090
late final Changelog changelog;
9191

9292
Package(this.directory, this.repository) {
93-
pubspec = Pubspec(directory);
94-
changelog = Changelog(File(path.join(directory.path, 'CHANGELOG.md')));
93+
pubspec = Pubspec.parse(_getPackageFile('pubspec.yaml').readAsStringSync());
94+
changelog = Changelog(_getPackageFile('CHANGELOG.md'));
9595
}
9696

97+
File _getPackageFile(String fileName) =>
98+
File(path.join(directory.path, fileName));
99+
97100
String get name => pubspec.name;
98101

99-
String? get version => pubspec.version;
102+
String? get version => pubspec.version?.toString();
100103

101104
@override
102105
String toString() {

pkgs/firehose/pubspec.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: firehose
22
description: A tool to automate publishing of Pub packages from GitHub actions.
3-
version: 0.3.25
3+
version: 0.3.26
44
repository: https://github.com/dart-lang/ecosystem/tree/main/pkgs/firehose
55

66
environment:
@@ -16,6 +16,7 @@ dependencies:
1616
http: ^0.13.0
1717
path: ^1.8.0
1818
pub_semver: ^2.1.0
19+
pubspec_parse: ^1.2.3
1920
yaml: ^3.1.0
2021

2122
dev_dependencies:

pkgs/firehose/test/pubspec_test.dart

-30
This file was deleted.

0 commit comments

Comments
 (0)