Where to Discuss?

Local Group

Preface

Goal: Overview of deploying SSG in repository.

How many ways to deploy your static site? I found at least ten ways to deploy SSG site.

We are going to to learn how to be a junior devops, to be precise, a YAML Engineer.

Manual Page

This guidance is intended for beginner. Professional should read manual page instead 🙂.


Issue

I already have three blogs. And I want to make my fourth one.

I desire to consider something else. Because I have already use github pages, gitlab pages and netlify.

One of the issue with SSGs is build minute. So I decide to experiment with methods I never use before.

Minutes Build on Free Plans

  1. Github Free Plan

  2. Gitlab CI/CD Free Plan

  3. Bitbucket Pipelines Free Plan

  4. Netlify Free Plan

  5. Zeit Now Free Plan

  6. Travis Free Plan

  7. CircleCI Free Plan

I do not really understand for each terms. I just put it there, so I can find it easily later on.


Choice: Deploying Method

How many ways to deploy your static site? I found at least ten ways to deploy SSG site.

Illustration: Deploy Options

Easiest One

My first SSG is Jekyll.

  • Plain github (jekyll only)

Successfully Deployed

How about other SSGs ? I have successfully tested this six ways for these SSG: Jekyll, Hexo, Hugo, 11ty, Pelican.

  1. Gitlab CI
  2. Netlify
  3. Manual git push
  4. Zeit Now
  5. Manual git worktree
  6. Travis (github only)
  7. Circle-ci + github (git worktree)
  8. Circle-ci + bitbucket (git worktree)
  9. gh-action (github workflow)
  10. local git hook (.git/hooks)

On Radar

No Idea

I’m still not sure about this.

  1. Jenkins

You might have different idea, outside these above.


Articles

Consider to discuss it one by one.

0: Github Pages

I have already make article for this. There is no need to write another article.

0: Gitlab Pages

All available Hugo versions are listed here:

Still using the article above, here is my .gitlab-ci.yml.

image: registry.gitlab.com/pages/hugo:latest

variables:
  GIT_SUBMODULE_STRATEGY: recursive

pages:
  script:
  - hugo --baseURL="http://oto-spies.info/"
  artifacts:
    paths:
    - public
  only:
  - master

By this time of this writing. I still do not know If there is a free bitbucket pages.

1: Netlify

I also have made article to deploy Hexo using netlify.

The same steps apply to other SSG for example this 11ty.

Here is the netlify.toml example for the site aboce.

[build]
  base    = "tutor-06"
  publish = "tutor-06/dist"
  command = "eleventy"

Taht you can see ini this repository:

By this time of this writing. I do not have any luck in dploying Pelican in netlify. It seems like netlify is still using Python 2.7 instead of Python 3.x series. But maybe it is just me that doesn’t know how to configure it properly.

2: Manual Push

This is a very basic stuff. Introducing gh-pages branch.

git refs: Introducing gh-pages branch

3: Zeit Now

Now, Zeit. We have this new article.

This article is a kind of for dummies guidance. We will explore more complex case, that can make you feel like an expert, using other tools later.

Zeit Now: Buil Logs

4: Manual Git Worktree

In a nutshell, git worktree enable you to work, with different branches in a same time.

git worktree: Two Panes tmux, prepare HEAD for each branches

This is a so long topic that should be covered in two articles.

5: Travis

Travis CI read your source SSG from master branch from your repository, build your site, write your pages to gh-pages.

Travis: My Repository

Another long topic that should be covered in two articles.

6: CircleCI + Github

Just like Travis, but combining with git worktree.

CircleCI: Build Result

Interesting topic that deserved two articles.

7: CircleCI + Bitbucket

Just like previous Tier, but using Bitbucket. We need some adjustment about SSH management.

I also use different branch scheme other than master and gh-pages.

Bitbucket: Branches in Bitbucket Repository

8: Github Workflows

How about going back to Github? This time we are going to explore Github Actions

In a nutshell Github Workflows is

  1. Configuration

  2. Reusable Script

Github Actions has a lot of potential.

Github Workflows: Eleventy Workflows

9: Git Hooks

This is just another manual CI/CD for intellectual curiosity. This is not recommended for daily use.

When you push master branch. The screen is showing push to gh-pages instead.

Git Hooks: Pre Push Hugo


What is Next ?

Consider continue reading [ CI/CD - Manual Git ]. Using git manually, featuring git refspec.