elm-to-gh-pages is an example of how to deploy an Elm app to GitHub pages using GitHub Actions. You can either copy this repo and start from there, or follow the explanation below to setup an existing project ⬇️.
In a public GitHub repo, go to Settings > Pages > Source and choose GitHub Actions instead of Deploy from a branch.
Now create a directory .github/workflows/ and put elm-to-gh-pages.yml in it.
On your next push, after a few moments, your Elm app will be deployed to your-username.github.io/your-repo-name!
If you would like to compile your app to JavaScript instead of HTML, update the command in the Build Elm artifact section to elm make src/Main.elm --output=main.js. Make sure that you have an index.html file in your repo.
If your app does not use Debug and you would like the compiled code to be optimized, use elm make src/Main.elm --output=main.js --optimize.
To take it one step further, you can add the following block below the Build Elm artifact step.
- name: Install uglify.js
run: npm install uglify-js -g
- name: Uglify main.js
run: uglifyjs main.js --compress "pure_funcs=[F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9],pure_getters,keep_fargs=false,unsafe_comps,unsafe" | uglifyjs --mangle --output main.jsPull requests are welcome, especially if you have an idea on making this easier to use!