Skip to main content

Enabling GitHub Actions with MinIO Gateway for NAS storage

You can enable GitHub Actions on GitHub Enterprise Server and use MinIO Gateway for NAS storage to store data generated by workflow runs.

Site administrators can enable GitHub Actions and configure enterprise settings.

Warning: MinIO has announced removal of MinIO Gateways. Starting June 1st, 2022, support and bug fixes for the current MinIO NAS Gateway implementation will only be available for paid customers via their LTS support contract. If you want to continue using MinIO Gateways with GitHub Actions, we recommend moving to MinIO LTS support. For more information, see Scheduled removal of MinIO Gateway for GCS, Azure, HDFS in the minio/minio repository.

Prerequisites

Before enabling GitHub Actions, make sure you have completed the following steps:

  • To avoid resource contention on the appliance, we recommend that MinIO be hosted separately from your GitHub Enterprise Server instance.

  • Create your bucket for storing workflow data. 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 and 127.0.0.1 to the HTTP Proxy Exclusion list.
    • If the BYOS bucket is not routable, then you must also add the bucket's URL to the exclusion list.

    For more information on changing your proxy settings, see "Configuring an outbound web proxy server."

Enabling GitHub Actions with MinIO Gateway for NAS storage

  1. SSH into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative shell (SSH)."

    $ ssh -p 122 admin@HOSTNAME
  2. Run the ghe-actions-precheck command to test your blob storage configuration. For more information, see "Command-line utilities."

  3. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  4. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

  5. In the left sidebar, click Management Console. Management Console tab in the left sidebar

  6. In the left sidebar, click Actions.

    Actions tab in the settings sidebar

  7. Select Enable GitHub Actions. Checkbox to Enable GitHub Actions

  8. Under "Artifact & Log Storage", select Amazon S3, and enter your storage bucket's details:

    • 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.

    Radio button for selecting Amazon S3 Storage and fields for MinIO configuration

  9. Under "Artifact & Log Storage", select Force path style. Checkbox to Force path style

  10. Under the left sidebar, click Save settings.

    Screenshot of the save settings button in the Management Console

    Note: Saving settings in the Management Console restarts system services, which could result in user-visible downtime.

  11. Wait for the configuration run to complete.

    Configuring your instance

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."