Organizations can now configure GitHub Actions for self-deployed GitHub Enterprise Server (GHES) on premises with Pure Storage® FlashBlade//S™, making it simpler, more secure, and less costly to develop and deliver code at scale. Additionally, organizations with software development, electronic device automation (EDA), and design and research functions can operate their development environments with a cloud-like operating model by only paying for the effective capacity used by on-premises self-hosted GitHub Enterprise and other integrated workflows that accelerate the software delivery process. This model utilizes Evergreen//One™ and also includes cost savings from data reduction rates of 2:1 (minimum), depending on different data sets.
GitHub is one of the most common source code repositories for modern application development in the DevOps process, supporting over 83 million users. In addition to version control management, GHES also provides the ability to automate the build, test, and deployment pipeline during continuous integration and continuous delivery (CI/CD) processes. GHES has a cloud and self-hosted on-premises offering.
Self-hosted on-premises GHES using S3-compatible fast ObjectStore allows businesses to develop and deploy applications on premises faster than in the cloud and in a secure, self-hosted, and managed on-premises environment. The on-premises implementation of GHES also allows developers to customize the CI/CD workflow and integrate with some of the common development tools used during the software development life cycle (SDLC).
GitHub Enterprise Server has two main components: actions and runners. GitHub Actions is a reusable workflow automation tool for build, test, and deployment pipelines. Individual tasks called Actions can be written for custom workflows using templates in YAML with different software development tools. GitHub Actions require external storage for storing workflow templates, build artifacts, and GitHub Packages.
GitHub runners are virtual machines (VMs) that run different jobs. Every job can have its own runner. A job consists of custom scripts that are executed when a GitHub Action triggers an event in the workflow run.
The self-hosted on-premises GHES can be installed on bare metal and virtual machines. Apart from the core filesystem and code repositories, GitHub Actions use AWS S3 or S3-compatible ObjectStores like Pure Storage FlashBlade//S for scalable capacity and performance. FlashBlade//S is a consolidated storage platform for both file and object workloads, delivering a simplified experience for infrastructure and data management.
Figure 1: Layout diagram of self-hosted on-premises GHES with FlashBlade//S.
The diagram above shows the external storage for GitHub Actions is configured on FlashBlade//S fast objectstore. S3 currently supports two forms of access to a bucket: path style and virtual host style. While the traditional way of accessing the buckets using path style is being deprecated, the S3-compatible bucket created on FlashBlade//S supports virtual host-style access. It’s pertinent to note that adequate configuration is required to support the virtual host style of addressing while creating the bucket on FlashBlade//S for GitHub Actions.
The following steps demonstrate the process for configuring the S3-compatible bucket on FlashBlade//S using the virtual host style of addressing for GitHub Actions.
- Create an account, a username, and a bucket on FlashBlade//S. Enable versioning on the new bucket called “Actions.”
- Identify the data VIP on the FlashBlade//S device that will be used to access the “Actions” bucket from GHES.
- Update the DNS with the FlashBlade//S data VIP fully qualified domain name (FQDN). In this example, “sn1-fb-g12-23-data1.puretec.purestorage.com” is the FQDN for the data VIP on FlashBlade//S identified to be used by GitHub Actions. Another entry for the virtual host style to access the bucket “Actions” has to be made in the DNS: “actions.sn1-fb-g12-23-data1.puretec.purestorage.com.”
- The FQDN of the data VIP on the FlashBlade//S device that will be used by GitHub Actions is added to the “Object Store Virtual Hosts” under “Settings.”
Setting up the S3-compatible bucket on FlashBlade//S for GitHub Actions is complete. The following test provided by GitHub indicates that FlashBlade//S is a validated storage platform for GitHub Actions.
Authenticating with existing credentials…
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
Running storage tests…
Unable to find image ‘ghcr.io/github-technology-partners/enterprise-storage-check/actions-console:ghes-3.4’ locally
Validating FlashBlade//S for GitHub Actions further strengthens integration with other software development tools and workflows that run on premises. FlashBlade//S provides a best-in-class data storage platform designed to support data-heavy, unstructured workloads efficiently. It provides unequaled density, capacity, and performance for all of your application development and delivery processes. Additionally, FlashBlade//S provides cost-efficient data deduction to significantly reduce the amount of storage you need to consume and protects your data from ransomware during SDLC with SafeMode™ snapshots.