-
Notifications
You must be signed in to change notification settings - Fork 120
TM020 CPO roughnums
I’ve added a roughnum branch to
github.com/brownplt/code.pyret.org (aka CPO) that should make this
process easy. The changes from the master branch consist in:
1. the package.json file, which changes the dependencies -> pyret-lang field to point to
brownplt/pyret-lang’s roughnum
rather than the (default)
master branch.
2. a shell script cpo-heroku that automates most of what’s
here.
Note that the brownplt/pyret-lang roughnum branch should be
up-to-date and stable. Remember to run make new-bootstap and to
check in the resultant build/phase0/pyret-js.
Ensure you’ve already installed the heroku toolbelt (available from http://toolbelt.heroku.com).
Login to heroku:
heroku login
Get the roughnum version of CPO as follows:
git clone https://github.com/brownplt/code.pyret.org
cd code.pyret.org
git checkout roughnum
Heroku apps are named globally; so you’ll have to choose a
distinctive name for your app. In the following, I’ll use
rough-pyret: Substitute it with whatever name you are able to
use.
If you’ve already created rough-pyret and wish to re-create it
from scratch, run
heroku apps:destroy --confirm rough-pyret
Now, create the app:
heroku create rough-pyret
Now set the environment variables for the app:
heroku config:set \
GOOGLE_CLIENT_ID="" \
GOOGLE_CLIENT_SECRET="" \
GOOGLE_API_KEY="" \
BASE_URL="https://rough-pyret.herokuapp.com" \
SESSION_SECRET="not-so-secret" \
REDISCLOUD_URL="" \
USE_STANDALONE_PYRET="true" \
PYRET_RELEASE_BASE="https://rough-pyret.herokuapp.com/js" \
CURRENT_PYRET_RELEASE="" \
PORT=5000 \
NODE_ENV=development
Now push your CPO branch into heroku:
git push heroku roughnum:master
You can monitor that things are going OK by running
heroku logs --tail
in another window.
Scale the app:
heroku ps:scale web=1
If all goes well, this will create a running app at
https://rough-pyret.herokuapp.com/editor, which you can browse
to. The web repl offered here should let you test out the
roughnum branch of pyret-lang.
The cpo-heroku script takes a single argument, the name chosen
for the app. E.g.,
cpo-heroku rough-pyret
does what I’ve desribed above, up to the scaling. It also takes care to erase any previous apps of the same name, provided they belong to you. You’ll still have to pick a usable name that isn’t already taken.