One line deployment of your site to gh-pages
Do you want to easily deploy your site to Github pages?
OK, here we go...
-
You have to upload your complete blog/site to a new Github repository (you know how to do it... if not, probably you need to learn some things before try this one, hehe). As a plus, now your blog/site is version-controlled!
-
Almost for sure, your site/blog lives in the master branch of the new repository, but you need to generated a
gh-pages
branch to push yourbuild
oroutput
folder, I mean your site/blog content to deploy... not all the machinery of your site/blog platform (Nikola in my case):
git checkout -b gh-pages
git rm -rf .
git commit -am "First commit to gh-pages branch"
git push origin gh-pages
- Now, we will use a git-subtree technique to push the
build
oroutput
content to thegh-pages
branch:
-
git checkout master
-
git push origin `git subtree split --prefix output gh-pages`:gh-pages --force
Sweet line... uhh ;-)
- Finally, you will need to run the following line every time you want to update your site/blog!
git subtree push --prefix output origin gh-pages
Note: Are you getting git
errors? Just use the sweet line again and force the update...
If you are using Nikola, you can add some of this lines to the DEPLOY_COMMANDS
in your conf.py file and just run nikola deploy
after building your site/blog.
More easier... impossible... ;-)
Damián.
UPDATE: Not enough happy with step 3 and 4 (essentially because of some git
errors), I figured out a cleaner solution:
New 3. Now, we will use a git-subtree technique to push the build
or output
content to the gh-pages
branch. You will need to run the following lines every time you want to update your site/blog!
-
git checkout master
# you can avoid this line if you are in master... -
git subtree split --prefix output -b gh-pages
# create a local gh-pages branch containing the splitted output folder -
git push -f origin gh-pages:gh-pages
# force the push of the gh-pages branch to the remote gh-pages branch at origin -
git branch -D gh-pages
# delete the local gh-pages because you will need it: ref
Did you like the content? Great!
Or visit my support page for more information.
Btw, don't forget this blog post is an ipynb file itself! So, you can download it from the "Source" link at the top of the post if you want to play with it ;-)
Comments powered by Disqus