зеркало из https://github.com/mozilla/fxa.git
feat(many): add partial stack startup scripts
Because: - During development it could be useful to start only parts of the stack needed for development on specific domains. This commit: - Provides additional stack startup options to only start specific parts of the stack, by using nx projects and tags. Closes #FXA-9771
This commit is contained in:
Родитель
a7df9a7458
Коммит
05d7265292
|
@ -4,6 +4,7 @@ start=`date +%s`
|
||||||
|
|
||||||
DIR=$(dirname "$0")
|
DIR=$(dirname "$0")
|
||||||
COMMAND=$1
|
COMMAND=$1
|
||||||
|
PROJECTS=$2
|
||||||
cd "$DIR/.."
|
cd "$DIR/.."
|
||||||
|
|
||||||
if ! node -p 's = require("semver");v = require("./package.json").engines.node; process.exitCode = s.satisfies(process.version, v) ? 0 : 1; if(process.exitCode) {"\nPlease use node: " + v + "\n"}';
|
if ! node -p 's = require("semver");v = require("./package.json").engines.node; process.exitCode = s.satisfies(process.version, v) ? 0 : 1; if(process.exitCode) {"\nPlease use node: " + v + "\n"}';
|
||||||
|
@ -12,7 +13,16 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p artifacts
|
mkdir -p artifacts
|
||||||
npx nx run-many -t start --all --exclude=fxa-dev-launcher --verbose;
|
|
||||||
|
if [ -z "$PROJECTS" ]
|
||||||
|
then
|
||||||
|
# No tags provided, start the entire stack
|
||||||
|
npx nx run-many -t $COMMAND --all --exclude=fxa-dev-launcher --verbose;
|
||||||
|
else
|
||||||
|
# Start only provided projects and dependencies
|
||||||
|
# Note dependencies are automatically determined by Nx
|
||||||
|
npx nx run-many -t $COMMAND --projects=$PROJECTS --exclude=fxa-dev-launcher --verbose;
|
||||||
|
fi
|
||||||
|
|
||||||
end=`date +%s`
|
end=`date +%s`
|
||||||
runtime=$((end-start))
|
runtime=$((end-start))
|
||||||
|
|
|
@ -118,5 +118,5 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": ["app", "payments"]
|
"tags": ["app", "payments", "type:sp3"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,114 @@
|
||||||
|
/**
|
||||||
|
* These are Nx tags used to identify which services to start up
|
||||||
|
* when executing the various partial startup scripts.
|
||||||
|
*/
|
||||||
|
const mzaProjects = 'tag:type:core,tag:type:demo';
|
||||||
|
const sp2Projects = 'tag:type:core,tag:type:demo,tag:type:sp2';
|
||||||
|
const sp3Projects = 'tag:type:core,tag:type:demo,tag:type:sp3';
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
scripts: {
|
scripts: {
|
||||||
default: 'nps help',
|
default: 'nps help',
|
||||||
start: {
|
start: {
|
||||||
default: `_dev/pm2/start.sh && _scripts/pm2-all.sh start && pm2 restart sync && echo "Use 'yarn stop' to stop all the servers"`,
|
default: {
|
||||||
infrastructure: `_dev/pm2/start.sh`,
|
script: `_dev/pm2/start.sh && _scripts/pm2-all.sh start && pm2 restart sync && echo "Use 'yarn stop' to stop all the servers"`,
|
||||||
services: `_scripts/pm2-all.sh start`,
|
description: 'Start the entire stack, i.e. all infrastructure and services.'
|
||||||
|
},
|
||||||
|
infrastructure: {
|
||||||
|
script: `_dev/pm2/start.sh`,
|
||||||
|
description: 'Start all infrastructure only.',
|
||||||
|
},
|
||||||
|
services: {
|
||||||
|
script: `_scripts/pm2-all.sh start`,
|
||||||
|
description: 'Start all Services only.'
|
||||||
|
},
|
||||||
firefox: './packages/fxa-dev-launcher/bin/fxa-dev-launcher.mjs &',
|
firefox: './packages/fxa-dev-launcher/bin/fxa-dev-launcher.mjs &',
|
||||||
|
mza: {
|
||||||
|
script: `_dev/pm2/start.sh && _scripts/pm2-all.sh start ${mzaProjects} && pm2 restart sync && echo "Use 'yarn stop' to stop all the servers"`,
|
||||||
|
description: 'Start infrastructure and only required Mozilla Accounts services',
|
||||||
|
},
|
||||||
|
sp2: {
|
||||||
|
script: `_dev/pm2/start.sh && _scripts/pm2-all.sh start ${sp2Projects} && pm2 restart sync && echo "Use 'yarn stop' to stop all the servers"`,
|
||||||
|
description: 'Start infrastructure and only required SubPlat 2.0 services.'
|
||||||
|
},
|
||||||
|
sp3: {
|
||||||
|
script: `_dev/pm2/start.sh && _scripts/pm2-all.sh start ${sp3Projects} && pm2 restart sync && echo "Use 'yarn stop' to stop all the servers"`,
|
||||||
|
description: 'Start infrastructure and only required SubPlat 3.0 services.'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
stop: {
|
stop: {
|
||||||
default: 'pm2 kill',
|
default: {
|
||||||
infrastructure: `pm2 stop _dev/pm2/infrastructure.config.js`,
|
script: 'pm2 kill',
|
||||||
services: `_scripts/pm2-all.sh stop`,
|
description: 'Stop all infrastructure and services.',
|
||||||
|
},
|
||||||
|
infrastructure: {
|
||||||
|
script: `pm2 stop _dev/pm2/infrastructure.config.js`,
|
||||||
|
description: 'Stop all infrastructure, only.',
|
||||||
|
},
|
||||||
|
services: {
|
||||||
|
script: `_scripts/pm2-all.sh stop`,
|
||||||
|
description: 'Stop all services, only.',
|
||||||
|
},
|
||||||
|
mza: {
|
||||||
|
script: `_scripts/pm2-all.sh stop ${mzaProjects}`,
|
||||||
|
description: 'Stop required Mozilla Accounts services.',
|
||||||
|
},
|
||||||
|
sp2: {
|
||||||
|
script: `_scripts/pm2-all.sh stop ${sp2Projects}`,
|
||||||
|
description: 'Stop required SubPlat 2.0 services.',
|
||||||
|
},
|
||||||
|
sp3: {
|
||||||
|
script: `_scripts/pm2-all.sh stop ${sp3Projects}`,
|
||||||
|
description: 'Stop required SubPlat 3.0 services.',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
restart: {
|
restart: {
|
||||||
default: 'pm2 restart all',
|
default: {
|
||||||
infrastructure: `pm2 restart _dev/pm2/infrastructure.config.js`,
|
script: 'pm2 restart all',
|
||||||
services: `_scripts/pm2-all.sh restart`,
|
description: 'Restart all infrastructure and services.',
|
||||||
|
},
|
||||||
|
infrastructure: {
|
||||||
|
script: `pm2 restart _dev/pm2/infrastructure.config.js`,
|
||||||
|
description: 'Restart all infrastructure, only.',
|
||||||
|
},
|
||||||
|
services: {
|
||||||
|
script: `_scripts/pm2-all.sh restart`,
|
||||||
|
description: 'Restart all services, only.',
|
||||||
|
},
|
||||||
|
mza: {
|
||||||
|
script: `_scripts/pm2-all.sh restart ${mzaProjects}`,
|
||||||
|
description: 'Restart required Mozilla Accounts services.',
|
||||||
|
},
|
||||||
|
sp2: {
|
||||||
|
script: `_scripts/pm2-all.sh restart ${sp2Projects}`,
|
||||||
|
description: 'Restart required SubPlat 2.0 services.',
|
||||||
|
},
|
||||||
|
sp3: {
|
||||||
|
script: `_scripts/pm2-all.sh restart ${sp3Projects}`,
|
||||||
|
description: 'Restart required SubPlat 3.0 services.',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
delete: {
|
delete: {
|
||||||
default: 'pm2 kill',
|
default: {
|
||||||
services: '_scripts/pm2-all.sh delete',
|
script: 'pm2 kill',
|
||||||
|
description: 'Delete all infrastructure and services.',
|
||||||
|
},
|
||||||
|
services: {
|
||||||
|
script: '_scripts/pm2-all.sh delete',
|
||||||
|
description: 'Delete all services, only.',
|
||||||
|
},
|
||||||
|
mza: {
|
||||||
|
script: `_scripts/pm2-all.sh delete ${mzaProjects}`,
|
||||||
|
description: 'Delete required Mozilla Accounts services.',
|
||||||
|
},
|
||||||
|
sp2: {
|
||||||
|
script: `_scripts/pm2-all.sh delete ${sp2Projects}`,
|
||||||
|
description: 'Delete required SubPlat 2.0 services.',
|
||||||
|
},
|
||||||
|
sp3: {
|
||||||
|
script: `_scripts/pm2-all.sh delete ${sp3Projects}`,
|
||||||
|
description: 'Delete required SubPlat 3.0 services.',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -46,7 +46,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:demo"
|
"scope:demo",
|
||||||
|
"type:demo"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,7 +89,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:frontend"
|
"scope:frontend",
|
||||||
|
"type:admin"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:server"
|
"scope:server",
|
||||||
|
"type:admin"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -222,7 +222,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:server:auth"
|
"scope:server:auth",
|
||||||
|
"type:core"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,6 @@
|
||||||
"fxa-geodb": "workspace:*",
|
"fxa-geodb": "workspace:*",
|
||||||
"fxa-mustache-loader": "0.0.2",
|
"fxa-mustache-loader": "0.0.2",
|
||||||
"fxa-pairing-channel": "1.0.2",
|
"fxa-pairing-channel": "1.0.2",
|
||||||
"fxa-payments-server": "workspace:*",
|
|
||||||
"fxa-profile-server": "workspace:*",
|
"fxa-profile-server": "workspace:*",
|
||||||
"fxa-react": "workspace:*",
|
"fxa-react": "workspace:*",
|
||||||
"fxa-settings": "workspace:*",
|
"fxa-settings": "workspace:*",
|
||||||
|
@ -187,7 +186,8 @@
|
||||||
"readmeFilename": "README.md",
|
"readmeFilename": "README.md",
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:frontend"
|
"scope:frontend",
|
||||||
|
"type:core"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:server"
|
"scope:server",
|
||||||
|
"type:core"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,7 +107,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:broker"
|
"scope:broker",
|
||||||
|
"type:broker"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,5 +89,11 @@
|
||||||
"prettier": "^2.3.1",
|
"prettier": "^2.3.1",
|
||||||
"supertest": "^7.0.0",
|
"supertest": "^7.0.0",
|
||||||
"typescript": "^5.4.2"
|
"typescript": "^5.4.2"
|
||||||
|
},
|
||||||
|
"nx": {
|
||||||
|
"tags": [
|
||||||
|
"scope:gql",
|
||||||
|
"type:core"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,7 +197,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:frontend"
|
"scope:frontend",
|
||||||
|
"type:sp2"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:server"
|
"scope:server",
|
||||||
|
"type:core"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:shared:lib"
|
"scope:shared:lib",
|
||||||
|
"type:core"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -256,7 +256,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:frontend"
|
"scope:frontend",
|
||||||
|
"type:core"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"babel": {
|
"babel": {
|
||||||
|
|
|
@ -343,7 +343,8 @@
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"tags": [
|
"tags": [
|
||||||
"scope:shared:lib"
|
"scope:shared:lib",
|
||||||
|
"type:core"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38013,7 +38013,6 @@ fsevents@~2.1.1:
|
||||||
fxa-geodb: "workspace:*"
|
fxa-geodb: "workspace:*"
|
||||||
fxa-mustache-loader: 0.0.2
|
fxa-mustache-loader: 0.0.2
|
||||||
fxa-pairing-channel: 1.0.2
|
fxa-pairing-channel: 1.0.2
|
||||||
fxa-payments-server: "workspace:*"
|
|
||||||
fxa-profile-server: "workspace:*"
|
fxa-profile-server: "workspace:*"
|
||||||
fxa-react: "workspace:*"
|
fxa-react: "workspace:*"
|
||||||
fxa-settings: "workspace:*"
|
fxa-settings: "workspace:*"
|
||||||
|
|
Загрузка…
Ссылка в новой задаче