Clean up deploy (#1272)

This commit is contained in:
Junyoung Choi 2021-10-18 20:32:24 +09:00 committed by GitHub
parent db656982be
commit 71c6524eb8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 65 additions and 50 deletions

View File

@ -1,6 +1,28 @@
BOOST_HUB_BASE_URL=https://boosthub.io
NODE_ENV=development
AMPLIFY_AUTH_IDENTITY_POOL_ID=
AMPLIFY_AUTH_REGION=
AMPLIFY_PINPOINT_APPID=
AMPLIFY_PINPOINT_REGION=
INTERCOM_APP_ID=
GA_TRACKING_ID=
BOOST_HUB_BASE_URL=
SSE_URL=
REALTIME_URL=
GITHUB_OAUTH_ID=
GOOGLE_CLIENT_ID=
STRIPE_PUBLISHABLE_KEY=
COUPONS_NEW_USER_PRO=
COUPONS_NEW_USER_STANDARD=
COUPONS_NEW_SPACE=
MOBILE_BASE_URL=
BOOST_PDF_EXPORT_BASE_URL=
# Deployment
GH_TOKEN=
APPLE_ID=
APPLE_ID_PASSWORD=
CLOUD_S3_BUCKET=
MOBILE_S3_BUCKET=
# Optional
# MOCK_BACKEND=true

7
.gitignore vendored
View File

@ -1,11 +1,8 @@
node_modules/*
.DS_Store
.env
.env.dev
.env.local
.env.staging
.env.production
.env.local
.env.*
!.env.default
Desktop.ini
Thumbs.db
*.log

View File

@ -9,22 +9,31 @@
"url": "https://github.com/BoostIO/BoostNote-App.git"
},
"scripts": {
"dev:cloud": "env-cmd cross-env NODE_ENV=development TARGET=electron TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack-dev-server --mode development --config webpack.cloud.config.ts",
"dev:webpack": "env-cmd cross-env NODE_ENV=development TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack-dev-server --mode development",
"dev:electron": "env-cmd cross-env NODE_ENV=development ts-node -P tsconfig-webpack.json scripts/dev-electron.ts",
"dev:mobile": "env-cmd cross-env NODE_ENV=development TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack-dev-server --mode development --config webpack.mobile.config.ts",
"dev:cloud": "env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack-dev-server --mode development --config webpack.cloud.config.ts",
"dev:webpack": "env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack-dev-server --mode development",
"dev:electron": "env-cmd ts-node -P tsconfig-webpack.json scripts/dev-electron.ts",
"dev:mobile": "env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack-dev-server --mode development --config webpack.mobile.config.ts",
"deploy:cloud-staging": "npm run build:cloud-staging && env-cmd --file .env.staging -x aws s3 sync ./compiled-cloud s3://\\$CLOUD_S3_BUCKET --acl public-read",
"deploy:cloud-prod": "npm run build:cloud-prod && env-cmd --file .env.production -x aws s3 sync ./compiled-cloud s3://\\$CLOUD_S3_BUCKET --acl public-read",
"deploy:mobile-staging": "npm run build:mobile-staging && env-cmd --file .env.production -x aws s3 sync ./compiled-mobile s3://\\$MOBILE_S3_BUCKET --acl public-read",
"deploy:mobile-prod": "npm run build:mobile-prod && env-cmd --file .env.production -x aws s3 sync ./compiled-mobile s3://\\$MOBILE_S3_BUCKET --acl public-read",
"start": "electron electron/index.js",
"lint": "eslint src/* --ext .ts,.tsx",
"format": "prettier --write \"src/**/*\"",
"build:electron": "npm run build:electron-renderer && npm run build:electron-main",
"build:electron-renderer": "rimraf electron/compiled && env-cmd cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" TARGET=electron webpack --mode production",
"build:electron-main": "rimraf electron/index.js && env-cmd ts-node -P tsconfig-webpack.json scripts/build-electron-main",
"build:cloud": "rimraf compiled-cloud && env-cmd cross-env NODE_ENV=production TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.cloud.config.ts",
"build:mobile": "rimraf compiled-mobile && env-cmd cross-env NODE_ENV=production TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.mobile.config.ts",
"build:electron-staging": "npm run build:electron-renderer-staging && npm run build:electron-main-staging",
"build:electron-prod": "npm run build:electron-renderer-prod && npm run build:electron-main-prod",
"build:electron-renderer-staging": "rimraf electron/compiled && env-cmd --file .env.staging cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production",
"build:electron-renderer-prod": "rimraf electron/compiled && env-cmd --file .env.production cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production",
"build:electron-main-staging": "rimraf electron/index.js && env-cmd --file .env.staging ts-node -P tsconfig-webpack.json scripts/build-electron-main",
"build:electron-main-prod": "rimraf electron/index.js && env-cmd --file .env.production ts-node -P tsconfig-webpack.json scripts/build-electron-main",
"build:cloud-staging": "rimraf compiled-cloud && env-cmd --file .env.staging cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.cloud.config.ts",
"build:cloud-prod": "rimraf compiled-cloud && env-cmd --file .env.production cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.cloud.config.ts",
"build:mobile-staging": "rimraf compiled-mobile && env-cmd --file .env.staging cross-env TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.mobile.config.ts",
"build:mobile-prod": "rimraf compiled-mobile && env-cmd --file .env.production cross-envnpm TS_NODE_PROJECT=\"tsconfig-webpack.json\" webpack --mode production --config webpack.mobile.config.ts",
"meta": "node scripts/meta.js",
"prepack": "rimraf dist && env-cmd npm run meta && electron-builder --dir",
"pack": "rimraf dist && env-cmd npm run meta && env-cmd electron-builder",
"release": "npm run build:electron && rimraf dist && env-cmd npm run meta && env-cmd electron-builder -- --publish",
"prepack": "rimraf dist && npm run meta && env-cmd --file .env.production electron-builder --dir",
"pack": "rimraf dist && npm run meta && env-cmd --file .env.production electron-builder",
"release": "npm run build:electron && rimraf dist && npm run meta && env-cmd --file .env.production electron-builder -- --publish",
"test": "npm run lint && npm run test-api",
"test-api": "jest -c jest.json",
"test-api:watch": "jest -c jest.json --watch",
@ -244,8 +253,8 @@
"AppImage"
]
},
"rpm":{
"depends":[
"rpm": {
"depends": [
"/usr/lib64/libuuid.so.1"
]
},

View File

@ -75,8 +75,8 @@ But you can participate in development via mock backend mode. Although it still
Create .env file.
```sh
NODE_ENV=development
MOCK_BACKEND=true
BOOST_HUB_BASE_URL=http://localhost:3004
```
Run webpack processors. You have to run them in separate terminals.
@ -118,9 +118,9 @@ The source code is quite similar to a router interface. All you need to is `meth
- `npm test` : Run test script
- `npm run tsc` : Check type errors
- Build scripts
- `npm run build:electron` : Build assets for the desktop app
- `npm run build:cloud` : Build asssets for the cloud space
- `npm run build:mobile` : Build assets for the mobile app
- `npm run build:electron-production` : Build assets for the desktop app
- `npm run build:cloud-production` : Build asssets for the cloud space
- `npm run build:mobile-production` : Build assets for the mobile app
- `npm start` : Run the desktop app with prebuilt assets
- `npm run meta` : Prepare meta data for the desktop app building(Generate package.json for electron-build module)
- `npm run prepack` : Create desktop app installers without signing

View File

@ -9,6 +9,7 @@ import { useEffectOnce } from 'react-use'
import { initAccessToken } from '../../cloud/lib/stores/electron'
import '../../cloud/lib/i18n'
import '../lib/nativeMobile'
import { PreviewStyleProvider } from '../../lib/preview'
const App = () => {
const [accessTokenInitialized, setAccessTokenInitialized] = useState(false)
@ -30,11 +31,13 @@ const App = () => {
<V2ToastProvider>
<GlobalDataProvider>
<RealtimeConnProvider>
<RouterProvider>
<Router />
</RouterProvider>
</RealtimeConnProvider>
<PreviewStyleProvider>
<RealtimeConnProvider>
<RouterProvider>
<Router />
</RouterProvider>
</RealtimeConnProvider>
</PreviewStyleProvider>
</GlobalDataProvider>
</V2ToastProvider>

View File

@ -5,7 +5,6 @@ import express from 'express'
import ErrorOverlayPlugin from 'error-overlay-webpack-plugin'
import CopyPlugin from 'copy-webpack-plugin'
import packageJson from './package.json'
import CompressionPlugin from 'compression-webpack-plugin'
module.exports = (env, argv) => {
const config: webpack.Configuration = {
@ -62,10 +61,6 @@ module.exports = (env, argv) => {
}),
new webpack.EnvironmentPlugin([
'NODE_ENV',
'AMPLIFY_AUTH_IDENTITY_POOL_ID',
'AMPLIFY_AUTH_REGION',
'AMPLIFY_PINPOINT_APPID',
'AMPLIFY_PINPOINT_REGION',
'BOOST_HUB_BASE_URL',
'SSE_URL',
'REALTIME_URL',
@ -198,12 +193,7 @@ module.exports = (env, argv) => {
minimize: true,
}
config.plugins.push(new CompressionPlugin())
if (process.env.TARGET === 'electron') {
config.output.path = path.resolve(__dirname, 'electron/compiled-cloud')
} else {
config.output.publicPath = '/'
}
config.output.publicPath = '/'
}
return config

View File

@ -5,7 +5,6 @@ import express from 'express'
import ErrorOverlayPlugin from 'error-overlay-webpack-plugin'
import CopyPlugin from 'copy-webpack-plugin'
import packageJson from './package.json'
import CompressionPlugin from 'compression-webpack-plugin'
module.exports = (env, argv) => {
const config: webpack.Configuration = {
@ -62,10 +61,6 @@ module.exports = (env, argv) => {
}),
new webpack.EnvironmentPlugin([
'NODE_ENV',
'AMPLIFY_AUTH_IDENTITY_POOL_ID',
'AMPLIFY_AUTH_REGION',
'AMPLIFY_PINPOINT_APPID',
'AMPLIFY_PINPOINT_REGION',
'BOOST_HUB_BASE_URL',
'SSE_URL',
'REALTIME_URL',
@ -200,7 +195,6 @@ module.exports = (env, argv) => {
config.optimization = {
minimize: true,
}
config.plugins.push(new CompressionPlugin())
config.output.publicPath = '/'
}