Skip to content
Latchkey

Tests workflow (automl/Auto-PyTorch)

The Tests workflow from automl/Auto-PyTorch, 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: automl/Auto-PyTorch.github/workflows/long_regression_test.ymlLicense Apache-2.0View source

What it does

This is the Tests workflow from the automl/Auto-PyTorch 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: Tests

on:
  schedule:
    # Every Truesday at 7AM UTC
    # TODO teporary set to every day just for the PR
    #- cron: '0 07 * * 2'
    - cron: '0 07 * * *'

jobs:

  ubuntu:
    runs-on: ubuntu-latest

    strategy:
      fail-fast:  false
      matrix:
        python-version: [3.8]

    steps:
    - uses: actions/checkout@v2
      with:
        ref: development
        submodules: recursive
    - name: Setup Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}

    - name: Install test dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -e .[forecasting,test]

    - name: Run tests
      run: |
        python -m pytest --durations=200 cicd/test_preselected_configs.py -vs

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: Tests
 
on:
  schedule:
    # Every Truesday at 7AM UTC
    # TODO teporary set to every day just for the PR
    #- cron: '0 07 * * 2'
    - cron: '0 07 * * *'
 
jobs:
 
  ubuntu:
    timeout-minutes: 30
    runs-on: latchkey-small
 
    strategy:
      fail-fast:  false
      matrix:
        python-version: [3.8]
 
    steps:
    - uses: actions/checkout@v2
      with:
        ref: development
        submodules: recursive
    - name: Setup Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        cache: 'pip'
        python-version: ${{ matrix.python-version }}
 
    - name: Install test dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -e .[forecasting,test]
 
    - name: Run tests
      run: |
        python -m pytest --durations=200 cicd/test_preselected_configs.py -vs
 

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