Skip to content

Commit

Permalink
feat: configuration project (#9)
Browse files Browse the repository at this point in the history
  • Loading branch information
doananhtuan22111996 committed Aug 31, 2024
1 parent 9a32c7a commit 075d0bc
Show file tree
Hide file tree
Showing 6 changed files with 124 additions and 15 deletions.
10 changes: 5 additions & 5 deletions app/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ dev_dependencies:
build_runner: 2.4.11
flutter_gen_runner: 5.6.0

#flutter_gen:
# assets:
# outputs:
# directory_path_enabled: true # <- Add this line.
# output: lib/src/generated/assets
flutter_gen:
assets:
outputs:
directory_path_enabled: true # <- Add this line.
output: lib/src/generated/assets

# Optional
# integrations:
Expand Down
18 changes: 18 additions & 0 deletions app/web/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,18 @@


















Expand Down Expand Up @@ -181,6 +193,12 @@












Expand Down
2 changes: 1 addition & 1 deletion configs/lib/src/method/method_generation.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'dart:convert';
import 'dart:io';

import '../../configs.dart';
import '../generation/file_generation.dart';

Map<String, dynamic> getJsonConfig(String flavor, {String? prefix}) =>
readFile(jConfigFilePath(flavor, prefix: prefix));
Expand Down
50 changes: 47 additions & 3 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ denied:
cd scripts && chmod +x pre-bootstrap.sh

pre-bootstrap:
cd scripts && ./pre-bootstrap.sh
cd scripts && sh pre-bootstrap.sh
fvm install 3.22.3
fvm use 3.22.3 --force
fvm flutter --version
Expand All @@ -28,15 +28,59 @@ widget-book:

build-ios:
@melos gen-env $(flavor)
dart run scripts/build_app.dart $(flavor) ipa $(buildName) $(buildNumber)
dart run scripts/build_app.dart $(flavor) ipa

build-android-apk:
@melos gen-env $(flavor)
dart run scripts/build_app.dart $(flavor) apk $(buildName) $(buildNumber)
dart run scripts/build_app.dart $(flavor) apk

build-android-aab:
@melos gen-env $(flavor)
dart run scripts/build_app.dart $(flavor) aab

deploy-ios:
@melos gen-env $(flavor)
dart run scripts/build_app.dart $(flavor) ipa $(buildName) $(buildNumber)

deploy-android-apk:
@melos gen-env $(flavor)
dart run scripts/build_app.dart $(flavor) apk $(buildName) $(buildNumber)

deploy-android-aab:
@melos gen-env $(flavor)
dart run scripts/build_app.dart $(flavor) aab $(buildName) $(buildNumber)

create-env:
@melos create-env

############################################ Github Action #########################################

gh-pub-get:
fvm flutter pub global run melos clean --sdk-path=.fvm/flutter_sdk
fvm flutter pub global run melos bootstrap --sdk-path=.fvm/flutter_sdk
fvm flutter pub global run melos gen-app-icon
fvm flutter pub global run melos gen-app-splash
fvm flutter pub global run melos build-domain
fvm flutter pub global run melos build-data
fvm flutter pub global run melos build-resources
fvm flutter pub global run melos gen-strings

gh-build-ios:
fvm flutter pub global run melos gen-env $(flavor)
dart run scripts/build_app.dart $(flavor) ipa

gh-build-android:
fvm flutter pub global run melos gen-env $(flavor)
dart run scripts/build_app.dart $(flavor) aab

gh-deploy-ios:
fvm flutter pub global run melos gen-env $(flavor)
dart run scripts/deploy_app.dart $(flavor) ipa $(buildName) $(buildNumber)

gh-deploy-android-apk:
fvm flutter pub global run melos gen-env $(flavor)
dart run scripts/deploy_app.dart $(flavor) apk $(buildName) $(buildNumber)

gh-deploy-android-aab:
fvm flutter pub global run melos gen-env $(flavor)
dart run scripts/deploy_app.dart $(flavor) aab $(buildName) $(buildNumber)
6 changes: 0 additions & 6 deletions scripts/build_app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ void main(List<String>? args) async {
configJson: jConfig[dartDefine],
);
final type = args?[1] ?? stringEmpty;
final buildName = args?[2] ?? stringEmpty;
final buildNumber = args?[3] ?? stringEmpty;

List<String> arguments = [
'build',
Expand All @@ -23,10 +21,6 @@ void main(List<String>? args) async {
'lib/main.dart',
'--flavor',
'$flavor',
'--build-name',
'$buildName',
'--build-number',
'$buildNumber',
'--dart-define',
'$apiDomain=${dart.api}',
'--dart-define',
Expand Down
53 changes: 53 additions & 0 deletions scripts/deploy_app.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import 'dart:convert';
import 'dart:io';

import 'package:configs/configs.dart';

const _ipa = 'ipa';

void main(List<String>? args) async {
final flavor = args?.first ?? stringEmpty;
Map<String, dynamic> jConfig = getJsonConfig(flavor, prefix: './configs');
final dart = DartGeneration(
outputFilePath: buildConfigPath,
configJson: jConfig[dartDefine],
);
final type = args?[1] ?? stringEmpty;
final buildName = args?[2] ?? stringEmpty;
final buildNumber = args?[3] ?? stringEmpty;

List<String> arguments = [
'build',
type,
'-t',
'lib/main.dart',
'--flavor',
'$flavor',
'--build-name',
'$buildName',
'--build-number',
'$buildNumber',
'--dart-define',
'$apiDomain=${dart.api}',
'--dart-define',
'$secureStorageName=${dart.storageName}',
'${type == _ipa ? '--export-options-plist=ios/ExportOptions.plist' : stringEmpty}'
];

print('cmd: fvm flutter ${arguments.join(' ')}');
final process = await Process.start('fvm', ['flutter', ...arguments],
workingDirectory: './app', runInShell: true);
// Print standard output (stdout)
process.stdout.transform(utf8.decoder).listen((data) {
print('$data');
});
// Print standard error (stderr)
process.stderr.transform(utf8.decoder).listen((data) {
print('$data');
});

final exitCode = await process.exitCode;
if (exitCode != 0) {
throw Exception('Script failed with exit code: $exitCode');
}
}

0 comments on commit 075d0bc

Please sign in to comment.