Fix release automation
This commit is contained in:
parent
ca54d19bd9
commit
e4a7fe8783
|
@ -99,9 +99,13 @@ jobs:
|
||||||
npm i
|
npm i
|
||||||
npm run modify-files
|
npm run modify-files
|
||||||
cd ../..
|
cd ../..
|
||||||
|
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
|
||||||
|
git config --global user.email "ivan@opensupports.com"
|
||||||
|
git config --global user.name "CircleCI-BOT"
|
||||||
git add .
|
git add .
|
||||||
git commit -m "Release $VERSION"
|
git commit -m "Release $VERSION"
|
||||||
git push origin master
|
git checkout -b release-${VERSION}
|
||||||
|
git push origin release-${VERSION}
|
||||||
|
|
||||||
- persist_to_workspace:
|
- persist_to_workspace:
|
||||||
root: .
|
root: .
|
||||||
|
@ -133,7 +137,7 @@ jobs:
|
||||||
sudo apt-get install lftp
|
sudo apt-get install lftp
|
||||||
make build-release-bundles
|
make build-release-bundles
|
||||||
make upload-bundles
|
make upload-bundles
|
||||||
make deploy-prerelease-tag
|
# make push-prerelease-tag
|
||||||
make populate-staging-release
|
make populate-staging-release
|
||||||
|
|
||||||
- persist_to_workspace:
|
- persist_to_workspace:
|
||||||
|
@ -145,12 +149,16 @@ parameters:
|
||||||
version:
|
version:
|
||||||
type: string
|
type: string
|
||||||
default: ""
|
default: ""
|
||||||
|
run_build:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
build:
|
build:
|
||||||
when:
|
when:
|
||||||
condition:
|
and:
|
||||||
- equal: [ master, << pipeline.git.branch >> ]
|
- equal: [ master, << pipeline.git.branch >> ]
|
||||||
|
- << pipeline.parameters.run_build >>
|
||||||
jobs:
|
jobs:
|
||||||
- install_composer_packages
|
- install_composer_packages
|
||||||
- install_node_packages:
|
- install_node_packages:
|
||||||
|
|
91
Makefile
91
Makefile
|
@ -4,47 +4,36 @@
|
||||||
deploy-staging-files:
|
deploy-staging-files:
|
||||||
./build.sh
|
./build.sh
|
||||||
mv dist/opensupports_dev.zip .
|
mv dist/opensupports_dev.zip .
|
||||||
FOLDER=dev1 DOMAIN=dev1.opensupports.com make deploy-instance-files
|
|
||||||
FOLDER=dev2 DOMAIN=dev2.opensupports.com make deploy-instance-files
|
|
||||||
make upload-bundles
|
make upload-bundles
|
||||||
|
|
||||||
deploy-instance-files:
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; mirror -R client/build /${FOLDER}"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; put -O /${FOLDER}/api/ api/index.php"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; put -O /${FOLDER}/api/ api/.htaccess"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; put -O /${FOLDER}/api/ api/composer.json"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; put -O /${FOLDER}/api/ api/composer.lock"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; mirror -R api/controllers/ /${FOLDER}/api/controllers/"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; mirror -R api/data/ /${FOLDER}/api/data/"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; mirror -R api/libs/ /${FOLDER}/api/libs/"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; mirror -R api/models/ /${FOLDER}/api/models/"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; mirror -R api/files/ /${FOLDER}/api/files"
|
|
||||||
lftp -c "open -u $(FTP_USER),$(FTP_PASSWORD) $(FTP_HOST); set ssl:verify-certificate no; mirror -R api/vendor/ /${FOLDER}/api/vendor" || true
|
|
||||||
(curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://${DOMAIN}/api/clear.php || true)
|
|
||||||
|
|
||||||
deploy-staging-population:
|
deploy-staging-population:
|
||||||
curl -u ${CIRCLE_API_USER_TOKEN}: \
|
curl --request POST \
|
||||||
-d 'build_parameters[CIRCLE_JOB]=deploy_dev1' \
|
--url https://circleci.com/api/v2/project/github/opensupports/staging-population/pipeline \
|
||||||
https://circleci.com/api/v1.1/project/github/opensupports/staging-population/tree/master
|
--header 'Circle-Token: ${CIRCLE_API_USER_TOKEN}' \
|
||||||
curl -u ${CIRCLE_API_USER_TOKEN}: \
|
--header 'content-type: application/json' \
|
||||||
-d 'build_parameters[CIRCLE_JOB]=deploy_dev2' \
|
--data '{"branch":"master","parameters":{"server_to_deploy": "dev1"}}'
|
||||||
https://circleci.com/api/v1.1/project/github/opensupports/staging-population/tree/master
|
curl --request POST \
|
||||||
curl -u ${CIRCLE_API_USER_TOKEN}: \
|
--url https://circleci.com/api/v2/project/github/opensupports/staging-population/pipeline \
|
||||||
-d 'build_parameters[CIRCLE_JOB]=deploy_dev3' \
|
--header 'Circle-Token: ${CIRCLE_API_USER_TOKEN}' \
|
||||||
https://circleci.com/api/v1.1/project/github/opensupports/staging-population/tree/master
|
--header 'content-type: application/json' \
|
||||||
|
--data '{"branch":"master","parameters":{"server_to_deploy": "dev2"}}'
|
||||||
|
curl --request POST \
|
||||||
|
--url https://circleci.com/api/v2/project/github/opensupports/staging-population/pipeline \
|
||||||
|
--header 'Circle-Token: ${CIRCLE_API_USER_TOKEN}' \
|
||||||
|
--header 'content-type: application/json' \
|
||||||
|
--data '{"branch":"master","parameters":{"server_to_deploy": "dev3"}}'
|
||||||
|
|
||||||
build-release-bundles:
|
build-release-bundles:
|
||||||
ifndef VERSION
|
|
||||||
$(error VERSION is not set)
|
|
||||||
endif
|
|
||||||
$(eval UPGRADE_ZIP="opensupports_v$(VERSION)_update.zip")
|
$(eval UPGRADE_ZIP="opensupports_v$(VERSION)_update.zip")
|
||||||
./build.sh
|
./build.sh
|
||||||
mv dist/opensupports_dev.zip .
|
mv dist/opensupports_dev.zip .
|
||||||
cp opensupports_dev.zip ${UPGRADE_ZIP} && \
|
cp opensupports_dev.zip ${UPGRADE_ZIP} && \
|
||||||
mv opensupports_dev.zip opensupports_v${VERSION}.zip && \
|
mv opensupports_dev.zip opensupports_v${VERSION}.zip && \
|
||||||
zip -d ${UPGRADE_ZIP} "api/config.php" && \
|
zip -d ${UPGRADE_ZIP} "api/config.php" && \
|
||||||
zip -r ${UPGRADE_ZIP} "version_upgrades/${VERSION}" && \
|
(( \
|
||||||
zip -r ${UPGRADE_ZIP} "version_upgrades/mysql_connect.php"
|
zip -r ${UPGRADE_ZIP} "version_upgrades/${VERSION}" && \
|
||||||
|
zip -r ${UPGRADE_ZIP} "version_upgrades/mysql_connect.php" \
|
||||||
|
) || true)
|
||||||
|
|
||||||
upload-bundles:
|
upload-bundles:
|
||||||
for file in *.zip ; do \
|
for file in *.zip ; do \
|
||||||
|
@ -52,31 +41,27 @@ upload-bundles:
|
||||||
done
|
done
|
||||||
|
|
||||||
push-prerelease-tag:
|
push-prerelease-tag:
|
||||||
ifndef VERSION
|
|
||||||
$(error VERSION is not set)
|
|
||||||
endif
|
|
||||||
echo -e "Release v${VERSION}\n====\n" > log.txt && \
|
echo -e "Release v${VERSION}\n====\n" > log.txt && \
|
||||||
git log $(git describe --tags --abbrev=0 @^)..@ --pretty=format:'%s' >> log.txt && \
|
git log $(git describe --tags --abbrev=0 @^)..@ --pretty=format:'%s' >> log.txt
|
||||||
./version_upgrades/release_script/node_modules/.bin/github-release upload \
|
# ./version_upgrades/release_script/node_modules/.bin/github-release upload \
|
||||||
--owner opensupports \
|
# --owner opensupports \
|
||||||
--repo opensupports \
|
# --repo opensupports \
|
||||||
--draft true\
|
# --draft true\
|
||||||
--tag "v$(VERSION)" \
|
# --tag "v$(VERSION)" \
|
||||||
--release-name "Release v$(VERSION)" \
|
# --release-name "Release v$(VERSION)" \
|
||||||
--body "$(<log.txt)" \
|
# --body "$(<log.txt)" \
|
||||||
opensupports_v${VERSION}.zip opensupports_v${VERSION}_update.zip
|
# opensupports_v${VERSION}.zip opensupports_v${VERSION}_update.zip
|
||||||
|
|
||||||
populate-staging-release:
|
populate-staging-release:
|
||||||
ifndef VERSION
|
curl --request POST \
|
||||||
$(error VERSION is not set)
|
--url https://circleci.com/api/v2/project/github/opensupports/staging-population/pipeline \
|
||||||
endif
|
--header 'Circle-Token: ${CIRCLE_API_USER_TOKEN}' \
|
||||||
curl -u ${CIRCLE_API_USER_TOKEN}: \
|
--header 'content-type: application/json' \
|
||||||
-d 'build_parameters[CIRCLE_JOB]=deploy_westeros' \
|
--data '{"branch":"master","parameters":{"server_to_deploy": "westeros", "version_to_deploy": "${VERSION}"}}'
|
||||||
-d 'build_parameters[VERSION]=${VERSION}' \
|
curl --request POST \
|
||||||
https://circleci.com/api/v1.1/project/github/opensupports/staging-population/tree/master
|
--url https://circleci.com/api/v2/project/github/opensupports/staging-population/pipeline \
|
||||||
curl -u ${CIRCLE_API_USER_TOKEN}: \
|
--header 'Circle-Token: ${CIRCLE_API_USER_TOKEN}' \
|
||||||
-d 'build_parameters[CIRCLE_JOB]=deploy_senate' \
|
--header 'content-type: application/json' \
|
||||||
-d 'build_parameters[VERSION]=${VERSION}' \
|
--data '{"branch":"master","parameters":{"server_to_deploy": "senate", "version_to_deploy": "${VERSION}_update"}}'
|
||||||
https://circleci.com/api/v1.1/project/github/opensupports/staging-population/tree/master
|
|
||||||
|
|
||||||
deploy-staging-release: build-release-bundles upload-bundles populate-staging-release
|
deploy-staging-release: build-release-bundles upload-bundles populate-staging-release
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
const editJsonFile = require('edit-json-file');
|
const editJsonFile = require('edit-json-file');
|
||||||
const regexReplace = require('regex-replace');
|
const replace = require('replace-in-file');
|
||||||
|
|
||||||
const WORKDIR = `${__dirname}/../..`;
|
const WORKDIR = `${__dirname}/../..`;
|
||||||
|
|
||||||
|
@ -22,23 +22,23 @@ updateJSONVersion(`${WORKDIR}/client/package-lock.json`);
|
||||||
updateJSONVersion(`${WORKDIR}/server/apidoc.json`);
|
updateJSONVersion(`${WORKDIR}/server/apidoc.json`);
|
||||||
|
|
||||||
// Replace in places
|
// Replace in places
|
||||||
regexReplace(
|
replace({
|
||||||
`opensupports_version = '${OLD_VERSION}';`,
|
files: `${WORKDIR}/client/src/config.js`,
|
||||||
`opensupports_version = '${NEW_VERSION}';`,
|
from: `opensupports_version = '${OLD_VERSION}';`,
|
||||||
`${WORKDIR}/client/src/config.js`
|
to: `opensupports_version = '${NEW_VERSION}';`
|
||||||
);
|
});
|
||||||
regexReplace(
|
replace({
|
||||||
`opensupports_version = '${OLD_VERSION}';`,
|
files: `${WORKDIR}/client/src/index.php`,
|
||||||
`opensupports_version = '${NEW_VERSION}';`,
|
from: `opensupports_version = '${OLD_VERSION}';`,
|
||||||
`${WORKDIR}/client/src/index.php`
|
to: `opensupports_version = '${NEW_VERSION}';`
|
||||||
);
|
});
|
||||||
regexReplace(
|
replace({
|
||||||
`* @apiVersion ${OLD_VERSION}`,
|
files: `${WORKDIR}/server/**/*.php`,
|
||||||
`* @apiVersion ${NEW_VERSION}`,
|
from: `* @apiVersion ${OLD_VERSION}`,
|
||||||
`${WORKDIR}/server`
|
to: `* @apiVersion ${NEW_VERSION}`
|
||||||
);
|
});
|
||||||
regexReplace(
|
replace({
|
||||||
`v${OLD_VERSION}`,
|
files: `${WORKDIR}/client/src/config.js`,
|
||||||
`v${NEW_VERSION}`,
|
from: `v${OLD_VERSION}`,
|
||||||
`${WORKDIR}/README.md`
|
to: `v${NEW_VERSION}`
|
||||||
);
|
});
|
||||||
|
|
|
@ -346,6 +346,12 @@
|
||||||
"universalify": "^0.1.0"
|
"universalify": "^0.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"fs.realpath": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"get-caller-file": {
|
"get-caller-file": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
|
@ -420,6 +426,20 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"glob": {
|
||||||
|
"version": "7.1.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||||
|
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fs.realpath": "^1.0.0",
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"path-is-absolute": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"graceful-fs": {
|
"graceful-fs": {
|
||||||
"version": "4.2.4",
|
"version": "4.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
|
||||||
|
@ -438,6 +458,22 @@
|
||||||
"integrity": "sha512-nARK1wSKoBBrtcoESlHBx36c1Ln/gnbNQi1eB6MeTUefJIT3NvUOsV15bClga0k38f0q/kN5xxrGSDS3EFnm9w==",
|
"integrity": "sha512-nARK1wSKoBBrtcoESlHBx36c1Ln/gnbNQi1eB6MeTUefJIT3NvUOsV15bClga0k38f0q/kN5xxrGSDS3EFnm9w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"inflight": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||||
|
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"wrappy": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inherits": {
|
||||||
|
"version": "2.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
||||||
|
@ -706,6 +742,12 @@
|
||||||
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
|
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"path-is-absolute": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"querystringify": {
|
"querystringify": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
|
||||||
|
@ -745,6 +787,68 @@
|
||||||
"yargs": "^15.3.1"
|
"yargs": "^15.3.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"replace-in-file": {
|
||||||
|
"version": "6.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz",
|
||||||
|
"integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"chalk": "^4.0.0",
|
||||||
|
"glob": "^7.1.6",
|
||||||
|
"yargs": "^15.3.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-styles": {
|
||||||
|
"version": "4.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||||
|
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"color-convert": "^2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chalk": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^4.1.0",
|
||||||
|
"supports-color": "^7.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"color-convert": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"color-name": "~1.1.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"color-name": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||||
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"has-flag": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "7.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||||
|
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^4.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"require-directory": {
|
"require-directory": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"edit-json-file": "^1.5.0",
|
"edit-json-file": "^1.5.0",
|
||||||
"github-release-cli": "^2.0.0",
|
"github-release-cli": "^2.0.0",
|
||||||
"regex-replace": "^2.3.1"
|
"regex-replace": "^2.3.1",
|
||||||
|
"replace-in-file": "^6.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue