https://github.com/minds/mobile-native
mirror of https://gitlab.com/minds/mobile-native
https://github.com/minds/mobile-native
android ios minds open-source react-native social-media social-network
Last synced: about 1 year ago
JSON representation
mirror of https://gitlab.com/minds/mobile-native
- Host: GitHub
- URL: https://github.com/minds/mobile-native
- Owner: Minds
- License: agpl-3.0
- Created: 2018-03-27T03:14:02.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-04-29T09:33:14.000Z (about 1 year ago)
- Last Synced: 2025-04-29T21:14:44.317Z (about 1 year ago)
- Topics: android, ios, minds, open-source, react-native, social-media, social-network
- Language: TypeScript
- Homepage: https://minds.com
- Size: 60.9 MB
- Stars: 99
- Watchers: 18
- Forks: 35
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Minds Mobile Apps
## Install
Clone mobile\
`git clone git@gitlab.com:minds/mobile-native.git`
Clone locale\
`cd ..`
`git clone git@gitlab.com:minds/l10n.git`
`cd -`
## Branch Structure
| Branch | |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| master | Approved code ready to merged into the next stable release. All tests should pass and be in a 'ready' state |
| stable/\* | Stable builds, inherited from `release/*` branches. Fastlane automatically deploys these builds. |
| test/\* | Release candidate builds, inherited from `release/*` branches. Fastlane automatically deploys these builds. |
| release/\* | WIP builds. Run `fastlane run increment_version_number` upon creating the branch. |
| feat/\* | New branches should be made for each Gitlab issue. Merge requests should be opened pointing towards the respective release branch. |
## Increasing the version number
### Patch
`fastlane run increment_version_number bump_type:patch`
### Minor
`fastlane run increment_version_number bump_type:minor`
### Major
`fastlane run increment_version_number bump_type:major`
## Platforms
- iOS
- Android
## Install dependencies
- `yarn install`
- `cd ios && pod install` (iOS only)
## Building
- `npx expo run:android` or `npx expo run:ios`
## Testing
- `yarn test`
## Testing e2e (macOS)
Install the detox cli
- `brew tap wix/brew`
- `brew install applesimutils`
- `yarn global add detox-cli`
Run the tests
- `detox build -c ios.sim.debug`
- `detox test -c ios.sim.debug`
You can use -c ios.sim.release for e2e test a production build
### Building Android releases
#### Setup your environment variables
`export ANDROID_KEYSTORE=`
`export KEYSTORE_PASSWORD=`
`export SENTRY_ANDROID_PROPERTIES=`
#### Build
1. Build the app
`cd android && fastlane assemble_build && cd ..`
2. Push to s3
`aws s3 cp android/app/build/outputs/apk/release/app-release.apk s3://minds-repo/android/Minds-stable-4-8-2.apk`
3. Update the releases.json
`yarn release-json android/app/build/outputs/apk/release/app-release.apk`
4. Verify the release name is correct in ./releases.json
5. Upload the releases.json changes
`aws s3 cp releases.json s3://minds-repo/android/releases/releases.json`
#### Custom Release
Once the file is generated in the CI download the apk and run:
`yarn release-json path/file.apk`
This will update the release.json with this version data
Note: You have to update the change-log for the version!
Upload the file to s3 and that is it.
## Running Webdriverio tests on BrowserStack:
### Features:
- Platform: iOS & Android
- Frontend Framework: WebdriverIO Node.js
- Frontend Testing Framework: Jasmine
- Reporter: Spec
- Integrations: BrowserStack Real Devices, CI (TBD) & Suite Setup (TBD)
### Dependencies:
#### _Pre-requisites_: Install latest version of Node and create environment variables.
#### _Node_: https://nodejs.org/en/download/
#### _Environment variables for WebdriverIO Tests_:
USERNAME & PASSWORD
#### _Environment variables for BrowserStack Connection_:
BROWSERSTACK_USERNAME, BROWSERSTACK_ACCESS_KEY, BROWSERSTACK_IOS_APP_ID & BROWSERSTACK_ANDROID_APP_ID
### Run Command:
#### Run this command within the project to install all package.json dependencies:
```
yarn
```
#### Run the command below to execute automation on BrowserStack iOS & Android real devices respectively:
```
yarn run e2e:ios:browserstack
yarn run e2e:android:browserstack
```
##### _Copyright Minds 2022_