Define the NODE_VERSION
secret variable and EXPO_TOKEN
variable in your Github workflow secrets.
Get the EXPO_TOKEN
from your expo.dev account.
IMPORTANT
Amain
,preview
andproduction
branch must exist for the workflow to work.
Add the following dependencies to your root package.json
{
"name": "solito-expo-router-tailwind",
"private": true,
"workspaces": [
"apps/*",
"packages/*"
],
"devDependencies": {
"@types/react": "^18.0.17",
"@types/react-native": "^0.69.5",
"eslint": "^8.21.0",
"prettier": "^2.8.4",
"prettier-plugin-tailwindcss": "^0.2.2",
"turbo": "^1.4.2",
"typescript": "^4.7.4",
"@semantic-release/changelog": "^6.0.1",
"@semantic-release/commit-analyzer": "^9.0.2",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@semantic-release/github": "^8.0.6",
"@semantic-release/release-notes-generator": "^10.0.3",
"semantic-release": "^19.0.5",
"semantic-release-expo": "^2.2.3"
},
"scripts": {
"native": "yarn --cwd apps/expo start",
"web": "yarn --cwd apps/next dev",
"compile": "tsc --noEmit -p . --pretty",
"format": "prettier --ignore-path .gitignore --write \"{apps,packages}/**/*.{js,jsx,json,md,ts,tsx}\"",
"lint": "eslint --fix --ext .js,.ts,.tsx && yarn format",
"lint:check": "eslint --ext .js,.ts,.tsx"
},
"resolutions": {
"metro": "0.72.3"
},
"nohoist": [
"**/expo-router",
"**/expo-router/**"
]
}
And the apps/expo/package.json
{
"dependencies": {
"app": "*",
"dotenv": "^16.0.3",
"expo": "^47.0.0",
"expo-build-properties": "~0.4.1",
"expo-constants": "~14.0.2",
"expo-dev-client": "~2.0.1",
"expo-notifications": "~0.17.0",
"expo-router": "0.0.31",
"expo-splash-screen": "~0.17.5",
"expo-status-bar": "~1.4.2",
"expo-updates": "~0.15.6",
"react": "18.1.0",
"react-dom": "18.1.0",
"react-native": "0.70.5",
"react-native-gesture-handler": "~2.8.0",
"react-native-reanimated": "~2.12.0",
"react-native-safe-area-context": "4.4.1",
"react-native-screens": "~3.18.0",
"react-native-svg": "13.4.0",
"react-native-web": "~0.18.7"
},
"devDependencies": {
"@babel/core": "^7.19.3",
"@expo/config-plugins": "^5.0.4",
"@types/react": "~18.0.24",
"@types/react-native": "~0.70.6",
"tailwindcss": "^3.0.24",
"typescript": "^4.6.3"
},
"scripts": {
"start": "expo start --dev-client",
"android": "expo run:android",
"ios": "expo run:ios"
},
"version": "1.0.0",
"private": true,
"name": "expo-app"
}