Note: GitHub Actions support for Google Cloud Storage is currently in beta and subject to change.
About external storage for GitHub Actions
GitHub Actions uses external blob storage to store data generated by workflow runs. Stored data includes workflow logs, caches, and user-uploaded build artifacts. For more information, see "Getting started with GitHub Actions for GitHub Enterprise Server."
Prerequisites
Before enabling GitHub Actions, make sure you have completed the following steps:
-
Create your Google Cloud Storage bucket for storing data generated by workflow runs.
-
Review the hardware requirements for GitHub Actions. For more information, see "Getting started with GitHub Actions for GitHub Enterprise Server."
-
TLS must be configured for your GitHub Enterprise Server instance's domain. For more information, see "Configuring TLS."
Note: We strongly recommend that you configure TLS on GitHub Enterprise Server with a certificate signed by a trusted authority. Although a self-signed certificate can work, extra configuration is required for your self-hosted runners, and it is not recommended for production environments.
-
If you have an HTTP Proxy Server configured on your GitHub Enterprise Server instance:
-
You must add
.localhost
and127.0.0.1
to the HTTP Proxy Exclusion list. -
If your external storage location is not routable, then you must also add your external storage URL to the exclusion list.
For more information on changing your proxy settings, see "Configuring an outbound web proxy server."
Enabling GitHub Actions with Google Cloud Storage
-
Create a Google Cloud service account that can access the bucket, and create a Hash-based Message Authentication Code (HMAC) key for the service account. For more information, see "Manage HMAC keys for service accounts" in the Google Cloud documentation.
The service account must have the following Identity and Access Management (IAM) permissions for the bucket:
storage.objects.create
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.delete
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
storage.multipartUploads.list
-
From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .
-
If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.
-
In the " Site admin" sidebar, click Management Console.
-
In the "Settings"" sidebar, click Actions.
-
Under "GitHub Actions", select Enable GitHub Actions.
-
Under "Artifact & Log Storage", select Google Cloud Storage, and enter your bucket's details:
- Service URL: The service URL for your bucket. This is usually
https://storage.googleapis.com
. - Bucket Name: The name of your bucket.
- HMAC Access Id and HMAC Secret: The Google Cloud access ID and secret for your storage account. For more information, see "Manage HMAC keys for service accounts" in the Google Cloud documentation.
- Service URL: The service URL for your bucket. This is usually
-
Click the Test storage settings button to validate your storage settings.
If there are any errors validating the storage settings, check the settings with your storage provider and try again.
-
Under the "Settings" sidebar, click Save settings.
Note: Saving settings in the Management Console restarts system services, which could result in user-visible downtime.
-
Wait for the configuration run to complete.
Next steps
After the configuration run has successfully completed, GitHub Actions will be enabled on your GitHub Enterprise Server instance. For your next steps, such as managing GitHub Actions access permissions and adding self-hosted runners, return to "Getting started with GitHub Actions for GitHub Enterprise Server."