Deploy to GitHub pagesλ︎
GitHub pages is a free service for serving up content in static files, its ideal for websites that do not require their own database or other services (or simply plugs into purely online services and API's).
Create a repository on GitHub for this ClojureScript project
Add that repository as a remote repository to the local Git repository for this project
Project specific landing pagesλ︎
There are two approaches when adding a website to a specific project.
- add files to a
gh-pages
branch (classic approach) - add files to
/docs
directory on the master branch (new approach)
We will use the new approach and deploy our files in /docs
Alternative: Organisation / user Landing pagesλ︎
For Organisations on GitHub, like ClojureBridgeLondon and Pracitalli, I use two separate Git repositories
- ClojureScript repository - created by Leiningen / figwheel template
- Deployment repository - only contains specific files for deployment
Creating the files for deploymentλ︎
During development the build of the ClojureScript application is contained in multiple files, as this makes it easy to do fast updates of just the specific parts of the application.
When we deploy, we generate a single JavaScript file that contains our application. We also minify the application to make it quick to load into the browser.
Note::λ︎
In the root of your ClojureScript project (where project.clj file is) run the commands:
Add directory to GitHubλ︎
Create the /docs
and /docs/cljs-out
directories in the project first.
Add a README.md
file with a message describing the purpose of the /docs directory.
Commit the README.md
file and push to your GitHub repository
Set GitHub pages locationλ︎
Visit the GitHub repository website and update the Settings to point to `/docs as the source of GitHub pages
Setting > GitHub Pages > Source
master branch /docs folder
Copy the filesλ︎
Copy the following files into the /docs
directory.
cp resources/public/index.html docs
cp -r resources/public/css docs
cp -r resources/public/images images
cp resources/public/cljs-out/dev-main.js docs/cljs-out/
Commit and push the filesλ︎
Commit all the changes in the /docs
directory.
Push the commit to GitHub
git push origin master
Visit your live website at https://
Deploying updatesλ︎
Any changes to your ClojureScript app that you want to deploy, then you only need to build the single javascrpt file again
Then copy the new javascript file to the docs/cljs-out
directory
Commit the new file and push to GitHub
If you make any changes to the index.html or css/styles.css files, then you will need to copy them into /docs
directory and commit those changes too