Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User guide #2229

Open
wants to merge 828 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
828 commits
Select commit Hold shift + click to select a range
5ee6fce
TF-2042 Add event attendees information widget
dab246 Jul 26, 2023
d804b98
TF-2042 Display calendar event information widget
dab246 Jul 26, 2023
e8f7d95
TF-2042 Add color to styles
dab246 Jul 28, 2023
1bbbcc0
TF-2057 Add event title widget
dab246 Jul 27, 2023
d9782f9
TF-2057 Add event time detail widget
dab246 Jul 27, 2023
7c49cf7
TF-2057 Add event location detail widget
dab246 Jul 27, 2023
219a478
TF-2057 Add event attendees detail widget
dab246 Jul 27, 2023
7f86937
TF-2057 Add event description detail widget
dab246 Jul 27, 2023
a695a3b
TF-2057 Add calendar event detail widget
dab246 Jul 27, 2023
033343a
TF-2057 Hide email content as html when has calendar event
dab246 Jul 27, 2023
a41b10b
TF-2057 Enable scroll page view when email has calendar event
dab246 Jul 27, 2023
d4b0b42
TF-2057 Set full width size event description widget
dab246 Jul 27, 2023
cf109ca
TF-2057 Set max lines text event information
dab246 Jul 27, 2023
9482e02
TF-2057 Add event organizer widget
dab246 Jul 27, 2023
9ac78de
TF-2057 Add see all attendees button
dab246 Jul 27, 2023
8974e0a
TF-2057 Add event hyper link detail widget
dab246 Jul 27, 2023
68b6214
TF-2057 Add color/size to styles
dab246 Jul 28, 2023
71b1f34
Translated using Weblate (Russian)
tprudentova Jul 21, 2023
0055683
Translated using Weblate (French)
Arsnael Jul 31, 2023
109f160
Translated using Weblate (French)
Arsnael Jul 31, 2023
1167d3d
Bump version to `v0.8.9`
dab246 Jul 31, 2023
52f078d
Upgrade collection to 1.17.1
dab246 Jul 17, 2023
9070c60
Upgrade mockito to 5.4.2
dab246 Jul 17, 2023
25cf580
Upgrade async to 2.11.0
dab246 Jul 17, 2023
c93c0ba
Upgrade intl to 0.18.0
dab246 Jul 17, 2023
433b520
Upgrade super_tag_editor
dab246 Jul 17, 2023
34c8970
Upgrade timeago to 3.5.0
dab246 Jul 17, 2023
32c2a3a
Upgrade flutter_date_range_picker
dab246 Jul 17, 2023
f6606bc
Fix conflict class name
dab246 Jul 17, 2023
06644eb
Upgrade extended_text to 11.0.1
dab246 Jul 17, 2023
78c314e
Upgrade html_editor_enhanced
dab246 Jul 17, 2023
75c9522
Upgrade environment sdk
dab246 Jul 17, 2023
b17c3a1
Upgrade flutter to `v3.10.6` for Dockerfile
dab246 Jul 17, 2023
c918712
Use `dart run` replace `flutter pub run` deprecated
dab246 Jul 17, 2023
9d89ff3
Update dependencies compatible flutter 3.10.x
dab246 Jul 18, 2023
672acf5
TF-2047 Add linkify library to detect link/email
dab246 Jul 31, 2023
9078ef1
TF-2047 Handle sanitize and autolink html for input text
dab246 Jul 31, 2023
ee5ee4b
TF-2047 Re-write unit test for sanitize autolink filter
dab246 Jul 31, 2023
9c34752
TF-2047 Combine sanitize and autolink transformer text
dab246 Jul 31, 2023
3840e51
TF-2047 Inject binding html analyzer
dab246 Jul 31, 2023
5e5a389
TF-2047 Add `adr` for sanitize and autolink html when type is text/plain
dab246 Aug 1, 2023
30d7038
TF-2047 Update linkify to pubspec.lock
dab246 Aug 1, 2023
b015274
TF-2047 Add `rel="noreferrer"` to HTML link attribute for enhance web…
dab246 Aug 1, 2023
ddc39e2
TF-2047 Update unit-test SanitizeAutolinkFilter
dab246 Aug 1, 2023
38eafc6
TF-1981 Update UI spam banner on mobile/tablet
dab246 Aug 1, 2023
3fb7ebf
TF-1981 Add SpamReportBannerLabel widget
dab246 Aug 1, 2023
d795fd8
TF-1981 Update UI spam banner on web
dab246 Aug 1, 2023
4409b59
TF-2066 Upgrade hiveDBVersion to version 5
dab246 Aug 3, 2023
bc9342e
TF-2066 Remove some return Future unnecessary
dab246 Aug 3, 2023
faebdce
TF-2067 Disable swipe left/right to next/previous email in email view
dab246 Aug 3, 2023
69998d9
TF-2068 Fix calendar banner widget is gray bar
dab246 Aug 3, 2023
48906b1
TF-2068 Remove the comma of the last attendee in EventAttendeeDetailW…
dab246 Aug 3, 2023
2361540
TF-2068 Remove ScrollController avoid error
dab246 Aug 3, 2023
f0e0670
TF-2068 Display organizer address when organizer name
dab246 Aug 3, 2023
a77f1d5
TF-2068 Create highlight autolink for event location widget
dab246 Aug 3, 2023
3b7e4d5
TF-1710 Add `EmptySpam` action to mailbox action list
dab246 Aug 3, 2023
f0d22cd
TF-1710 Add empty spam folder interactor
dab246 Aug 3, 2023
9eda27e
TF-1710 Implement delete all spam emails action
dab246 Aug 3, 2023
34535eb
TF-1710 Implement delete all spam emails action in search
dab246 Aug 3, 2023
6b45dcd
TF-1710 Show banner delete all spam emails
dab246 Aug 3, 2023
e467d97
TF-1710 Update new UI for banner empty trash
dab246 Aug 3, 2023
5ab596a
TF-1710 Add CountOfEmails widget
dab246 Aug 4, 2023
408fb18
TF-1710 Move all method of PresentationMailbox object to extension to…
dab246 Aug 4, 2023
f1bd664
TF-1710 Display count of total emails for `Trash` & `Spam` folder
dab246 Aug 4, 2023
3bef92a
TF-1710 Remove some import unnecessary
dab246 Aug 4, 2023
cf1ec9d
Change `SERVER_URL` to deployment PR success
dab246 Aug 7, 2023
ef93067
TF-2064 Remove some controller unnecessary
dab246 Aug 4, 2023
c568af1
TF-2064 Move exceptions to outside model folder
dab246 Aug 4, 2023
a0d3205
TF-2064 Upgrade version `jmap_dart_client` to display quota warning b…
dab246 Aug 4, 2023
079c3a5
TF-2064 Update UI for quotas view
dab246 Aug 4, 2023
ce85ba3
TF-2064 Add QuotasBannerWidget
dab246 Aug 4, 2023
3e36ceb
TF-2064 Handle limit storage to show warning banner
dab246 Aug 4, 2023
b909124
TF-1982 Change mailboxes label to folder
dab246 Aug 8, 2023
afd8d54
TF-1714 Add TMailButton, TMailContainer widget
dab246 Aug 8, 2023
c899fd8
TF-1714 Add size property for CupertinoLoadingWidget
dab246 Aug 8, 2023
6293b3d
TF-1714 Remove constructor domain state class unnecessary
dab246 Aug 8, 2023
08a816b
TF-1714 Move MailboxDashboardConstant to domain layer
dab246 Aug 8, 2023
5f18ad4
TF-1714 Add ThreadViewLoadingBar widget
dab246 Aug 8, 2023
d4912af
TF-1714 Display animation loading when click refresh mailbox button
dab246 Aug 8, 2023
fd536ff
TF-1714 Change ButtonBuilder to TMailButton widget
dab246 Aug 8, 2023
04f9024
TF-2087 Fix status bar missing in dark theme mode
dab246 Aug 11, 2023
6aafea0
TF-1983 Convert mailbox item tile builder to StatefulWidget
dab246 Aug 9, 2023
5eed731
TF-1983 Add CreateFilters button in empty thread view widget
dab246 Aug 9, 2023
41279e1
TF-1983 Perform create new rule from new folder
dab246 Aug 9, 2023
cd53c87
TF-2089 Fix pull-to-refresh in mailbox view
dab246 Aug 14, 2023
61b2647
TF-2078 Add abstract get list event action
dab246 Aug 10, 2023
6c372d5
TF-2078 Implement get calendar event action in domain & data layer
dab246 Aug 10, 2023
dbd936a
TF-2078 Add CalendarEventActionButton widget
dab246 Aug 10, 2023
9949b4d
TF-2078 Display calendar event action
dab246 Aug 10, 2023
f5c9b0b
TF-2078 Sync use launchLink to open hyper link
dab246 Aug 10, 2023
50fa29b
TF-2078 Hide mailbox loading bar when change state email
dab246 Aug 10, 2023
ef96188
TF-2078 Add bottom border for UserInformationWidget
dab246 Aug 10, 2023
9652106
TF-2078 Fix ScrollController is currently attached to more than one S…
dab246 Aug 10, 2023
cdd52e6
TF-2078 Add event options to blue bar
dab246 Aug 11, 2023
295c3ca
TF-2078 Display original email content when can not parse calendar event
dab246 Aug 11, 2023
cbcb097
TF-2078 Remove import unnecessary
dab246 Aug 17, 2023
426d56c
TF-2092 Update signature prefix
dab246 Aug 17, 2023
6c2830d
TF-2092 Persist selected signature while expanding and minimizing the…
dab246 Aug 17, 2023
0272e45
TF-1961 Refactor html transformer
dab246 Aug 16, 2023
b57c93f
TF-1961 Add script handle lazy loading image in html
dab246 Aug 16, 2023
9ec81d0
TF-1961 Left align signature and title header reply/forward email
dab246 Aug 18, 2023
f5470c1
TF-1961 Transform html email content in composer
dab246 Aug 18, 2023
767a4c2
Migrate branch upgrade to master for dependency
dab246 Aug 18, 2023
1545e2c
Bump version to `v0.9.0`
dab246 Aug 18, 2023
0c97ade
TF-2099 Fix Quota information are missing
dab246 Aug 21, 2023
0bed553
TF-1974 Fix refresh token oidc failed
dab246 Aug 22, 2023
5d497b2
TF-1974 Set default OIDC_SCOPE
dab246 Aug 22, 2023
b7280c3
Bump version to `v0.9.1`
dab246 Aug 23, 2023
b941d36
TF-1845 Fix the searching result is not correct with the condition `D…
dab246 Aug 24, 2023
b180275
TF-1844 Automatically perform search action after user fills in input…
dab246 Aug 23, 2023
80b7da0
TF-1844 Highlight autocomplete suggestion item when hovering in advan…
dab246 Aug 23, 2023
8b0feba
TF-1844 Update hint text input advanced search
dab246 Aug 23, 2023
5711f01
TF-1844 Fix mailbox not selected in advanced search
dab246 Aug 23, 2023
3fa17e2
tf-1946 add swipe to thread
hieutbui Aug 28, 2023
8936208
Disable swipe right-to-left on thread
hieutbui Aug 29, 2023
b6be26e
TF-1977 Redirect to Inbox when clicking on logo
dab246 Aug 29, 2023
388f062
TF-1977 Disable highlight color when clicking logo
dab246 Aug 29, 2023
41c854c
TF-1977 Rename the method for clarity
dab246 Aug 29, 2023
843c703
TF-1977 Close email view and scroll to position inbox when clicking o…
dab246 Aug 29, 2023
b1413bc
Fix the login screen freezes when pasting the link in the browser add…
dab246 Aug 28, 2023
16d0c8b
Fix TextEditingController was used after being disposed in LoginView
dab246 Aug 28, 2023
3322703
Make the beautify logging tool
dab246 Aug 28, 2023
b3d87bd
Replace all `png` icon to `svg` icon
dab246 Aug 28, 2023
38b6632
Remove NoAuthenticatedAccountFailure state unnecessary
dab246 Aug 29, 2023
2580e86
Check OIDC available when no account is logged in
dab246 Aug 29, 2023
b7c41f1
Convert LoginTextInputBuilder functional to StatefulWidget
dab246 Aug 30, 2023
da70fe0
TF-1984 Show `Empty` action for Trash and Spam mailbox
dab246 Aug 30, 2023
7504d6e
TF-1984 Show popup dialog when clicking on Empty button
dab246 Aug 30, 2023
22b810d
TF-1984 Move `Get.find()` outside the build method
dab246 Aug 30, 2023
08110ff
TF-1984 Update logger by standard format
dab246 Aug 30, 2023
de8f9c4
TF-1984 Handle empty Trash and Spam mailbox action
dab246 Aug 30, 2023
f319001
TF-2026 Add `SaveToDraftAndClose` method
dab246 Aug 30, 2023
cf03def
TF-2026 Implement `SaveToDraft` method
dab246 Aug 30, 2023
b35f090
TF-2129 Fix cannot attach file on mobile
dab246 Sep 7, 2023
a40f9ae
TF-2129 Fix print log on mobile
dab246 Sep 7, 2023
ea47ea9
TF-2129 Show full attachment for the first time
dab246 Sep 7, 2023
09a93ef
Handle call retry up to 3 time when `statusCode=401`
dab246 Sep 8, 2023
f50bc50
Add `adr` to fix oidc refresh token using `QueuedInterceptor`
dab246 Sep 11, 2023
dd3e263
TF-2083 add RuleFilterConditionWidget
hieutbui Aug 30, 2023
6fde253
TF-2083 change condition widget to RuleFilterConditionWidget
hieutbui Aug 31, 2023
dad160a
TF-2083 Add listRuleCondition
hieutbui Aug 31, 2023
1ac91dc
tf-2083 make each rule condition can change value field separately
hieutbui Sep 6, 2023
cbb5aea
tf-2083 add swipe to remove condition on mobile
hieutbui Sep 6, 2023
4faec0c
TF-2083 Change input field arguments
hieutbui Sep 8, 2023
40ebc31
TF-2083 Add condition row widget and condition remove button widget
hieutbui Sep 11, 2023
5fca1a1
TF-2089 Add `dash-dash-space` to signature delimiter
dab246 Sep 11, 2023
7739f1b
Change license to AGPL-V3 - drop the OpenPaaS clause
chibenwa Sep 12, 2023
f454603
Add badges for downloads (#2140)
chibenwa Sep 13, 2023
b886950
TF-2134 Remove the leading hash(#) from the URL of web
dab246 Sep 11, 2023
7bb8954
TF-2134 Add MailtoURLView page
dab246 Sep 11, 2023
d2d3acf
TF-2134 Add mailto page router
dab246 Sep 11, 2023
b8dc3ca
TF-2134 Handle navigation route from mailto URL
dab246 Sep 11, 2023
964013f
TF-2134 Open composer from mailto uri
dab246 Sep 11, 2023
da3c613
TF-2135 Add splash screen for web
dab246 Sep 13, 2023
db89e44
Translated using Weblate (German)
Atalanttore Sep 3, 2023
e9e896d
Translated using Weblate (Russian)
tprudentova Sep 6, 2023
f0bad42
Translated using Weblate (French)
chibenwa Sep 12, 2023
0f2fed3
Hotfix: Temporarily hide `Add condition` in filter rule for release n…
dab246 Sep 14, 2023
817ee6f
Bump version to `v0.9.2`
dab246 Sep 14, 2023
a4c7eea
TF-2116 Add icon, color and base widget
dab246 Sep 6, 2023
df2b913
TF-2116 Sync all icon and remove icon unused
dab246 Sep 6, 2023
24be032
TF-2116 Create RecipientComposer widget and style
dab246 Sep 6, 2023
e56b2c2
TF-2116 Create TitleComposer widget and style
dab246 Sep 6, 2023
9458edb
TF-2116 Create SubjectComposer widget and style
dab246 Sep 6, 2023
6ea82d6
TF-2116 Create WebEditorComposer widget and style
dab246 Sep 6, 2023
8ff3f7e
TF-2116 Create AppBar/BottomBarComposer widget and style
dab246 Sep 6, 2023
d034974
TF-2116 Create ContainerViewComposer for all platform on web
dab246 Sep 6, 2023
1295eb5
TF-2116 Apply new design for web composer
dab246 Sep 6, 2023
8245f07
TF-2116 Create AttachmentComposer widget and style
dab246 Sep 6, 2023
0e07731
TF-2116 Apply new design attachment in web composer
dab246 Sep 6, 2023
c78992d
TF-2116 Create MobileEditor view
dab246 Sep 7, 2023
a8f9993
TF-2116 Create Mobile/Tablet container view
dab246 Sep 7, 2023
fe4ec14
TF-2116 Apply new design composer mobile
dab246 Sep 7, 2023
5f9eb6b
TF-2116 Add RequestReadReceipt and more option
dab246 Sep 7, 2023
4d8a759
TF-2116 Apply new design attachment in mobile composer
dab246 Sep 7, 2023
3ff79dc
TF-2116 Support expanded/collapsed for Signature in composer
dab246 Sep 7, 2023
cb347e5
TF-2116 Insert image at mouse cursor position
dab246 Sep 8, 2023
4bf72a6
TF-2116 Persist new signature when open draft email
dab246 Sep 12, 2023
5046f48
TF-2116 Remove log message unnecessary
dab246 Sep 12, 2023
4f0bb84
TF-2116 Support show collapse/expand signature for email view
dab246 Sep 12, 2023
e62655a
TF-2116 UnFocus input field when click collapse/expand signature on web
dab246 Sep 14, 2023
40ed96a
TF-2116 Update dependencies pubspec.lock
dab246 Sep 14, 2023
8f7298a
TF-2119 Add DraggableEmailAddress model
dab246 Sep 13, 2023
8148bc6
TF-2119 Create DraggableRecipientTag widget
dab246 Sep 13, 2023
958940c
TF-2119 Implement drag and drop between recipients
dab246 Sep 14, 2023
d1760db
TF-2119 Disable drag and drop recipients on mobile
dab246 Sep 14, 2023
12a63c6
TF-2119 Remove log console unnecessary in WebView
dab246 Sep 14, 2023
153e168
Fix built release but nginx route 404 not found on web
dab246 Sep 19, 2023
81f4b7d
Bump version to `v0.9.3`
dab246 Sep 19, 2023
873211a
TF-2120 Fix drag and drop text inside the composer on web
dab246 Sep 20, 2023
2948f3f
TF-1608 Add `messageId/inReplyTo/references` to properties in jmap re…
dab246 Sep 20, 2023
775c248
TF-1608 Set `references` and `inReplyTo` fields for reply/replyAll email
dab246 Sep 20, 2023
45eff18
TF-1608 Set `references` and `inReplyTo` fields for forward email
dab246 Sep 20, 2023
1f58a81
TF-1608 Add `references` and `inReplyTo` fields to email offline
dab246 Sep 20, 2023
72cba37
TF-1608 Upgrade hive database version to `6`
dab246 Sep 20, 2023
c8b233e
TF-2157 Remove `collapsed/expanded` signature in EmailView
dab246 Sep 20, 2023
013902f
Add a security.md file (#2163)
chibenwa Sep 21, 2023
c908607
Fix not found object in bindings
dab246 Sep 25, 2023
f5c569a
Fix can not open new tab for email
dab246 Sep 25, 2023
e53a91d
README: credit Linagora
chibenwa Sep 20, 2023
c559dae
TF-2168 Fix mailto invalid recipient
dab246 Sep 26, 2023
b8974ee
TF-2168 Add unit-test for `parseMapMailtoFromUri`
dab246 Sep 26, 2023
366be23
README: refresh the roadmap
chibenwa Sep 20, 2023
e9ce9e6
TF-2167 Support `CTRL+SHIFT+Z` to be able to restore the user input (…
dab246 Sep 28, 2023
045cd38
TF-2160 Fix email content is cut off
dab246 Sep 26, 2023
88362ca
TF-2160 Use `loading` attribute replace `IntersectionObserver`
dab246 Sep 26, 2023
2eb6ad6
TF-2118 Handle drop n drop image as inline
dab246 Sep 27, 2023
cb1f15d
TF-2118 Handle drop n drop file as attachment
dab246 Sep 28, 2023
f4d844b
TF-2118 Set width/height for drop zone view
dab246 Sep 28, 2023
7236909
TF-2118 Handle js code in `html_editor_enhanced` library
dab246 Sep 29, 2023
1450cc1
TF-2179 Add TitleAppBarThread widget/style
dab246 Sep 29, 2023
2c66cbf
TF-2179 Add MobileAppBarThread widget/style
dab246 Sep 29, 2023
7e8dca0
TF-2179 Add `maxLines/mainAxisSize` properties for TMailButtonWidget
dab246 Sep 29, 2023
5d1a436
TF-2179 Add DefaultWebAppBarThread widget/style
dab246 Sep 29, 2023
a8fbb1d
TF-2179 Add SelectionWebAppBarThread widget/style
dab246 Sep 29, 2023
66997fb
TF-2179 Update AppBarThread widget
dab246 Sep 29, 2023
783a94d
TF-2179 Set title align left on web
dab246 Sep 29, 2023
924490b
TF-2180 Fix suggestion list being hidden once user use device with sm…
dab246 Sep 29, 2023
72f5f04
TF-2172 Add DropZone widget
dab246 Oct 2, 2023
1d10593
TF-2172 Add DraggableAttachmentItem widget
dab246 Oct 2, 2023
13a88cc
TF-2172 Display DropZone view when drag active
dab246 Oct 2, 2023
a9c2b8d
TF-2172 Handle add attachment from drop zone
dab246 Oct 2, 2023
2fdbc6a
TF-2172 Disable focus of HtmlContentView when dragging attachment
dab246 Oct 2, 2023
451ebbd
TF-2202 Use `InternetConnectionChecker` to check internet connection …
dab246 Oct 3, 2023
2e0b5ca
TF-2202 Store `SendingEmail` to queue when get error `NoInternetConne…
dab246 Oct 3, 2023
3aad768
TF-2199 show suggestion for unknown email when suggestion list is empty
hieutbui Oct 4, 2023
89a86c7
TF-2199 show suggestion for unknown email when suggestion list is not…
hieutbui Oct 4, 2023
a818b91
TF-2189 Keep composer available before click on proceed
dab246 Oct 3, 2023
c0a7af2
TF-2189 Handle click cancel on dialog
dab246 Oct 3, 2023
7052f3e
TF-2189 Avoid compile runtime InternetConnectionChecker on web
dab246 Oct 4, 2023
7ea91d5
TF-2182 Fix no blue bar for calendar events
dab246 Oct 4, 2023
9ab9a9b
TF-2182 Add video conferences for google event
dab246 Oct 5, 2023
3ca22fd
TF-2182 Add event actions for google event
dab246 Oct 5, 2023
5b44a00
TF-2182 Enable hyperlink for event description
dab246 Oct 5, 2023
fb802e5
TF-2188 Add `Canceled` sending state
dab246 Oct 5, 2023
04af133
TF-2188 Allow editable waiting/running/canceled status
dab246 Oct 5, 2023
cec4ccb
TF-2188 Disable sending queue on iOS
dab246 Oct 5, 2023
03d03dd
TF-2188 Remove radius and background color bottom bar sending queue
dab246 Oct 5, 2023
47d1c2e
TF-2190 Add top padding for confirm dialog
dab246 Oct 5, 2023
95dfd0e
TF-2187 Handle click system back button to back to Inbox
dab246 Oct 5, 2023
2104bad
TF-2176 Update app grid icons default
dab246 Oct 6, 2023
7906766
TF-2194 Add newSubfolder to MailboxActions
hieutbui Oct 5, 2023
71eff81
TF-2094 add newSubFolder action to list action for default and person…
hieutbui Oct 5, 2023
c8b2dc1
TF-2194 Update mailbox creator for pre-selected mailbox parent
hieutbui Oct 5, 2023
6f41eb6
TF-2194 Add case newSubfolder to handleMailboxAction
hieutbui Oct 5, 2023
84ca809
TF-2194 Update create new mailbox without pre-selected parent mailbox
hieutbui Oct 5, 2023
ee0b9b3
TF-2194 Add case subFolder to search mailbox
hieutbui Oct 5, 2023
14b0ff9
Set default mimeType is `application/octet-stream`
dab246 Oct 6, 2023
ad223e1
Fix some file with mimeType is empty cannot drag n drop attachment
dab246 Oct 6, 2023
6ecd169
user guide
Oct 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 7 additions & 21 deletions .github/workflows/analyze-test.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
on:
workflow_call:
pull_request:
paths-ignore:
- ".github/**"
- "docs"
- "Jenkinsfile"
- "**/*.md"

name: Analyze and test

Expand All @@ -25,7 +30,7 @@ jobs:
- name: Setup flutter
uses: subosito/flutter-action@v2
with:
flutter-version: "3.0.5"
flutter-version: "3.10.6"
channel: "stable"
cache: true
cache-key: "deps-${{ hashFiles('**/pubspec.lock') }}"
Expand Down Expand Up @@ -56,22 +61,3 @@ jobs:
with:
name: test-reports
path: test-report*.json

report:
runs-on: ubuntu-latest
if: success() || failure() # Always upload report
needs:
- analyze-test
steps:
- uses: actions/checkout@v3

- uses: actions/download-artifact@v3
with:
name: test-reports

- uses: dorny/test-reporter@v1
with:
name: Flutter Tests
path: "*.json"
reporter: flutter-json
only-summary: "true"
57 changes: 15 additions & 42 deletions .github/workflows/ci.yaml → .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -1,23 +1,11 @@
on:
workflow_dispatch:
pull_request:
paths-ignore:
- ".github/**"
- "docs"
- "Jenkinsfile"
- "**/*.md"

name: CI
name: Build dev binaries

jobs:
analyze-test:
name: Analyze and test
uses: ./.github/workflows/analyze-test.yaml

build-app:
name: Build app
needs:
- analyze-test
runs-on: ${{ matrix.runner }}
strategy:
matrix:
Expand All @@ -35,27 +23,24 @@ jobs:
- name: Setup flutter
uses: subosito/flutter-action@v2
with:
flutter-version: "3.0.5"
flutter-version: "3.10.6"
channel: "stable"
cache: true
cache-key: deps-${{ hashFiles('**/pubspec.lock') }} # optional, change this to force refresh cache
cache-path: ${{ runner.tool_cache }}/flutter # optional, change this to specify the cache path

- name: Setup Fastlane
uses: ruby/setup-ruby@v1
with:
ruby-version: "ruby"
bundler-cache: true
working-directory: ${{ matrix.os }}

- name: Setup Firebase env
env:
FIREBASE_ENV: ${{ secrets.FIREBASE_ENV }}
run: echo "$FIREBASE_ENV" > ./configurations/env.fcm

- name: Setup Android environment
if: matrix.os == 'android'
env:
PLAY_STORE_UPLOAD_KEY_BASE64: ${{ secrets.PLAY_STORE_UPLOAD_KEY_BASE64 }}
PLAY_STORE_KEY_INFO_BASE64: ${{ secrets.PLAY_STORE_KEY_INFO_BASE64 }}
run: |
echo "$PLAY_STORE_UPLOAD_KEY_BASE64" | base64 --decode > app/keystore.jks
echo "$PLAY_STORE_KEY_INFO_BASE64" | base64 --decode > key.properties
working-directory: ${{ matrix.os }}

- name: Setup Java
if: matrix.os == 'android'
uses: actions/setup-java@v3
Expand All @@ -65,37 +50,25 @@ jobs:

- name: Setup iOS environment
if: matrix.os == 'ios'
env:
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
PROVISION_PROFILE_BASE64: ${{ secrets.PROVISION_PROFILE_BASE64 }}
SHAREEXT_PROVISION_PROFILE_BASE64: ${{ secrets.SHAREEXT_PROVISION_PROFILE_BASE64 }}
run: |
echo -n "$CERTIFICATE_BASE64" | base64 --decode --output cert.p12
echo -n "$PROVISION_PROFILE_BASE64" | base64 --decode --output buildpp.mobileprovision
echo -n "$SHAREEXT_PROVISION_PROFILE_BASE64" | base64 --decode --output shareextpp.mobileprovision
flutter pub get && pod install
flutter pub get
pod install && pod update
working-directory: ${{ matrix.os }}

- name: Setup Fastlane
uses: ruby/setup-ruby@v1
with:
ruby-version: "ruby"
bundler-cache: true
working-directory: ${{ matrix.os }}

- name: Run prebuild
run: bash prebuild.sh

- name: Build
env:
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
APPLE_CERTIFICATES_SSH_KEY: ${{ secrets.APPLE_CERTIFICATES_SSH_KEY }}
run: bundle exec fastlane dev
working-directory: ${{ matrix.os }}

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: tmail-dev-pr-${{ github.event.pull_request.number }}
name: tmail-dev
path: |
build/app/outputs/flutter-apk/app-release.apk
build/app/outputs/flutter-apk/app-debug.apk
ios/Runner.ipa
98 changes: 98 additions & 0 deletions .github/workflows/image.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
on:
push:
branches:
- "master"
tags:
- "v*.*.*"

name: Build Docker images

jobs:
build-dev-image:
name: Build development image
if: github.ref_type == 'branch' && github.ref_name == 'master'
runs-on: ubuntu-latest
environment: dev

steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ github.repository_owner }}/tmail-web
ghcr.io/${{ github.repository_owner }}/tmail-web
tags: |
type=ref,event=branch

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push image
uses: docker/build-push-action@v4
with:
push: true
cache-from: |
type=gha
cache-to: |
type=gha
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

build-release-image:
name: Build release image
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment: prod

steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ github.repository_owner }}/tmail-web
ghcr.io/${{ github.repository_owner }}/tmail-web
tags: |
type=ref,event=tag
type=raw,value=release

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push image
uses: docker/build-push-action@v4
with:
push: true
cache-from: |
type=gha
cache-to: |
type=gha
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
69 changes: 69 additions & 0 deletions .github/workflows/pr-deployments.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
on:
pull_request:
paths:
- "**/*.dart"

name: Deploy PR on Github Pages

jobs:
deploy:
name: Build web version and deploy
runs-on: ubuntu-latest
environment:
name: PR-${{ github.event.pull_request.number }}
url: ${{ steps.configure.outputs.URL }}

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Setup flutter
uses: subosito/flutter-action@v2
with:
flutter-version: "3.10.6"
channel: "stable"
cache: true
cache-key: deps-${{ hashFiles('**/pubspec.lock') }} # optional, change this to force refresh cache
cache-path: ${{ runner.tool_cache }}/flutter # optional, change this to specify the cache path

- name: Run prebuild
run: bash prebuild.sh

- name: Configure environments
id: configure
env:
FOLDER: ${{ github.event.pull_request.number }}
run: |
sed -i "s|SERVER_URL=.*|SERVER_URL=https://apisix.upn.integration-open-paas.org/|g" env.file
sed -i "s|DOMAIN_REDIRECT_URL=.*|DOMAIN_REDIRECT_URL=https://$GITHUB_REPOSITORY_OWNER.github.io/${GITHUB_REPOSITORY##*/}/$FOLDER|g" env.file
echo "URL=https://$GITHUB_REPOSITORY_OWNER.github.io/${GITHUB_REPOSITORY##*/}/$FOLDER" >> $GITHUB_OUTPUT

- name: Build
env:
FOLDER: ${{ github.event.pull_request.number }}
run: flutter build web --profile --verbose --base-href "/${GITHUB_REPOSITORY##*/}/$FOLDER/"

- name: Deploy to Github Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
destination_dir: ${{ github.event.pull_request.number }}
keep_files: true
publish_dir: "build/web"

- name: Find deployment comment
uses: peter-evans/find-comment@v2
id: fc
with:
comment-author: "github-actions[bot]"
issue-number: ${{ github.event.pull_request.number }}
body-includes: "This PR has been deployed to"

- name: Create or update deployment comment
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
This PR has been deployed to ${{ steps.configure.outputs.URL }}.
edit-mode: replace
Loading