Close Menu
  • Home
  • Life style
    • Celebrities
    • Exercise & Training
    • Healthline
  • Exploration
    • Beauty tips
    • Business
    • Travel guides
    • Fashion
    • Technology
  • Web tutorials
    • Hosting & Servers
    • Blogger guides
    • WordPress guides
  • English
    • Tiếng Việt
    • Hmoob
    • English
Facebook YouTube X (Twitter) Instagram
Trending
  • CPU Performance API: Make Web Interfaces Lighter for Low-End Devices
  • Move XSLT out of the browser before Chrome 158 ends support
  • Create a Draggable Desktop PWA Title Bar with `window-drag`
  • Designing a Malware Package Advisory Pipeline You Can Roll Back
  • How to Keep CI/CD Running Through a GitHub Actions Outage
  • Reduce Web Notification Spam by Auditing Chrome and FCM Permissions
  • Turn On Dependabot Malware Alerts for 8 GitHub Ecosystems
  • What Is Worth Seeing at Olivia Rodrigo: The Cure Unraveled?
Facebook YouTube X (Twitter) Instagram
SaibABCSaibABC
Chú thích cho quảng cáo
  • Home
  • Life style
    1. Celebrities
    2. Exercise & Training
    3. Healthline
    4. View All

    Michael Jackson Fashion Exhibition: When Clothing Tells the Story of the Stage

    13/09/2026

    Buy Concert Tickets Safely: 7 Ways to Avoid Social Media Scams

    13/09/2026

    How Many World Cup Goals Has Messi Scored? Year-by-Year Through 2026

    13/09/2026

    Messi’s Six World Cups: From the 2014 Defeat to 2022 Glory

    13/09/2026

    Five-Minute Office Exercises: A Snack-Sized Movement Schedule

    30/08/2026

    Strengthen Your Core with 12 Exercises from Beginner to Advanced

    30/08/2026

    Where Do Children Get Too Much Sodium? How to Cut Back

    12/09/2026

    “Tejocote root” May Not Be Safe Tejocote Root

    12/09/2026

    Outpatient Antibiotics: Safe Prescribing Takes More Than Drug Choice

    11/09/2026

    Is Glutathione Injection Safe? Don’t Confuse Food-Grade Powder with Injectable Material

    11/09/2026

    Michael Jackson Fashion Exhibition: When Clothing Tells the Story of the Stage

    13/09/2026

    Buy Concert Tickets Safely: 7 Ways to Avoid Social Media Scams

    13/09/2026

    How Many World Cup Goals Has Messi Scored? Year-by-Year Through 2026

    13/09/2026

    Messi’s Six World Cups: From the 2014 Defeat to 2022 Glory

    13/09/2026
  • Exploration
    1. Beauty tips
    2. Business
    3. Travel guides
    4. Fashion
    5. Technology
    Featured

    CPU Performance API: Make Web Interfaces Lighter for Low-End Devices

    By Nuj Coom13/09/2026
    Recent

    CPU Performance API: Make Web Interfaces Lighter for Low-End Devices

    13/09/2026

    Create a Draggable Desktop PWA Title Bar with `window-drag`

    13/09/2026

    Designing a Malware Package Advisory Pipeline You Can Roll Back

    13/09/2026
  • Web tutorials
    1. Hosting & Servers
    2. Blogger guides
    3. WordPress guides
    4. View All

    Let’s Encrypt on Vultr: Enable HTTPS and Automatic Renewal

    09/09/2026

    Install WordPress on Vultr Manually: From Ubuntu to HTTPS

    08/09/2026

    Point Your Domain to a Vultr VPS and Verify the DNS Connection

    08/09/2026

    Set Up an Ubuntu VPS on Vultr: From Account Creation to SSH

    07/09/2026

    Blogger Permissions for Collaborators: Keep Control

    07/09/2026

    Add a Blogger Report Abuse Button to Custom Themes

    07/09/2026

    Why Blogger Image SEO Takes More Than File Names and Alt Text

    07/09/2026

    Blogger Image Lazy Loading for SEO: What Googlebot Must See

    05/09/2026

    WordPress 7.1: Convert GIFs to Video to Reduce File Size

    11/09/2026

    Install WordPress on Vultr Manually: From Ubuntu to HTTPS

    08/09/2026

    WordPress 7.1 AVIF & HEIC: Reduce Server Load

    02/09/2026

    WordPress 7.1 Responsive Breakpoints: How to Test Them

    02/09/2026

    CPU Performance API: Make Web Interfaces Lighter for Low-End Devices

    13/09/2026

    Move XSLT out of the browser before Chrome 158 ends support

    13/09/2026

    WordPress 7.1: Convert GIFs to Video to Reduce File Size

    11/09/2026

    WebMCP for Websites: Turn an HTML Form into an AI Agent Tool

    11/09/2026
  • English
    • Tiếng Việt
    • Hmoob
    • English
SaibABCSaibABC
Home»Exploration»Technology»How to Keep CI/CD Running Through a GitHub Actions Outage
Technology 11 Mins ReadNo Comments

How to Keep CI/CD Running Through a GitHub Actions Outage

Nuj CoomBy Nuj CoomUpdated:13/09/2026
Facebook Twitter Pinterest LinkedIn Tumblr Email
Chú thích cho quảng cáo

Contents

  1. Determine the level of continuity you need to protect
  2. Map the pipeline’s dependencies
  3. Prepare an alternative CI/CD path
    1. Emergency execution from the mirror
  4. Separate source code, dependencies, and artefacts from a single point of failure
  5. Prepare emergency access and secrets
  6. Runbook for when GitHub Actions or the API begins failing
    1. 1. Confirm the platform incident
    2. 2. Freeze actions that could worsen the impact
    3. 3. Select an operating mode
    4. 4. Log every action
  7. Recover after the outage and avoid duplicate releases
  8. Checklist before considering the plan complete
  9. Reference source

The short answer: When GitHub Actions or the GitHub API may be unavailable for hours, prepare a CI/CD path outside GitHub, an independently accessible source-code mirror, an artifact repository or container registry outside the same failure domain, copies of the required configuration and secrets, and a rehearsed failover runbook.

Do not treat a self-hosted runner as a complete fallback. A self-hosted runner still needs to connect to GitHub to receive jobs and download the runner version; if GitHub’s control plane or the Actions API has an outage, the runner may not receive new work (according to docs.github.com).

This article is for small teams and people who are new to DevOps. The practical goal is to preserve three capabilities: return the system to a safe state, create a trustworthy artifact for an emergency release, and resume normal operations without creating duplicate release histories. It does not assume that you need to build an alternative platform at enterprise scale.

Determine the level of continuity you need to protect

Before choosing tools, decide what must continue during an outage. For many teams, a reasonable order of priority is:

  1. Level 1 – operational safety: do not release new features, but retain the ability to roll back to the stable version currently running.
  2. Level 2 – emergency releases: build and deploy a small change that has been reviewed by a person.
  3. Level 3 – full continuity: continue running linting, unit tests, builds, scans, and deployments almost as usual.

Small teams should complete Level 1 and Level 2 first. Level 3 is appropriate only when release disruption causes significant harm or the system has strict recovery-time requirements. This is a choice about acceptable risk and operating cost, not a technical requirement that is the same for every project.

Chú thích cho quảng cáo
System typeRecommended objectiveMinimum solution
Website or application with infrequent changesRollback and emergency releasesStore signed images, a manual deployment runbook, and time-limited emergency access
Production SaaS productRetain the ability to fix critical defectsAlternative CI/CD for the release branch, a registry outside GitHub, and required checks
System processing transactions or critical dataMinimize release downtimeTwo CI/CD paths, an independent secret manager, regular drills, and two-person approval

Map the pipeline’s dependencies

Create a table for each service in the current process. Record its owner, access address, retention period, required permissions, and verification method. If an item has no owner or no access path when GitHub is unavailable, it is a single point of failure that needs to be addressed.

ComponentCommon dependenciesQuestion during an outageFallback option
Source codeGitHub repository, Git clone, pull requestCan you retrieve the approved commit?A Git mirror outside GitHub or a scheduled read-only copy
CIGitHub Actions workflowCan you run tests and linting?Independent CI/CD or locally executed scripts with pinned versions
RunnerGitHub-hosted runner, self-hosted runnerCan the runner receive new jobs?A runner orchestrated by the alternative CI system
Build dependenciesnpm, PyPI, Maven, NuGet, Docker base imagesCan packages and images be downloaded?A proxy or registry mirror independent of the primary failure domain
ArtefactsActions artifacts, GitHub Packages, image registryCan the built version be retrieved for deployment?An independent artefact repository with clear retention policies and checksums
SecretsSecrets, signing keys, cloud credentialsCan authentication work without GitHub?A secret manager and time-limited emergency credentials
DeploymentCloud APIs, Kubernetes, VMs, CDNsWho is authorized to deploy, and how?A manual runbook or an independent deployment system

Prepare an alternative CI/CD path

The alternative path does not need to run every workflow. The minimum route should retrieve the exact approved commit or code package, install dependencies from controlled sources, run the required checks, create an immutable artefact, record build metadata, and deploy only after independent approval.

  1. Retrieve a fixed commit from the mirror; do not read the branch main currently hosted on GitHub.
  2. Install dependencies from a lockfile, cache, or version-controlled proxy registry.
  3. Run linting, unit tests, dependency checks, and the build according to predefined criteria.
  4. Package the artefact or container image with an immutable version identifier.
  5. Record the commit SHA, checksum, build time, tool versions, and approver.
  6. Deploy only after manual approval or an equivalent safeguard.

The control plane, credentials, and logs for the alternative path must be independent of GitHub to the extent required by the continuity objective. A different CI system that still retrieves its code, secrets, base images, and artefacts from the same service may reduce only part of the risk.

If the repository uses reusable workflows or internal actions, pin references to commit SHAs rather than mutable branches when invoking them; this improves stability and auditability (according to docs.github.com).

Emergency execution from the mirror

The example below is run in a shell on an emergency CI machine or an approved operations machine, not in the GitHub interface. The scripts ci/test-required.sh, ci/build-image.sh, ci/verify-release.sh and ci/deploy-approved.sh must be prepared in advance; they must return a non-zero exit code when a check or deployment fails.

#!/usr/bin/env bash
set -Eeuo pipefail

: "${MIRROR_URL:?Đặt MIRROR_URL tới Git mirror độc lập}"
: "${COMMIT_SHA:?Đặt COMMIT_SHA của commit đã được phê duyệt}"
: "${IMAGE_REPOSITORY:?Đặt IMAGE_REPOSITORY của registry độc lập}"
: "${IMAGE_TAG:?Đặt IMAGE_TAG bất biến, ví dụ release-abc1234}"
: "${DEPLOY_ENV:?Đặt DEPLOY_ENV, ví dụ staging hoặc production}"

WORKDIR="${WORKDIR:-/tmp/emergency-release-${COMMIT_SHA}}"
IMAGE_REF="${IMAGE_REPOSITORY}:${IMAGE_TAG}"

rm -rf -- "$WORKDIR"
git clone --no-checkout "$MIRROR_URL" "$WORKDIR"
git -C "$WORKDIR" fetch --no-tags origin "$COMMIT_SHA"
git -C "$WORKDIR" cat-file -e "${COMMIT_SHA}^{commit}"
git -C "$WORKDIR" checkout --detach "$COMMIT_SHA"

cd "$WORKDIR"
./ci/test-required.sh
./ci/build-image.sh "$IMAGE_REF"
./ci/verify-release.sh "$IMAGE_REF" "$COMMIT_SHA"

printf 'Đã build và kiểm tra %s từ commit %s.\n' "$IMAGE_REF" "$COMMIT_SHA"
printf 'Chỉ tiếp tục sau phê duyệt theo runbook; môi trường: %s\n' "$DEPLOY_ENV"
./ci/deploy-approved.sh "$IMAGE_REF" "$DEPLOY_ENV" "$COMMIT_SHA"

printf 'Đã gửi triển khai %s tới %s. Hãy kiểm tra health check và log triển khai.\n' "$IMAGE_REF" "$DEPLOY_ENV"

Replace the environment variables with actual values before running. The expected result is that the source is checked out in a detached state at the exact commit, all checks complete successfully, the image has an immutable reference, and the deployment script records the correct environment. If git fetch the commit cannot be found, stop; do not substitute the latest branch. If verification or the health check fails, do not continue the release and switch to rollback.

Do not put tokens, private keys, or passwords in commands, repositories, or logs. The deployment script must retrieve credentials from an independent secret manager, restrict permissions by environment, and never print secret values to standard output.

Separate source code, dependencies, and artefacts from a single point of failure

Source code: Create regular mirrors with an independent provider or Git server. Record the last synchronization time and the latest commit available in the mirror. Periodically test both cloning and retrieving the correct commit, because a mirror that has never been restored is only an assumption.

Artefacts: Do not treat Actions artifacts as long-term release storage. For each release, store the image or binary package in a repository with a clear retention policy, together with the commit SHA, checksum, dependency manifest, and rollback instructions.

Dependencies: A lockfile, cache, or proxy registry prevents the emergency route from automatically pulling the latest versions during an incident. Rebuilding with newer dependencies may produce an artefact different from the tested version; if the exact dependencies cannot be retrieved, roll back or wait rather than bypassing the checks.

Supply-chain checks: Maintain dependency scanning outside outage periods and define in advance how alerts will be handled before a release. If you use GitHub Dependabot, see the guide to enabling Dependabot malware alerts; however, the continuity plan should not depend solely on a GitHub interface or API.

Prepare emergency access and secrets

Prepare emergency access and secrets
  • Create emergency deployment credentials with narrowly scoped permissions, a short validity period, and access limited to the required environments.
  • Ensure that at least two people can approve or activate the process, avoiding dependence on a single individual.
  • Use a secret manager independent of GitHub, with access logging and a revocation process.
  • Protect artefact or image-signing keys separately; do not copy private keys into repositories, personal computers, or script files.
  • Maintain an out-of-band contact list for notifications when issues, pull requests, and comments are inaccessible.

Emergency access should not be an unrestricted administrator token stored in a plain-text file. After use, revoke or rotate the credentials, review the logs, and record the commit, artefact, approver, and deployment time.

Runbook for when GitHub Actions or the API begins failing

1. Confirm the platform incident

Check GitHub’s status page, send a safe API request, record when the failure occurred, and compare the result with another repository or workflow. Do not rush to edit YAML or trigger large numbers of reruns while the service is unstable.

If the API returns a 403 or 429 status code, distinguish rate limiting from an outage. Respect retry-after, the reset time, and use exponential backoff; continuing to send requests after being rate-limited can cause the integration to be blocked (according to docs.github.com).

2. Freeze actions that could worsen the impact

  • Temporarily pause auto-deployments, data migrations, and jobs that write to external systems.
  • Do not delete workflow runs, artifacts, or runners to “clear the queue.”
  • Record the pending commit, release, and changes.
  • Communicate the status to the development, operations, and product stakeholders through a communication channel outside GitHub.

3. Select an operating mode

  • Standby mode: use this when there is no need to release; only monitor the system and prepare for rollback.
  • Emergency-release mode: use this for a critical issue; run the alternative route with a pinned commit, perform the minimum required checks, and obtain two-person approval.
  • Controlled manual mode: use this only when the alternative CI route is not ready; one person builds, another reviews the logs and artifacts, and only a separately authorized person performs the deployment.

4. Log every action

Create a record outside GitHub containing the incident ID, start time, commit used, test results, artifact checksum, approvers, deployment commands, health-check results, and the rollback decision. This record will serve as the reconciliation source when GitHub becomes available again.

Recover after the outage and avoid duplicate releases

When GitHub is operating normally again, do not immediately rerun every workflow. Proceed in this order:

  1. Reconcile workflows that succeeded, failed, were queued, or never managed to create a run.
  2. Compare the commit built through the fallback route with the commit currently recorded on GitHub.
  3. Check the artifacts and production environment to avoid deploying the same change twice.
  4. Rerun only the workflows that are necessary, prioritizing a specific commit SHA or an intentionally triggered new event.
  5. Clearly mark the manual release in the change-management system.
  6. Revoke the emergency credentials, review permissions, and retain the logs for the post-incident review.

GitHub has recorded incidents in which events that occurred during the incident could not be replayed automatically, so do not assume that the system will catch up on its own. Each critical workflow needs clear criteria for whether to retry it, trigger it again with a new commit, or skip it because the artifact has already been released.

Checklist before considering the plan complete

  • There is a dependency map and an owner for the source code, CI, runners, registry, secrets, and deployment.
  • There is a source-code mirror outside GitHub, and the process for retrieving the correct commit has been tested.
  • Artifacts or container images are stored in an independent repository, together with their checksums and build information.
  • There is an alternative build–test–deploy route that does not require the GitHub Actions control plane.
  • Emergency credentials have limited permissions, a defined validity period, and a revocation procedure.
  • There is a runbook specifying the conditions for switching modes, the approvers, and the rollback procedure.
  • There is a mechanism to prevent builds from using dependencies without pinned versions.
  • The team has rehearsed a scenario in which the GitHub API is unresponsive and has tested the process in a non-production environment first.
  • There is a procedure for reconciling workflows, artifacts, and logs after GitHub recovers.

A practical starting point: First, complete the source-code mirror, store a release artifact outside GitHub, write the rollback runbook, and test the build–test–deploy process with a pinned commit in a non-production environment. Once this route has been verified, decide whether investing in a fully independent CI/CD system is necessary.

Related reading: Designing a Malware Package Advisory Pipeline You Can Roll Back.

Reference source

  • GitHub availability report: August 2026
  • The August 17 outage, and the work ahead
  • Self-hosted runners reference
  • Adding self-hosted runners
  • Reusing workflow configurations
  • Rate limits for the REST API

Chú thích cho quảng cáo
CI/CD DevOps disaster recovery GitHub Actions GitHub API service continuity software security
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleReduce Web Notification Spam by Auditing Chrome and FCM Permissions
Next Article Designing a Malware Package Advisory Pipeline You Can Roll Back
Nuj Coom
  • Website
  • Facebook
  • X (Twitter)
  • Instagram

I'm a doctor, for sure. But I also love writing and sharing knowledge, life experiences, web tricks, and useful lectures. Let's cheer for your passion.

Related Posts

CPU Performance API: Make Web Interfaces Lighter for Low-End Devices

13/09/2026

Create a Draggable Desktop PWA Title Bar with `window-drag`

13/09/2026

Designing a Malware Package Advisory Pipeline You Can Roll Back

13/09/2026
Add A Comment
Leave A Reply Cancel Reply

Latest posts

Wearable Workouts: Use Data to Exercise Safely

What Is LAMP Stack? Components, How It Works, and Alternatives

Use First-Party Data to Understand Readers While Respecting Privacy

Preventing Dengue at Home: A Safety Checklist

How Small Businesses Can Compare Real Cross-Border Payment Costs

Advertisement
Chú thích cho quảng cáo

SUBSCRIBE TO UPDATES

Get the latest creative news from SaibABC.Com on web tips, design, and business.

Copyright © 2024. Designed by NujCoom.
  • Home
  • Contact
  • Privacy
  • Tiếng Việt
  • Hmoob

Type above and press Enter to search. Press Esc to cancel.