No description
Find a file
Rahim Rahman e7d597f70e
test: mitmproxy + low bandwidth + automated QA using detox (#8202)
* experimental github action

* start mtmproxy then kill it

* suspend test for now

* dont need to be in a PR to trigger

* trying again with mitmdump

* where is .mitmproxy folder?

* run with +e

* not sure why exit code 1

* if this is a better path

* let's try killing using trap?

* trying a different path

* maybe using ~  would work?

* looking at output to networksetup command

* minor mistake

* throttling bandwidth

* lets try with sudo

* missing sudo

* using mitmdump

* remove spaces

* tried diff path

* change to the proper file

* upload artifacts

* install cert

* added cert to simulator

* getting simulator UDID

* proper scoped var

* using github outputs

* getenv doesn't have IOS_SIMULATOR_UDID

* using echo command

* maybe forgot to scope outputs

* lets run the command directly

* changed to iPhone 14

* let me see all the devices

* try something new

* rearrange my steps to get cert

* getenv booted

* remove too many outputs

* using mm mobile test server

* tie it all together with detox test

* removed dependency for another job

* put dependency on a job

* simplify process even more

* add github-token on download artifact

* add run-id, hopefully that's what needed to download

* incorrect speed for download

* update to the correct dummynet syntax

* proper mitmdump flow report

* update allow-hosts

* commenting out mitmdump for now

* back to rahim-experiments

* overly commented out

* cacert not --ca-cert

* maybe i allow the wrong host?

* maybe i just forgotr to kill mitmdump after I'm done?

* using pm2

* reinstate jobs. and longer timeout for detox

* need sudo

* recording videos and limiting to 1 test

* just want to run 1 test.

* back to experimenting

* using wget

* test using chrome

* using chrome and add delay

* ok test again with detox

* go back to testing all server_login

* compare booted simulators

* few more experiments

* no \

* using github_outputs

* using fromJSON

* too many $

* can i do this another way?

* two runs to get the it assigned

* try again

* .

* trying to access devices array

* try again

* using jq

* keep it simple

* might not need outputs

* forgot pipe

* will this work?

* will first element of an array works

* see if we got the udid

* did we get it wrong?

* will this work?

* let's assign?

* we have to put into string

* ok 1 more

* will it have quotes?

* echo in an echo

* is this working?

* let's hope this works.

* it's actually using 17.4 iPhone 14 not 17.0

* broke because i add &

* removed failed step

* lowering ping and going back to 10 parallel test

* double-up ONE_SEC to see if tests will pass

* why curl failed after?

* getting more data from failures

* let's get more logs with pm and mitmdump

* more logging and improvement

* silly error!

* problem with throttling, let's figure out where we can improve

* increase timeout for low-bandwidth

* increased delay + run all tests

* lets see if this will be better for throttling

* try set +e to see if it will return failure

* check disk space.

* deleting zip and trash to free up space.

* try to do pfctl twice to see if that would help

* making bandwidth-throttling a composite action

* would 5 seconds make a diff?

* add shell

* throttle bandwidth experiment

* fix quick problem

* 5s sleep, and throttling at the right time

* the throttling was working better earlier.

* add a flush in between

* no exit, see if it works well

* trying continue-on-error

* resetting with continue-on-error vs checking for if steps before worked

* adding flush before throttling to see if it makes a diff

* put it back where we think is the best spot

* change timeout to 60 and some cleanup

* forgot a simple $

* move network throttling again to see if this is better?

* rearranging

* move throttling back to where it used to work well
making bandwidth-throttling action taking inputs

* forgot shell

* inputs not input, and continue-on-error

* getting host from site_1_url

* update the sed script

* move more steps into composite action file

* add shell

* add more shell

* action cleanup

* see if our reset network setting works

* delete unused files

* more clean up

* wrong indentation

* wrong context

* see if not having low bandwidth enabled would cause stuff to break

* will it fail on non-existent step name?

* things are failing after proxy started

* start using low_bandwidth_mode input

* incorrect use of curly bracket

* low_bandwidth_mode vs low_bandwidth

* correcting the use of curly bracket in if check

* low_bandwidth_mode correction

* why would https:// makes a diff?

* just going to start pm2 after stopping

* move things around again

* some more re-arranging

* exit 1

* rearranged too much

* clean up

* start-proxy action

* incorrect variable name

* use test_server_url instead

* reverting back to original

* use pull_request

* using env var prepend

* using existing artifact

* not in ""

* not going to prepend anymore

* incorrectly removed input instead of env

* close to final

* using original e2e-detox-template

* timeout-minutes need to be higher for low_bandwidth.

* using label instead of push to branch

* add check-label

* remove unneeded test

* renamed ci.yml back to original

* different way to remove label
remove experiment files
reinstate ci.yml

* remove experiment file

* see label again

* output labels

* another experiment

* test again

* fix issue when checking for low bandwidth

* revert changes to package.json in detox/

* changed download to upload in the description

* changes based on review

* add github.event.label.name to the group "id" per @mvitale1989 suggestion

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2024-10-14 07:56:52 -06:00
.github test: mitmproxy + low bandwidth + automated QA using detox (#8202) 2024-10-14 07:56:52 -06:00
.husky Push react native to 0.73.6 (#7863) 2024-04-22 12:44:39 +02:00
android Bump app build number to 566 (#8253) 2024-10-11 08:02:58 -04:00
app Update calls-common (#8255) 2024-10-11 13:47:49 -06:00
assets Translations update from Mattermost Weblate (#8259) 2024-10-14 15:14:33 +02:00
build/notice-file Ignore local deps in notice-file-generator config (#8041) 2024-06-26 11:29:26 +02:00
detox test: mitmproxy + low bandwidth + automated QA using detox (#8202) 2024-10-14 07:56:52 -06:00
docs Add an architecture diagram to docs (#8110) 2024-07-25 10:52:55 -04:00
eslint [Gekidou] update deps (#6667) 2022-10-13 08:41:18 -03:00
fastlane Various Fixes (#8212) 2024-09-13 04:46:15 +08:00
ios Add fixes for xCode 16 changes (#8254) 2024-10-11 17:02:45 +02:00
libraries/@mattermost Fix iPad split view (#8199) 2024-09-16 10:49:46 +08:00
patches Add fixes for xCode 16 changes (#8254) 2024-10-11 17:02:45 +02:00
scripts test: mitmproxy + low bandwidth + automated QA using detox (#8202) 2024-10-14 07:56:52 -06:00
share_extension Avoid registering wrong performance load logs (#8107) 2024-07-24 18:42:31 +02:00
test add unit tests to app/utils/notification (#8140) 2024-08-29 00:04:12 +08:00
types open an external browser when the server config for MobileExternalBrowse is set to true (#8220) 2024-09-17 06:40:12 +08:00
.buckconfig Barebones code for v2 2020-11-17 14:20:58 -03:00
.editorconfig MM-35115 [Gekidou] Login flow - Email and Password (#5402) 2021-06-18 00:57:40 -04:00
.eslintrc.json Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
.flowconfig [Gekidou] Upgrade to RN 0.70 (#6690) 2022-10-20 10:18:25 -03:00
.gitattributes Update v2 dependencies (#5312) 2021-04-14 10:55:29 -04:00
.gitignore [MM-57486] [MM-58008] Calls: Mobile ringing for incoming calls (#7984) 2024-07-03 10:22:46 -04:00
.node-version Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
.npmrc MM-54535 Fixed hang when using the magic keyboard on iPadOS 17 (#7555) 2023-09-27 18:54:33 +03:00
.nvmrc Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
.ruby-version CLD-7165 Bump MacOS runner version (#7828) 2024-02-22 11:35:56 +01:00
.solidarity Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
.watchmanconfig Barebones code for v2 2020-11-17 14:20:58 -03:00
app.json Barebones code for v2 2020-11-17 14:20:58 -03:00
babel.config.js Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
CHANGELOG.md Barebones code for v2 2020-11-17 14:20:58 -03:00
CONTRIBUTING.md Barebones code for v2 2020-11-17 14:20:58 -03:00
env.d.ts Detox/E2E: Channel Info Unarchive e2e tests in Gekidou (#6515) 2022-07-28 10:47:34 -07:00
Gemfile Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
Gemfile.lock update ruby gems dependencies to build the ios app (#8158) 2024-08-21 09:07:06 -04:00
index.ts fix: use polyfill-force to improve startup time (#7904) 2024-04-22 09:54:52 +02:00
ISSUE_TEMPLATE.md Update ISSUE_TEMPLATE.md (#7080) 2023-02-03 08:55:40 -05:00
jest.config.js Update jest config to show coverage for correct folders (#8069) 2024-07-09 08:58:46 -04:00
jsconfig.json Barebones code for v2 2020-11-17 14:20:58 -03:00
LICENSE.txt Barebones code for v2 2020-11-17 14:20:58 -03:00
metro.config.js Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
NOTICE.txt chore: Update NOTICE.txt file with updated dependencies (#8105) 2024-07-22 09:01:52 -04:00
package-lock.json Update calls-common (#8255) 2024-10-11 13:47:49 -06:00
package.json Update calls-common (#8255) 2024-10-11 13:47:49 -06:00
PULL_REQUEST_TEMPLATE.md Barebones code for v2 2020-11-17 14:20:58 -03:00
react-native.config.js Update v2 dependencies (#5312) 2021-04-14 10:55:29 -04:00
README.md Update README.md (#7996) 2024-06-14 08:28:55 -04:00
SECURITY.md Barebones code for v2 2020-11-17 14:20:58 -03:00
tsconfig.json Upgrade RN as well as update or replace other dependencies (#8011) 2024-06-19 09:33:45 +08:00
tsconfig.test.json Barebones code for v2 2020-11-17 14:20:58 -03:00

Mattermost Mobile v2

  • Minimum Server versions: Current ESR version (9.5.0+)
  • Supported iOS versions: 13.4+
  • Supported Android versions: 7.0+

Mattermost is an open source Slack-alternative used by thousands of companies around the world in 21 languages. Learn more at https://mattermost.com.

You can download our apps from the App Store or Google Play Store, or build them yourself.

We plan on releasing monthly updates with new features - check the changelog for what features are currently supported!

Important: If you self-compile the Mattermost Mobile apps you also need to deploy your own Mattermost Push Notification Service.

How to Contribute

Testing

To help with testing app updates before they're released, you can:

  1. Sign up to be a beta tester
    • Android
    • iOS - Open this link from your iOS device
  2. Install the Mattermost Beta app. New updates in the Beta app are released periodically. You will receive a notification when the new updates are available.
  3. File any bugs you find by filing a GitHub issue with:
    • Device information
    • Repro steps
    • Observed behavior (including screenshot / video when possible)
    • Expected behavior
  4. (Optional) Sign up for our team site

You can leave the Beta testing program at any time:

  • On Android, click this link while logged in with your Google Play email address used to opt-in for the Beta program, then click Leave the program.
  • On iOS, access the Mattermost Beta app page in TestFlight and click Stop Testing.

Contribute Code

  1. Look in GitHub issues for issues marked as [Help Wanted]
  2. Comment to let people know youre working on it
  3. Follow these instructions to set up your developer environment
  4. Join the Native Mobile Apps channel on our team site to ask questions

Frequently Asked Questions

How is data handled on mobile devices after a user account is deactivated?

App data is wiped from the device when a user logs out of the app. If the user is logged in when the account is deactivated, then within one minute the system logs the user out, and as a result all app data is wiped from the device.

I need the code for the v1 version

You can still access it! We have moved the code from master to the v1 branch. Be aware that we will not be providing any more v1 versions or updates in the public stores.

Troubleshooting

I keep getting a message "Cannot connect to the server. Please check your server URL and internet connection."

This sometimes appears when there is an issue with the SSL certificate configuration.

To check that your SSL certificate is set up correctly, test the SSL certificate by visiting a site such as https://www.ssllabs.com/ssltest/index.html. If theres an error about the missing chain or certificate path, there is likely an intermediate certificate missing that needs to be included.

Please note that the apps cannot connect to servers with self-signed certificates, consider using Let's Encrypt instead.

I see a “Connecting…” bar that does not go away

If your app is working properly, you should see a grey “Connecting…” bar that clears or says “Connected” after the app reconnects.

If you are seeing this message all the time, and your internet connection seems fine:

Ask your server administrator if the server uses NGINX or another webserver as a reverse proxy. If so, they should check that it is configured correctly for supporting the websocket connection for APIv4 endpoints.