From 1e294eafa0acfce843b8ec14099571708fffe7b1 Mon Sep 17 00:00:00 2001 From: sugarshin Date: Fri, 22 Sep 2017 01:47:53 +0900 Subject: [PATCH] Fix deploy --- .circleci/config.yml | 6 ++++-- package.json | 4 ++-- scripts/deployment-delete.js | 1 + scripts/deployment-pop.js | 22 ++++++++++++++++++++++ 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 scripts/deployment-pop.js diff --git a/.circleci/config.yml b/.circleci/config.yml index cbdd8d2..31e609d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -35,8 +35,10 @@ jobs: key: v1-dependencies-{{ .Branch }}-{{ checksum "yarn.lock" }} - deploy: command: | - npm run deploy -- -e SENTRY_DSN=$SENTRY_DSN --token=$NOW_TOKEN &>/dev/null + npm run deployment:pop + ./node_modules/.bin/now --public -e NODE_ENV=production -e SENTRY_DSN=$SENTRY_DSN -n moci --no-clipboard --token=$NOW_TOKEN if [ "${CIRCLE_BRANCH}" == "master" ]; then npm run alias -- --token=$NOW_TOKEN &>/dev/null - npm run delete + npm run deployment:delete + DATA=\{\"text\":\"mo\ has\ been\ updated\ \\"\}; curl -XPOST -d $DATA $SLACK_WEBHOOK_URL fi diff --git a/package.json b/package.json index d11bd8d..da01c8a 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,9 @@ "dev": "node server", "prebuild": "npm run clean:build", "build": "next build", - "deploy": "now --public -e NODE_ENV=production -n moci --no-clipboard", + "deployment:pop": "node ./scripts/deployment-pop", + "deployment:delete": "node ./scripts/deployment-delete", "alias": "now alias --no-clipboard", - "delete": "node ./scripts/deployment-delete", "start": "node ./server" }, "repository": { diff --git a/scripts/deployment-delete.js b/scripts/deployment-delete.js index 23e9de4..11285e6 100644 --- a/scripts/deployment-delete.js +++ b/scripts/deployment-delete.js @@ -16,6 +16,7 @@ const main = async () => { console.log(`Success! ${targets.map(t => `Deployment ${t.uid} removed`).join('\n')} + `) return } diff --git a/scripts/deployment-pop.js b/scripts/deployment-pop.js new file mode 100644 index 0000000..8107294 --- /dev/null +++ b/scripts/deployment-pop.js @@ -0,0 +1,22 @@ +const NowClient = require('now-client') + +const now = new NowClient(process.env.NOW_TOKEN) + +const main = async () => { + const deployments = await now.getDeployments() + if (deployments.length >= 3) { // upper limit for free plan + const aliases = await now.getAliases() + const mociId = (aliases.find(a => a.alias === 'moci.now.sh') || {}).deploymentId + const target = deployments.filter(d => d.uid !== mociId).pop() + await now.deleteDeployment(target.uid) + console.log(`Success! + +Deployment ${target.uid} removed + +`) + } else { + console.log('Does not require delete.') + } +} + +main()