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
."
Before enabling GitHub Actions, make sure you have completed the following steps:
-
Create your MinIO bucket for storing data generated by workflow runs. For more information about installing and configuring MinIO, see "
MinIO High Performance Object Storage
" and "
mc mb
" in the MinIO documentation.
To avoid resource contention on the appliance, we recommend that MinIO be hosted separately from your GitHub Enterprise Server instance.
GitHub Actions requires the following permissions for the access key that will access the bucket:
s3:PutObject
s3:GetObject
s3:ListBucketMultipartUploads
s3:ListMultipartUploadParts
s3:AbortMultipartUpload
s3:DeleteObject
s3:ListBucket
kms:GenerateDataKey
(if Key Management Service (KMS) encryption has been enabled)
-
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
,
127.0.0.1
, and
::1
to the
HTTP Proxy Exclusion
list (in this order).
-
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
."
-
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", next to "Amazon S3", click
Setup
.
-
Under "Authentication", select
Credentials-based
, and enter your storage bucket's details:
Note:
For MinIO, you cannot use OpenID Connect (OIDC) authentication. You must use credentials-based authentication.
- AWS Service URL
: The URL to your MinIO service. For example,
https://my-minio.example:9000
.
- AWS S3 Bucket
: The name of your S3 bucket.
- AWS S3 Access Key
and
AWS S3 Secret Key
: The
MINIO_ACCESS_KEY
and
MINIO_SECRET_KEY
used for your MinIO instance.
-
Under "Artifact & Log Storage", select
Force path style
.
-
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.
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
."