Skip to content

docs: full staleness sweep vs 2026-08-03 ground truth #641

docs: full staleness sweep vs 2026-08-03 ground truth

docs: full staleness sweep vs 2026-08-03 ground truth #641

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
MIX_ENV: test
ELIXIR_VERSION: "1.18.1"
OTP_VERSION: "27.2"
jobs:
# Fast gate — smoke tests only (~30s)
smoke:
name: Smoke Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: ${{ env.ELIXIR_VERSION }}
otp-version: ${{ env.OTP_VERSION }}
- name: Cache deps
uses: actions/cache@v4
with:
path: |
deps
_build
key: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-
- name: Install dependencies
run: mix deps.get
- name: Compile
run: mix compile
- name: Smoke tests
run: mix test --only smoke
# Fast unit tests (default excludes, ~2-3 min)
test:
name: Test
runs-on: ubuntu-latest
needs: smoke
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: ${{ env.ELIXIR_VERSION }}
otp-version: ${{ env.OTP_VERSION }}
- name: Cache deps
uses: actions/cache@v4
with:
path: |
deps
_build
key: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-
- name: Install dependencies
run: mix deps.get
- name: Compile (warnings as errors)
run: mix compile --warnings-as-errors
- name: Run tests
run: mix test
# Slow tests partitioned across 4 workers
slow-tests:
name: Slow Tests (partition ${{ matrix.partition }})
runs-on: ubuntu-latest
needs: test
strategy:
fail-fast: false
matrix:
partition: [1, 2, 3, 4]
env:
MIX_TEST_PARTITION: ${{ matrix.partition }}
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: ${{ env.ELIXIR_VERSION }}
otp-version: ${{ env.OTP_VERSION }}
- name: Cache deps
uses: actions/cache@v4
with:
path: |
deps
_build
key: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-
- name: Install dependencies
run: mix deps.get
- name: Compile
run: mix compile
- name: Run slow tests (partition ${{ matrix.partition }}/4)
run: mix test --include slow --partitions 4
format:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: ${{ env.ELIXIR_VERSION }}
otp-version: ${{ env.OTP_VERSION }}
- name: Cache deps
uses: actions/cache@v4
with:
path: deps
key: ${{ runner.os }}-mix-deps-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-deps-
- name: Install dependencies
run: mix deps.get
- name: Check formatting
run: mix format --check-formatted
dialyzer:
name: Dialyzer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: ${{ env.ELIXIR_VERSION }}
otp-version: ${{ env.OTP_VERSION }}
- name: Cache deps
uses: actions/cache@v4
with:
path: |
deps
_build
key: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-${{ env.MIX_ENV }}-
- name: Cache PLT
uses: actions/cache@v4
with:
path: priv/plts
key: ${{ runner.os }}-plt-${{ env.OTP_VERSION }}-${{ env.ELIXIR_VERSION }}-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-plt-${{ env.OTP_VERSION }}-${{ env.ELIXIR_VERSION }}-
- name: Install dependencies
run: mix deps.get
- name: Create PLTs directory
run: mkdir -p priv/plts
- name: Run Dialyzer
run: mix dialyzer --format github
continue-on-error: true