Skip to content

Instantly share code, notes, and snippets.

@jaxzin
Last active August 29, 2015 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jaxzin/54018149f0923e6c0f4d to your computer and use it in GitHub Desktop.
Save jaxzin/54018149f0923e6c0f4d to your computer and use it in GitHub Desktop.
Snap-CI pipeline config for autodeploying danbury.io pull requests
# Deploy Stage
sudo yum install --assumeyes jq
heroku apps:destroy \
--app danburyio-pr$SNAP_PULL_REQUEST_NUMBER \
--confirm danburyio-pr$SNAP_PULL_REQUEST_NUMBER || true
heroku create danburyio-pr$SNAP_PULL_REQUEST_NUMBER \
--buildpack https://github.com/heroku/heroku-buildpack-nodejs.git
heroku addons:add mongolab:sandbox
heroku domains:add $SNAP_PULL_REQUEST_NUMBER.pr.danbury.io
curl -H "X-DNSimple-Token: $DNSIMPLE_USER:$DNSIMPLE_TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-X POST \
-d "{\"record\":{\"name\":\"$SNAP_PULL_REQUEST_NUMBER.pr\",\"record_type\":\"CNAME\",\"content\":\"danburyio-pr$SNAP_PULL_REQUEST_NUMBER.herokuapp.com\",\"ttl\":600}}" \
--fail \
https://api.dnsimple.com/v1/domains/danbury.io/records > dns_record.json || \
curl -H "X-DNSimple-Token: $DNSIMPLE_USER:$DNSIMPLE_TOKEN" \
-H 'Accept: application/json' \
--fail \
https://api.dnsimple.com/v1/domains/danbury.io/records \
| jq ".[] | select(.record.name == \"$SNAP_PULL_REQUEST_NUMBER.pr\")" -
heroku config:add MONGOHQ_URL=$(heroku config:get MONGOLAB_URI) \
KNOWN_ADMINS=jaxzin,criana \
GITHUB_CALLBACK_URL=http://$SNAP_PULL_REQUEST_NUMBER.pr.danbury.io/auth/callback \
COOKIE_SECRET=$COOKIE_SECRET \
SERVER_SECRET=$SERVER_SECRET \
GITHUB_CLIENT_ID=$GITHUB_CLIENT_ID \
GITHUB_CLIENT_SECRET=$GITHUB_CLIENT_SECRET
git push heroku master
# Destroy Stage
heroku apps:destroy --app danburyio-pr$SNAP_PULL_REQUEST_NUMBER \
--confirm danburyio-pr$SNAP_PULL_REQUEST_NUMBER
sudo yum install --assumeyes jq
curl -H "X-DNSimple-Token: $DNSIMPLE_USER:$DNSIMPLE_TOKEN" \
-H 'Accept: application/json' \
--fail \
https://api.dnsimple.com/v1/domains/danbury.io/records \
| jq ".[] | select(.record.name == \"$SNAP_PULL_REQUEST_NUMBER.pr\")" - > dns_record.json
curl -H "X-DNSimple-Token: brian@jaxzin.com:$DNSIMPLE_TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--fail \
-X DELETE \
https://api.dnsimple.com/v1/domains/danbury.io/records/$(jq .record.id dns_record.json)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment