Skip to content
Latchkey

Deploy Docs workflow (earthtojake/text-to-cad)

The Deploy Docs workflow from earthtojake/text-to-cad, explained and optimized by Latchkey.

C

CI health: C - fair

Point runs-on at Latchkey and get caching, job timeouts, self-healing for flaky steps, and up to 58% lower cost, applied automatically.

Grade your own workflow free or run it on Latchkey →
Source: earthtojake/text-to-cad.github/workflows/deploy-docs.ymlLicense MITView source

What it does

This is the Deploy Docs workflow from the earthtojake/text-to-cad repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.

Below, Latchkey shows a faster, safer version produced by its optimization engine.

The workflow

workflow (.yml)
name: Deploy Docs

on:
  workflow_dispatch:
    inputs:
      ref:
        description: Production-layout ref to deploy, normally main or a publish commit.
        required: true
        default: main
        type: string
  workflow_call:
    inputs:
      ref:
        description: Production-layout ref to deploy.
        required: true
        type: string

permissions:
  contents: read

concurrency:
  group: deploy-docs
  cancel-in-progress: false

jobs:
  deploy:
    name: Deploy docs app
    runs-on: ubuntu-latest

    steps:
      - name: Check out deploy ref
        uses: actions/checkout@v4
        with:
          ref: ${{ inputs.ref }}
          persist-credentials: false

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "22"

      - name: Install Vercel CLI
        run: npm install --global vercel@50.28.0

      - name: Deploy docs app to Vercel production
        env:
          VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
          VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
          VERCEL_DOCS_PROJECT_ID: ${{ secrets.VERCEL_DOCS_PROJECT_ID }}
        run: |
          for name in VERCEL_TOKEN VERCEL_ORG_ID VERCEL_DOCS_PROJECT_ID; do
            if [ -z "${!name:-}" ]; then
              echo "Missing GitHub Actions secret: $name" >&2
              exit 1
            fi
          done
          scripts/github-workflows/deploy-vercel-app.sh \
            --label "Docs app" \
            --project-id "$VERCEL_DOCS_PROJECT_ID" \
            --public-urls "https://www.cadskills.xyz https://cadskills.xyz https://www.cad.fun https://cad.fun"

The same workflow, on Latchkey

Estimated ~20% faster on cache hits, plus fewer wasted runs and a safer supply chain. Added and changed lines are highlighted.

name: Deploy Docs
 
on:
  workflow_dispatch:
    inputs:
      ref:
        description: Production-layout ref to deploy, normally main or a publish commit.
        required: true
        default: main
        type: string
  workflow_call:
    inputs:
      ref:
        description: Production-layout ref to deploy.
        required: true
        type: string
 
permissions:
  contents: read
 
concurrency:
  group: deploy-docs
  cancel-in-progress: false
 
jobs:
  deploy:
    timeout-minutes: 30
    name: Deploy docs app
    runs-on: latchkey-small
 
    steps:
      - name: Check out deploy ref
        uses: actions/checkout@v4
        with:
          ref: ${{ inputs.ref }}
          persist-credentials: false
 
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          cache: 'npm'
          node-version: "22"
 
      - name: Install Vercel CLI
        run: npm install --global vercel@50.28.0
 
      - name: Deploy docs app to Vercel production
        env:
          VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
          VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
          VERCEL_DOCS_PROJECT_ID: ${{ secrets.VERCEL_DOCS_PROJECT_ID }}
        run: |
          for name in VERCEL_TOKEN VERCEL_ORG_ID VERCEL_DOCS_PROJECT_ID; do
            if [ -z "${!name:-}" ]; then
              echo "Missing GitHub Actions secret: $name" >&2
              exit 1
            fi
          done
          scripts/github-workflows/deploy-vercel-app.sh \
            --label "Docs app" \
            --project-id "$VERCEL_DOCS_PROJECT_ID" \
            --public-urls "https://www.cadskills.xyz https://cadskills.xyz https://www.cad.fun https://cad.fun"
 

What changed

What Latchkey heals here

This workflow has steps that commonly fail on transient issues (network, registries, flaky browsers). On Latchkey managed runners they are detected, retried, and self-healed instead of failing your build:

This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.

Actions used in this workflow