This project uses Expo. To install and run it properly, see Expo installation Guides. To run and build local codebase, the team uses the Expo Go App.
Run to install local dependencies on node_modules and install expo-cli globally.
npm i
npm install --global expo-cli
- it's also required to install the Android SDK in your default environment. Ideally, set to a
{yourPath}\AppData\Local\Android\Sdkdirectory.
The test files are stored along their testing components, as in
/src/components/form/LoginForm.tsx // a React component, along
/src/components/form/LoginForm.test.tsx // it's test suite file
The current test-runner is jest-expo. To run all test suites, run
npm test
Run the following command to automatically format all source files.
npm run prettier-write-all
Run this command to start tunnel mode.
npm run start-tunnel
Afterwards, scan the generated QR Code with your Expo GO App
Currently, the repository maintains 3 github-actions workflows (pipelines), namely:
Unit Tests: Install dependencies and run tests withjestusing the commandThis pipeline targets branchesnpm testmainanddevelopmentand runs on their pull-requests automatically. It either enables or locks pull requests merging based on tests results.CI: Extends theUnit Testspipeline by running tests withjestand, when tests run ok, merges the current branch withmain. Currently, it only runs ondevelopmentbranch pushes. It allows for themainbranch to be continuously kept up with the latest test-passing commits atdevelopment.EAS Build (android): It connects withEAS, the API that allows for app deployment withExpo. This pipeline runs the project's automated tests withjest, and when tests run ok, builds the app atExpothrough thepreviewprofile. Currently, these build executions generate Android APKs only, which are used for internal distribution. The following command is the final line in this pipeline. Notice that anEXPO_SECRETenvironment variable needs to be set in order to allow this pipeline to execute correctly.Whenevereas build --platform android --profile preview --non-interactivemaingets pushed or theCIpipeline executes successfully, theEAS Build (android)pipeline executes. It is also possible to execute this workflow manually through the repository'sGithub Actionssection.
This project uses Expo to maintaing app builds and distribute it. A free Expo account is maintained and it's EXPO_SECRET token is configured in the repo's workflow environment.
Currently, only android (APK) builds are supported, and are made available to internal distribution through Expo-generated links. The repository supports Continuous Deployment through GitHub Actions workflows, building the app at Expo whenever the main branch is pushed. See more at the Pipelines section.