Skip to content
Latchkey

SCIP workflow (sourcegraph/checkup)

The SCIP workflow from sourcegraph/checkup, explained and optimized by Latchkey.

C

CI health: C - fair

Point runs-on at Latchkey and get run de-duplication, 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: sourcegraph/checkup.github/workflows/scip.ymlLicense MITView source

What it does

This is the SCIP workflow from the sourcegraph/checkup 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: SCIP
'on':
  - push
jobs:
  scip-go:
    runs-on: ubuntu-latest
    container: sourcegraph/scip-go
    steps:
      - uses: actions/checkout@v1
      - name: Get src-cli
        run: curl -L https://sourcegraph.com/.api/src-cli/src_linux_amd64 -o /usr/local/bin/src;
          chmod +x /usr/local/bin/src
      - name: Set directory to safe for git
        run: git config --global --add safe.directory $GITHUB_WORKSPACE
      - name: Generate SCIP data
        run: scip-go
      - name: Upload SCIP data to Cloud
        run: src code-intel upload -github-token='${{ secrets.GITHUB_TOKEN }}' -no-progress
        env:
          SRC_ENDPOINT: https://sourcegraph.com
          SRC_ACCESS_TOKEN: ${{ secrets.SRC_ACCESS_TOKEN_DOTCOM }}
      - name: Upload SCIP to S2
        run: src code-intel upload -github-token='${{ secrets.GITHUB_TOKEN }}' -no-progress
        env:
          SRC_ENDPOINT: https://sourcegraph.sourcegraph.com/
          SRC_ACCESS_TOKEN: ${{ secrets.SRC_ACCESS_TOKEN_S2 }}

The same workflow, on Latchkey

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

name: SCIP
'on':
  - push
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  scip-go:
    timeout-minutes: 30
    runs-on: latchkey-small
    container: sourcegraph/scip-go
    steps:
      - uses: actions/checkout@v1
      - name: Get src-cli
        run: curl -L https://sourcegraph.com/.api/src-cli/src_linux_amd64 -o /usr/local/bin/src;
          chmod +x /usr/local/bin/src
      - name: Set directory to safe for git
        run: git config --global --add safe.directory $GITHUB_WORKSPACE
      - name: Generate SCIP data
        run: scip-go
      - name: Upload SCIP data to Cloud
        run: src code-intel upload -github-token='${{ secrets.GITHUB_TOKEN }}' -no-progress
        env:
          SRC_ENDPOINT: https://sourcegraph.com
          SRC_ACCESS_TOKEN: ${{ secrets.SRC_ACCESS_TOKEN_DOTCOM }}
      - name: Upload SCIP to S2
        run: src code-intel upload -github-token='${{ secrets.GITHUB_TOKEN }}' -no-progress
        env:
          SRC_ENDPOINT: https://sourcegraph.sourcegraph.com/
          SRC_ACCESS_TOKEN: ${{ secrets.SRC_ACCESS_TOKEN_S2 }}
 

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