Check out the example app elm-todomvc. In brief:
- Add an
app.json
file- Ensure that a second buildpack provides the web server (elm-todomvc uses the static buildpack)
- Specify the value of
ELM_COMPILE
(command used to compile your Elm sources) inapp.json
- Add the elm buildpack:
heroku buildpacks:add https://github.com/srid/heroku-buildpack-elm
- Add static buildpack if needed:
heroku buildpacks:add https://github.com/hone/heroku-buildpack-static
- Add static buildpack if needed:
- Deploy!
- e.g.
git commit -am "empty" && git push heroku master && heroku ps:scale web=1
- e.g.
The buildpack aims to use the latest version of Elm by default. To specify an alternative Elm version, create this file in your repo:
$ cat .buildpack.env
export ELM_VERSION=0.15
^D
By default, this buildpack will save and reuse intermediate build objects between deploys. If you want to perform a clean build on every deploy, you may specify that in your .buildpack.env file:
$ cat .buildpack.env
export CACHE_BUILD_OBJECTS=false
^D
Binaries are generated using docker, and uploaded to s3.
# To generate docker image containing the binaries
make binaries
# To upload to s3
aws configure # creates ~/.aws/...
make upload
- Modify the
ELM_VERSION
env var in Dockerfile make binaries upload
- Modify the
ELM_VERSION
env var inbin/compile
- Update CHANGELOG.md
- git push
Feel free to ask in Github Issues.