Skip to content
Latchkey

Smoke test recent filings workflow (dgunning/edgartools)

The Smoke test recent filings workflow from dgunning/edgartools, 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: dgunning/edgartools.github/workflows/python-smoke-recent-filings.ymlLicense MITView source

What it does

This is the Smoke test recent filings workflow from the dgunning/edgartools 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)
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Smoke test recent filings

on:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
    - name: Set up Python 3.10
      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
      with:
        python-version: "3.10"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install -e .
        python -m pip install pytest pytest-cov pytest-env pytest-xdist pytest-asyncio pytest-retry pytest-mock freezegun==1.5.1 filelock tqdm responses
    - name: Batch test sample of recent filings
      run: |
        # Setting PYTHONPATH to include the directory containing 'edgar' package
        export PYTHONPATH=$PYTHONPATH:$(pwd)
        export EDGAR_IDENTITY="S Robinson Robinson@edgar.tools"
        # Smoke test recent filings (direct Python execution instead of hatch)
        python scripts/batch/batch_filings.py -y 2024 -s 40

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.

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
 
name: Smoke test recent filings
 
on:
  workflow_dispatch:
 
permissions:
  contents: read
 
jobs:
  build:
    timeout-minutes: 30
 
    runs-on: latchkey-small
 
    steps:
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
    - name: Set up Python 3.10
      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
      with:
        cache: 'pip'
        python-version: "3.10"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install -e .
        python -m pip install pytest pytest-cov pytest-env pytest-xdist pytest-asyncio pytest-retry pytest-mock freezegun==1.5.1 filelock tqdm responses
    - name: Batch test sample of recent filings
      run: |
        # Setting PYTHONPATH to include the directory containing 'edgar' package
        export PYTHONPATH=$PYTHONPATH:$(pwd)
        export EDGAR_IDENTITY="S Robinson Robinson@edgar.tools"
        # Smoke test recent filings (direct Python execution instead of hatch)
        python scripts/batch/batch_filings.py -y 2024 -s 40
 

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