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.
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.
Tags:
Written by
Related posts
Students: Start building your skills with the GitHub Foundations certification
The GitHub Foundations Certification exam fee is now waived for all students verified through GitHub Education.
Announcing GitHub Secure Open Source Fund: Help secure the open source ecosystem for everyone
Applications for the new GitHub Secure Open Source Fund are now open! Applications will be reviewed on a rolling basis until they close on January 7 at 11:59 pm PT. Programming and funding will begin in early 2025.
Software is a team sport: Building the future of software development together
Microsoft and GitHub are committed to empowering developers around the world to innovate, collaborate, and create solutions that’ll shape the next generation of technology.