Skip to content
Latchkey

Publish Docs workflow (dagger/container-use)

The Publish Docs workflow from dagger/container-use, explained and optimized by Latchkey.

A

CI health: A - excellent

Point runs-on at Latchkey and get 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: dagger/container-use.github/workflows/publish-docs.ymlLicense Apache-2.0View source

What it does

This is the Publish Docs workflow from the dagger/container-use repository, a real project running GitHub Actions. It is shown here with attribution under its Apache-2.0 license.

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

The workflow

workflow (.yml)
name: Publish Docs

on:
  release:
    types: [published]
  workflow_dispatch:
    inputs:
      source:
        description: "Tag or branch to publish to docs branch"
        required: true

jobs:
  publish-docs:
    name: Publish Docs
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@v5
        with:
          fetch-depth: 0

      - name: Publish to docs branch
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"

          if [ "${{ github.event_name }}" = "release" ]; then
            SOURCE="${GITHUB_REF#refs/tags/}"
          else
            SOURCE="${{ github.event.inputs.source }}"
          fi

          SOURCE_SHA=$(git rev-parse $SOURCE)
          git push -f https://github-actions[bot]:${{ secrets.RELEASE_GITHUB_TOKEN }}@github.com/${{ github.repository }}.git "$SOURCE_SHA:refs/heads/docs"
        env:
          RELEASE_GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}

The same workflow, on Latchkey

Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.

name: Publish Docs
 
on:
  release:
    types: [published]
  workflow_dispatch:
    inputs:
      source:
        description: "Tag or branch to publish to docs branch"
        required: true
 
jobs:
  publish-docs:
    timeout-minutes: 30
    name: Publish Docs
    runs-on: latchkey-small
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@v5
        with:
          fetch-depth: 0
 
      - name: Publish to docs branch
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
 
          if [ "${{ github.event_name }}" = "release" ]; then
            SOURCE="${GITHUB_REF#refs/tags/}"
          else
            SOURCE="${{ github.event.inputs.source }}"
          fi
 
          SOURCE_SHA=$(git rev-parse $SOURCE)
          git push -f https://github-actions[bot]:${{ secrets.RELEASE_GITHUB_TOKEN }}@github.com/${{ github.repository }}.git "$SOURCE_SHA:refs/heads/docs"
        env:
          RELEASE_GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
 

What changed

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