Skip to content

Commit

Permalink
chore: move to animo tech stack
Browse files Browse the repository at this point in the history
Signed-off-by: Berend Sliedrecht <[email protected]>
  • Loading branch information
Berend Sliedrecht committed Jun 11, 2024
1 parent 226ae60 commit b1f08c3
Show file tree
Hide file tree
Showing 150 changed files with 15,834 additions and 1,724 deletions.
85 changes: 0 additions & 85 deletions .eslintrc.js

This file was deleted.

26 changes: 20 additions & 6 deletions .github/workflows/continuous-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,30 @@ on:
- 'ios'
- 'all'
default: 'all'
app:
type: choice
description: 'App to deploy'
required: true
options:
- 'funke'
- 'paradym'
default: 'paradym'

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 🏗 Setup repo
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: 🏗 Setup Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18.x
cache: yarn

- uses: pnpm/action-setup@v4
with:
version: 9

- name: 🏗 Setup EAS
uses: expo/expo-github-action@v8
Expand All @@ -41,12 +52,15 @@ jobs:
token: ${{ secrets.EXPO_PUBLISHER_ACCESS_TOKEN }}

- name: 📦 Install dependencies
run: yarn install
run: pnpm install

- name: 🚀 Build
run: pnpm build

- name: 🚀 Build internal preview
if: ${{ github.event.inputs.channel == 'preview' }}
run: (cd apps/expo && eas build --non-interactive --platform ${{ github.event.inputs.platform }} --profile preview --no-wait)
run: (cd apps/${{ github.event.inputs.app }} && eas build --non-interactive --platform ${{ github.event.inputs.platform }} --profile preview --no-wait)

- name: 🚀 Build and Submission to TestFlight / Alpha Track
if: ${{ github.event.inputs.channel == 'production' }}
run: (cd apps/expo && eas build --non-interactive --platform ${{ github.event.inputs.platform }} --profile production --no-wait --auto-submit)
run: (cd apps/${{ github.event.inputs.app }} && eas build --non-interactive --platform ${{ github.event.inputs.platform }} --profile production --no-wait --auto-submit)
21 changes: 12 additions & 9 deletions .github/workflows/continuous-integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,28 @@ jobs:
name: Validate
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18.x
cache: yarn

- uses: pnpm/action-setup@v4
with:
version: 9

- name: Install dependencies
run: yarn install
run: pnpm install

- name: Compile
run: yarn build
run: pnpm build

- name: Linting
run: yarn lint
run: pnpm lint

- name: Prettier
run: yarn check-format
- name: Formatting
run: pnpm format

- name: Check Types
run: yarn check-types
run: pnpm check-types
8 changes: 0 additions & 8 deletions .maestro/app-flow.yaml

This file was deleted.

3 changes: 0 additions & 3 deletions .maestro/tests/actions/exit-qr-code-android.yaml

This file was deleted.

4 changes: 0 additions & 4 deletions .maestro/tests/actions/exit-qr-code-ios.yaml

This file was deleted.

3 changes: 0 additions & 3 deletions .maestro/tests/actions/expo-app-selector.yaml

This file was deleted.

10 changes: 0 additions & 10 deletions .maestro/tests/actions/start-app.yaml

This file was deleted.

16 changes: 0 additions & 16 deletions .maestro/tests/qr-code-scanner.yaml

This file was deleted.

1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node-linker=hoisted
7 changes: 0 additions & 7 deletions .prettierrc

This file was deleted.

2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"typescript.tsdk": "node_modules/typescript/lib"
"typescript.tsdk": "node_modules/typescript/lib"
}
1 change: 0 additions & 1 deletion .watchmanconfig

This file was deleted.

21 changes: 0 additions & 21 deletions .yarnrc.yml

This file was deleted.

34 changes: 9 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ The wallet can be used in three environments:

## Project Structure

The project is a monorepo managed using **Yarn (v3)**, which contains an **Expo React Native** application. The UI is built using **Tamagui**, and navigation is handled using **Expo Router, React Navigation and Solito**. For the Agent and SSI capabilities **Aries Framework JavaScript (AFJ)** is used.
The project is a monorepo managed using **pnpm**, which contains an **Expo React Native** application. The UI is built using **Tamagui**, and navigation is handled using **Expo Router, React Navigation and Solito**. For the Agent and SSI capabilities **Aries Framework JavaScript (AFJ)** is used.

The folder structure is as follows

Expand All @@ -46,41 +46,25 @@ You can add other folders inside of `packages/` if you know what you're doing an

## 🏁 Start the Paradym wallet

First, start by installing all dependencies by running `yarn`.
First, start by installing all dependencies by running `pnpm install`.

Once all dependencies are installed, you need to make sure you have a development build of the app on your mobile device.
You can install this using the following commands:

```
cd apps/paradym
yarn prebuild
yarn ios # or android
pnpm prebuild
pnpm ios # or android
```

You only need to install the development build when **native** dependencies change. If you're only working on JS, you can skip this step if you already have the development build installed.

Once installed you can run `yarn native` from the root of the project to start your development server.
Once installed you can run `pnpm start` from the root of the project to start your development server.

## 📦 Releasing

🚧 Soon documentation will be added on how to publish a new release to the Apple App Store and Google Play Stores. 🚧

## 🧪 Integration Testing

We use [Maestro](https://maestro.mobile.dev/) for integration testing. Maestro is a tool for writing integration tests for mobile apps. It allows you to write tests in YAML that run on real devices and interact with your app just like a real user would.

The tests are located in the `.maestro` folder.

You need to have the app running with `yarn ios/android` before running the tests.

### Required dependencies

- [Maestro CLI](https://maestro.mobile.dev/getting-started/installing-maestro)

### Running tests

- `yarn maestro:test` - Run all tests
- `yarn maestro:studio` - A GUI for creating test actions

## 🆕 Add new dependencies

Expand All @@ -90,9 +74,9 @@ If you're installing a JavaScript-only dependency that will be used across platf

```sh
cd packages/app
yarn add date-fns
pnpm add date-fns
cd ../..
yarn
pnpm
```

### Native dependencies
Expand All @@ -101,9 +85,9 @@ If you're installing a library with any native code, you must install it in `exp

```sh
cd apps/paradym
yarn add react-native-reanimated
pnpm add react-native-reanimated
cd ..
yarn
pnpm
```

You can also install the native library inside of `packages/app` if you want to get autoimport for that package inside of the `app` folder. However, you need to be careful and install the _exact_ same version in both packages. If the versions mismatch at all, you'll potentially get terrible bugs. This is a classic monorepo issue. You can use `lerna-update-wizard` to help with this (you don't need to use Lerna to use that lib).
Loading

0 comments on commit b1f08c3

Please sign in to comment.