Skip to content

Commit 007f2dc

Browse files
committed
Updated releases url workflow
1 parent a9b0e6a commit 007f2dc

File tree

3 files changed

+49
-10
lines changed

3 files changed

+49
-10
lines changed

.github/workflows/data.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Fetch Data
2+
on:
3+
schedule:
4+
- cron: 0 * * * *
5+
workflow_dispatch: {}
6+
push:
7+
paths:
8+
- .github/workflows/data.yml
9+
jobs:
10+
scheduled:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Setup deno
14+
uses: denoland/setup-deno@main
15+
with:
16+
deno-version: v1.x
17+
18+
- name: Check out repo
19+
uses: actions/checkout@v2
20+
21+
- name: Fetch data
22+
uses: githubocto/flat@v3
23+
with:
24+
http_url: https://storage.googleapis.com/flutter_infra_release/releases/releases_macos.json
25+
downloaded_filename: releases_macos.json
26+
- name: Fetch data
27+
uses: githubocto/flat@v3
28+
with:
29+
http_url: https://storage.googleapis.com/flutter_infra_release/releases/releases_windows.json
30+
downloaded_filename: releases_windows.json
31+
- name: Fetch data
32+
uses: githubocto/flat@v3
33+
with:
34+
http_url: https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json
35+
downloaded_filename: releases_linux.json

lib/src/services/releases_service/releases_client.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
import 'dart:io';
22

3-
import 'package:fvm/src/utils/logger.dart';
4-
53
import '../../../exceptions.dart';
64
import '../../utils/http.dart';
5+
import '../../utils/logger.dart';
76
import 'models/flutter_releases.model.dart';
87

8+
final _envVars = Platform.environment;
99
const _storageDefaultBase = 'https://storage.googleapis.com';
1010

1111
/// Returns Google's storage url for releases
1212
String get storageUrl {
13-
final envVars = Platform.environment;
14-
1513
/// Uses environment variable if configured.
16-
return envVars['FLUTTER_STORAGE_BASE_URL'] ?? _storageDefaultBase;
14+
return _envVars['FLUTTER_STORAGE_BASE_URL'] ?? _storageDefaultBase;
1715
}
1816

1917
/// Gets platform specific release URL for a [platform]
2018
/// Defaults to the platform's OS.
2119
/// returns [url] for the list of the platform releases.
22-
String getReleasesUrl({String? platform}) {
20+
String getGoogleReleaseUrl({String? platform}) {
2321
platform ??= Platform.operatingSystem;
2422
return '$storageUrl/flutter_infra_release/releases/releases_$platform.json';
2523
}
2624

27-
String _getBackupReleaseUrl({String? platform}) {
25+
/// Returns a CDN cached version of the releaes per platform
26+
String getReleasesUrl({String? platform}) {
2827
platform ??= Platform.operatingSystem;
29-
return 'https://raw.githubusercontent.com/leoafarias/flutter_flat_data/main/releases_$platform.json';
28+
return _envVars['FLUTTER_RELEASES_URL'] ??
29+
'https://raw.githubusercontent.com/leoafarias/fvm/main/releases_$platform.json';
3030
}
3131

3232
FlutterReleases? _cacheReleasesRes;
@@ -47,12 +47,12 @@ Future<FlutterReleases> fetchFlutterReleases({bool cache = true}) async {
4747
logger.trace(err.toString());
4848

4949
try {
50-
final response = await fetch(_getBackupReleaseUrl());
50+
final response = await fetch(getGoogleReleaseUrl());
5151
_cacheReleasesRes = FlutterReleases.fromJson(response);
5252
return Future.value(_cacheReleasesRes);
5353
} on Exception {
5454
throw FvmInternalError(
55-
'Failed to retrieve the Flutter SDK from: ${getReleasesUrl()}\n'
55+
'Failed to retrieve the Flutter SDK from: ${getGoogleReleaseUrl()}\n'
5656
'Fvm will use the value set on '
5757
'env FLUTTER_STORAGE_BASE_URL to check versions\n'
5858
'if you are located in China, please see this page: https://flutter.dev/community/china',

lib/src/utils/http.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Future<String> fetch(String url) async {
88

99
final response = await request.close();
1010

11+
if (response.statusCode >= 400) {
12+
throw HttpException(response.reasonPhrase);
13+
}
14+
1115
final stream = response.transform(Utf8Decoder());
1216

1317
var res = '';

0 commit comments

Comments
 (0)