-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathmelos.yaml
183 lines (171 loc) · 5.24 KB
/
melos.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
name: template
sdkPath: .fvm/flutter_sdk
packages:
- apps/*
- packages/cores/*
- packages/features/*
- packages/samples/*
- packages/utils/*
- samples/*
ide:
intellij:
# Disabling IntelliJ's automatic configuration.
# This is to support different build configurations for environments.
enabled: false
command:
bootstrap:
environment:
sdk: ^3.6.0
flutter: ^3.27.1
dependencies:
flutter_hooks: ^0.20.5
flutter_riverpod: ^2.6.1
freezed_annotation: ^2.4.4
hooks_riverpod: ^2.5.1
intl: ^0.19.0
json_annotation: ^4.9.0
riverpod_annotation: ^2.6.1
go_router: ^14.6.3
dev_dependencies:
build_runner: ^2.4.14
custom_lint: ^0.7.0
freezed: ^2.5.7
json_serializable: ^6.8.0
riverpod_generator: ^2.4.0
riverpod_lint: ^2.3.10
yumemi_lints: ^2.2.0
test: ^1.25.2
flutter_gen_runner: ^5.8.0
hooks:
post: melos run bootstrap:post
scripts:
# bootstrap 後に実行する script 群
bootstrap:post:
description: bootstrap post hooks
steps:
# TODO(tatsutakein): yumemi_lints が最新バージョンに対応した際に再度有効化する
# - yumemi_lints_update
- gen:labeler
- gen:labels
fix:
description: |
すべてのパッケージに `dart fix --apply` を実行します。
analyze の対象として開発者が気づけるようにしつつ fix からは対象外とするため独自実装です。
run: bash "$MELOS_ROOT_PATH/scripts/fix.sh"
fix:custom:
description: すべてのパッケージに custom_lint の fix を実行します。
exec: dart run custom_lint --fix
packageFilters:
dirExists: lib
dependsOn: custom_lint
gen:
description: build_runner と l10n の生成コマンドを実行します。
steps:
- gen:l10n
- gen:build
gen:build:
description: build_runner を使用してコードを生成します。
run: dart run build_runner build -d
exec:
orderDependents: true
packageFilters:
dependsOn: build_runner
gen:l10n:
description: 多言語対応のためのローカライゼーションファイルを生成します。
run: flutter gen-l10n
exec:
orderDependents: true
packageFilters:
dependsOn: flutter_localizations
gen:labeler:
description: '`.github/labeler.yml` のパッケージ部分を生成します。'
run: dart run ./tools/gen_labeler.dart
gen:labels:
description: '`.github/labels.yml` のパッケージ部分を生成します。'
run: dart run ./tools/gen_labels.dart
upgrade:
description: dart pub のバージョンアップを実施します。
run: dart pub upgrade
exec:
concurrency: 1
orderDependents: true
upgrade:major:
description: dart pub のメジャーバージョンアップを実施します。
run: dart pub upgrade --major-versions
exec:
concurrency: 1
orderDependents: true
update:yumemi_lints:
description: yumemi_lints の更新を実行します。
exec: dart run yumemi_lints update
packageFilters:
dependsOn: yumemi_lints
# dependsOn で or 条件で指定することができないため
# スクリプトを Flutter と Dart に分けている
test:
description: すべてのパッケージのテストを実行します。
steps:
- test:flutter
- test:dart
test:flutter:
description: Flutter パッケージのテストを実行します。
run: flutter test
exec:
concurrency: 1
packageFilters:
dependsOn: flutter_test
dirExists: test
test:dart:
description: Dart パッケージのテストを実行します。
run: dart test
exec:
concurrency: 1
packageFilters:
dependsOn: test
dirExists: test
# dependsOn で or 条件で指定することができないため
# スクリプトを Flutter と Dart に分けている
report:test:
description: すべてのパッケージのテストレポートを生成します。
steps:
- report:test:flutter
- report:test:dart
report:test:flutter:
description: Flutter パッケージのテストレポートを生成します。
run: flutter test --no-pub --machine > test_report.log
exec:
concurrency: 1
packageFilters:
dependsOn: flutter_test
dirExists: test
ignore:
- catalog
report:test:dart:
description: Dart パッケージのテストレポートを生成します。
run: dart test --file-reporter="json:test_report.log"
exec:
concurrency: 1
packageFilters:
dependsOn: test
dirExists: test
ci:report:custom_lint:
description: CI 環境で custom_lint のレポートを生成します。
exec: bash "$MELOS_ROOT_PATH/scripts/report-custom-lint-ci.sh"
packageFilters:
dependsOn: custom_lint
golden_test:ci:
description: golden_test を実行します。
run: flutter test --tags golden
exec:
failFast: true
packageFilters:
scope:
- catalog
golden_test:
description: golden_test を実行し, ファイルを生成します。
run: flutter test --update-goldens
exec:
failFast: true
packageFilters:
scope:
- catalog