About backups of GitHub Enterprise Server when using GitHub Actions
You can use GitHub Enterprise Server Backup Utilities to back up and restore the data and configuration for your GitHub Enterprise Server instance to a new instance. For more information, see "Configuring backups on your instance."
However, not all the data for GitHub Actions is included in these backups. GitHub Actions uses external storage to store workflow artifacts and logs. This data is stored on your external provider, such as Azure blob storage, Amazon S3, Google Cloud Storage, or MinIO. As a result, GitHub Enterprise Server backups and GitHub Enterprise Server high availability configurations do not provide protection for the data stored on this external storage, and instead rely on the data protection and replication provided by the external storage provider, such as Azure, Google Cloud, or AWS.
Restoring a backup of GitHub Enterprise Server when GitHub Actions is enabled
To restore a backup of your GitHub Enterprise Server instance with GitHub Actions, you must manually configure network settings and external storage on the destination instance before you restore your backup from GitHub Enterprise Server Backup Utilities.
-
Confirm that the source instance is offline.
-
Manually configure network settings on the replacement GitHub Enterprise Server instance. Network settings are excluded from the backup snapshot, and are not overwritten by
ghe-restore
. For more information, see "Configuring network settings." -
SSH into the destination instance. For more information, see "Accessing the administrative shell (SSH)."
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
Configure the destination instance to use the same external storage service for GitHub Actions as the source instance by entering one of the following commands.
-
Azure Blob Storage:
Shell ghe-config secrets.actions.storage.blob-provider "azure"
ghe-config secrets.actions.storage.blob-provider "azure"
-
Amazon S3:
Shell ghe-config secrets.actions.storage.blob-provider "s3"
ghe-config secrets.actions.storage.blob-provider "s3"
-
Google Cloud Storage:
Shell ghe-config secrets.actions.storage.blob-provider "gcs"
ghe-config secrets.actions.storage.blob-provider "gcs"
-
-
Configure the external storage connection by entering the following commands, replacing the placeholder values with actual values for your connection.
-
Azure Blob Storage:
Shell ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
-
Amazon S3:
Shell ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME" ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL" ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID" ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME" ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL" ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID" ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
Optionally, to force path-style addressing for S3, also enter the following command.
Shell ghe-config secrets.actions.storage.s3.force-path-style true
ghe-config secrets.actions.storage.s3.force-path-style true
-
Google Cloud Storage:
Shell ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL" ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME" ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID" ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL" ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME" ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID" ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
-
-
To prepare to enable GitHub Actions on the destination instance, enter the following command.
Shell ghe-config app.actions.enabled true
ghe-config app.actions.enabled true
-
To apply the configuration and enable GitHub Actions to connect to your external storage provider, enter the following command.
Shell ghe-config-apply
ghe-config-apply
-
After GitHub Actions is configured and enabled, to restore the rest of the data from the backup, use the
ghe-restore
command. For more information, see "Configuring backups on your instance." -
Re-register your self-hosted runners on the destination instance. For more information, see "Adding self-hosted runners."
-
To ensure that the bundled actions that are pre-installed on your new instance are up to date, enter the following command.
Shell ghe-config --unset 'app.actions.actions-repos-sha1sum'
ghe-config --unset 'app.actions.actions-repos-sha1sum'
-
To apply the configuration, run the following command.
Note: During a configuration run, services on your GitHub Enterprise Server instance may restart, which can cause brief downtime for users.
Shell ghe-config-apply
ghe-config-apply
-
Wait for the configuration run to complete.
-