GitHub Pages now uses Actions by default

As GitHub Pages, home to 16 million websites, approaches its 15th anniversary, we’re excited to announce that all sites now build and deploy with GitHub Actions.

| 4 minutes

As GitHub Pages, home to 16 million websites, approaches its 15th anniversary, we’re excited to announce that all sites now build and deploy with GitHub Actions.

When GitHub Pages was first announced in 2008, we released Jekyll, a rich static site generator, to allow you to build more complex sites. As Jekyll grew in popularity, many different plugins were added, providing greater capability. Eventually a version of Jekyll was released that wasn’t compatible with some of the core plugins provided by the GitHub Pages platform. The pagesworker that powered the build and deployment of pages sites was a single-purpose system that didn’t support versioning, which left us unable to upgrade to new Jekyll versions or easily add more plugins without breaking users.

Furthermore, as time has passed, many other site generators have been created and you have asked us to support them. By bringing the power of GitHub Actions to the GitHub Pages platform, you have the freedom to build your static website using any framework that exists today or is created in the future.

A bright future powered by GitHub Actions

Since December 2021, GitHub Pages sites for public repositories have been built and deployed with GitHub Actions.

Based on over six months of observations on over seven million builds a month, we made some adjustments and improvements to the overall flow, and we are now ready to use GitHub Actions to build and deploy private and internal repositories, too.

GitHub Actions has the added benefit of introspection—it’s not a black box like before that could obscure build failures. In addition, GitHub Actions has the backing of hundreds of engineers here at GitHub and a rich community with over 14,000 GitHub Actions in the GitHub Marketplace providing yet more features and helping you customize your site publishing workflow exactly how you like it. For example, starting today you can include injecting secrets in your build process, gate deployments to require approvals before publishing, or add a build check to prevent bad commits from being deployed.

Protecting GitHub Pages deployments

Since inception, GitHub Pages have been scoped to a branch (and, optionally a /docs folder) in your repository. Individual commits on the target branch would trigger builds followed by a deployment and branch protection rules have been the security mechanism for limiting deployments.

With the shift to GitHub Actions, GitHub Pages are now tracking deployments instead of builds. A source branch is not required anymore and is at the discretion of a workflow’s triggers. We’ve made it so a deployment must happen in the context of an environment (github-pages by default). As a result, environment protection rules are the new security mechanism for limiting deployments.

Therefore, today, we are excited to announce that private repositories in Team and Pro plans now have access to GitHub Actions environments, deployment branches, and environment secrets everywhere—in the past, only teams on the Enterprise plan had access to all these features with private repositories

FAQ

Do I need to do anything?

No. Just like when we started to build GitHub Pages sites with GitHub Actions for public repositories, this change is transparent.

Do builds and deployments of private and internal repositories use GitHub Actions minutes?

Yes. Just like any regular workflow, building and deploying a GitHub Pages site on a private or internal repository consumes GitHub Actions minutes. All GitHub accounts and organizations come with a generous amount of GitHub Actions minutes included for private repositories, and public repositories have unlimited actions minutes.

How can I upgrade to Jekyll 4+?

For that, you will want to switch from your GitHub Pages source from “branch” to “GitHub Actions” (see the changelog) and use a custom workflow. We published a starter workflow you can leverage today. It will require you to have a Gemfile and optionally a configuration file in your repository. You can follow Jekyll’s getting started guide.

How do I leverage all GitHub Actions features?

Same as above. In order to take advantage of all GitHub Actions has to offer you will also need to start managing a workflow in your repository (see the changelog).

To help you get started with other frameworks we have provided several starter workflows for the most popular static site generators.

Related posts