Skip to content
Latchkey

Release workflow (svaarala/duktape)

The Release workflow from svaarala/duktape, 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: svaarala/duktape.github/workflows/release-workflow.yamlLicense MITView source

What it does

This is the Release workflow from the svaarala/duktape 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: Release
on:
  workflow_dispatch:
jobs:
  dist_source_and_site:
    name: Dist source and site
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Install packages
        run: |
          sudo apt -qqy update
          sudo apt -qqy install build-essential make python3 python3-yaml bc git
      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 16
      - name: Build Docker images
        run: |
          make docker-images
      - name: Minimal test
        run: |
          make ecmatest
          make apitest
      - name: Dist source
        run: |
          make cleanall
          make docker-dist-source-wd
          make docker-dist-site-wd
          ls -l dist/
      - name: Upload artifacts
        uses: actions/upload-artifact@v2
        with:
          name: release-artifacts
          path: |
            dist/*.tar.xz

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: Release
on:
  workflow_dispatch:
jobs:
  dist_source_and_site:
    timeout-minutes: 30
    name: Dist source and site
    runs-on: latchkey-small
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Install packages
        run: |
          sudo apt -qqy update
          sudo apt -qqy install build-essential make python3 python3-yaml bc git
      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          cache: 'npm'
          node-version: 16
      - name: Build Docker images
        run: |
          make docker-images
      - name: Minimal test
        run: |
          make ecmatest
          make apitest
      - name: Dist source
        run: |
          make cleanall
          make docker-dist-source-wd
          make docker-dist-site-wd
          ls -l dist/
      - name: Upload artifacts
        uses: actions/upload-artifact@v2
        with:
          name: release-artifacts
          path: |
            dist/*.tar.xz
 

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