Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .cursorrules
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Best Practices:

Additional Rules:

- Use `pnpm` as the package manager.
- Use `yarn` as the package manager.
- Use Expo's secure store for sensitive data
- Implement proper offline support
- Use `zustand` for state management
Expand Down
5 changes: 2 additions & 3 deletions .deepsource.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,5 @@ version = 1
name = "javascript"
enabled = true

[analyzers.meta]
environment = ["browser"]
plugins = ["angular"]
[analyzers.meta]
plugins = ["react"]
38 changes: 18 additions & 20 deletions .github/workflows/react-native-cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,28 +64,27 @@ jobs:
- name: 🏗 Checkout repository
uses: actions/checkout@v4

- name: pnpm-setup
uses: pnpm/action-setup@v2

- name: 🏗 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'pnpm'
cache: 'yarn'

- name: 📦 Setup pnpm cache
- name: 📦 Setup yarn cache
uses: actions/cache@v3
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
path: |
~/.cache/yarn
node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-pnpm-
${{ runner.os }}-yarn-

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

- name: 🧪 Run Checks and Tests
run: pnpm check-all
run: yarn check-all

build-and-deploy:
if: (github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')) || github.event_name == 'workflow_dispatch'
Expand All @@ -101,27 +100,26 @@ jobs:
- name: 🏗 Checkout repository
uses: actions/checkout@v4

- name: pnpm-setup
uses: pnpm/action-setup@v2

- name: 🏗 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'pnpm'
cache: 'yarn'

- name: 📦 Setup pnpm cache
- name: 📦 Setup yarn cache
uses: actions/cache@v3
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
path: |
~/.cache/yarn
node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-pnpm-
${{ runner.os }}-yarn-

- name: 📦 Install dependencies
run: |
pnpm install
pnpm add -g eas-cli@latest
yarn install --frozen-lockfile
yarn global add eas-cli@latest

- name: 📋 Create Credentials File
run: |
Expand Down
1 change: 0 additions & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
node-linker=hoisted
auto-install-peers=true
12 changes: 6 additions & 6 deletions eas.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"build": {
"production": {
"distribution": "store",
"pnpm": "9.12.3",
"yarn": "1.22.22",
"ios": {
"image": "latest"
},
Expand All @@ -20,7 +20,7 @@
},
"production-apk": {
"distribution": "store",
"pnpm": "9.12.3",
"yarn": "1.22.22",
"ios": {
"image": "latest"
},
Expand All @@ -36,7 +36,7 @@
},
"staging": {
"distribution": "internal",
"pnpm": "9.12.3",
"yarn": "1.22.22",
"ios": {
"image": "latest"
},
Expand All @@ -53,7 +53,7 @@
"internal": {
"distribution": "internal",
"credentialsSource": "local",
"pnpm": "9.12.3",
"yarn": "1.22.22",
"ios": {
"image": "latest"
},
Expand All @@ -71,7 +71,7 @@
"developmentClient": true,
"distribution": "internal",
"credentialsSource": "local",
"pnpm": "9.12.3",
"yarn": "1.22.22",
"ios": {
"image": "latest"
},
Expand All @@ -85,7 +85,7 @@
}
},
"simulator": {
"pnpm": "9.12.3",
"yarn": "1.22.22",
"ios": {
"simulator": true,
"image": "latest"
Expand Down
31 changes: 4 additions & 27 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,12 @@ module.exports = {
testMatch: ['**/?(*.)+(spec|test).ts?(x)'],
collectCoverage: true,
collectCoverageFrom: ['src/**/*.{ts,tsx}', '!**/coverage/**', '!**/node_modules/**', '!**/babel.config.js', '!**/jest.setup.js', '!**/docs/**', '!**/cli/**', '!**/ios/**', '!**/android/**'],
moduleFileExtensions: ['js', 'ts', 'tsx'],
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
moduleDirectories: ['node_modules', '<rootDir>/'],
transformIgnorePatterns: [
'node_modules/(?:\.pnpm|\.store)',
'node_modules/(?!jest-react-native)',
'node_modules/(?!react-native)',
'node_modules/(?!@react-native)',
'node_modules/(?!@react-native-community)',
'node_modules/(?!expo)',
'node_modules/(?!exponent)',
'node_modules/(?!@expo)',
'node_modules/(?!@exponent)',
'node_modules/(?!@expo-google-fonts)',
'node_modules/(?!react-navigation)',
'node_modules/(?!@react-navigation)',
'node_modules/(?!@unimodules)',
'node_modules/(?!unimodules)',
'node_modules/(?!@sentry)',
'node_modules/(?!native-base)',
'node_modules/(?!react-native-svg)',
'node_modules/(?!lucide-react-native)',
'node_modules/(?!@tanstack)',
'node_modules/(?!moti)',
'node_modules/(?!nativewind)',
'node_modules/(?!tailwind-variants)',
'node_modules/(?!@react-native-aria)',
'node_modules/(?!@gluestack-ui)',
'node_modules/(?!((jest-)?react-native|@react-native(-community)?|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@sentry/react-native|native-base|react-native-svg|@gluestack-ui/.*))',
],
coverageReporters: ['json-summary', ['text', { file: 'coverage.txt' }]],
coverageReporters: ['json-summary', ['text', { file: 'coverage.txt' }], 'cobertura'],
reporters: [
'default',
['github-actions', { silent: false }],
Expand All @@ -52,6 +29,6 @@ module.exports = {
],
coverageDirectory: '<rootDir>/coverage/',
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
'\\.(css|less|scss|sass)$': 'identity-obj-proxy',
},
};
34 changes: 17 additions & 17 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,36 @@
"main": "expo-router/entry",
"scripts": {
"start": "cross-env EXPO_NO_DOTENV=1 expo start",
"prebuild": "cross-env EXPO_NO_DOTENV=1 pnpm expo prebuild",
"prebuild": "cross-env EXPO_NO_DOTENV=1 yarn expo prebuild",
"android": "cross-env EXPO_NO_DOTENV=1 expo run:android",
"ios": "cross-env EXPO_NO_DOTENV=1 expo run:ios",
"web": "cross-env EXPO_NO_DOTENV=1 expo start --web",
"xcode": "xed -b ios",
"doctor": "npx expo-doctor@latest",
"preinstall": "npx only-allow pnpm",
"start:staging": "cross-env APP_ENV=staging pnpm run start",
"prebuild:staging": "cross-env APP_ENV=staging pnpm run prebuild",
"prebuild:development": "cross-env APP_ENV=development pnpm run prebuild",
"android:staging": "cross-env APP_ENV=staging pnpm run android",
"ios:staging": "cross-env APP_ENV=staging pnpm run ios",
"start:production": "cross-env APP_ENV=production pnpm run start",
"prebuild:production": "cross-env APP_ENV=production pnpm run prebuild",
"android:production": "cross-env APP_ENV=production pnpm run android",
"ios:production": "cross-env APP_ENV=production pnpm run ios",
"start:staging": "cross-env APP_ENV=staging yarn run start",
"prebuild:staging": "cross-env APP_ENV=staging yarn run prebuild",
"prebuild:development": "cross-env APP_ENV=development yarn run prebuild",
"android:staging": "cross-env APP_ENV=staging yarn run android",
"ios:staging": "cross-env APP_ENV=staging yarn run ios",
"start:production": "cross-env APP_ENV=production yarn run start",
"prebuild:production": "cross-env APP_ENV=production yarn run prebuild",
"android:production": "cross-env APP_ENV=production yarn run android",
"ios:production": "cross-env APP_ENV=production yarn run ios",
"build:development:ios": "cross-env APP_ENV=development EXPO_NO_DOTENV=1 eas build --profile development --platform ios",
"build:development:android": "cross-env APP_ENV=development EXPO_NO_DOTENV=1 eas build --profile development --platform android ",
"build:staging:ios": "cross-env APP_ENV=staging EXPO_NO_DOTENV=1 eas build --profile staging --platform ios",
"build:staging:android": "cross-env APP_ENV=staging EXPO_NO_DOTENV=1 eas build --profile staging --platform android ",
"build:production:ios": "cross-env APP_ENV=production EXPO_NO_DOTENV=1 eas build --profile production --platform ios",
"build:production:android": "cross-env APP_ENV=production EXPO_NO_DOTENV=1 eas build --profile production --platform android ",
"app-release": "cross-env SKIP_BRANCH_PROTECTION=true np --no-publish --no-cleanup --no-release-draft",
"version": "pnpm run prebuild && git add .",
"version": "yarn run prebuild && git add .",
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
"type-check": "tsc --noemit",
"lint:translations": "eslint ./src/translations/ --fix --ext .json ",
"test": "jest",
"check-all": "pnpm run lint && pnpm run type-check && pnpm run lint:translations",
"test:ci": "pnpm run test --coverage",
"test:watch": "pnpm run test --watch",
"test": "jest --coverage=true --coverageReporters=cobertura",
"check-all": "yarn run lint && yarn run type-check && yarn run lint:translations",
"test:ci": "yarn run test --coverage",
"test:watch": "yarn run test --watch",
"install-maestro": "curl -Ls 'https://get.maestro.mobile.dev' | bash",
"e2e-test": "maestro test .maestro/ -e APP_ID=com.obytes.development"
},
Expand Down Expand Up @@ -112,6 +111,7 @@
"expo-task-manager": "^12.0.6",
"geojson": "^0.5.0",
"i18next": "^23.14.0",
"livekit-client": "^2.13.4",
"lodash.memoize": "^4.1.2",
"lucide-react-native": "^0.475.0",
"mapbox-gl": "^3.10.0",
Expand Down Expand Up @@ -194,7 +194,7 @@
"type": "git",
"url": "git+https://github.com/user/repo-name.git"
},
"packageManager": "pnpm@9.12.3",
"packageManager": "yarn@1.22.22",
"expo": {
"doctor": {
"reactNativeDirectoryCheck": {
Expand Down
Loading
Loading