Skip to content

Phase 1 gate: the Hints spike, and its verdict is proceed #84

Phase 1 gate: the Hints spike, and its verdict is proceed

Phase 1 gate: the Hints spike, and its verdict is proceed #84

Workflow file for this run

name: check
# The gate, run by a machine that has never seen this repo before — which is
# the only way to know `just check` passing locally means anything.
on:
push:
branches: [main]
pull_request:
env:
MIX_ENV: test
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
elixir-version: "1.18"
otp-version: "27"
- name: Cache deps and build
uses: actions/cache@v4
with:
path: |
deps
_build
key: ${{ runner.os }}-mix-${{ hashFiles('mix.lock') }}
restore-keys: ${{ runner.os }}-mix-
- run: mix deps.get
# Formatting is part of the gate, not a suggestion.
- run: mix format --check-formatted
# Warnings are errors here for the same reason they are locally: a
# warning nobody fails on is a warning nobody reads.
- run: mix compile --warnings-as-errors
- run: mix test
# The same suite with every file store fsyncing each transaction. The
# durable path is the one production runs and the one no test would
# otherwise take — a flag no test sets is an untested path.
- run: mix test
env:
LEDGER_SYNC: "true"
# The crash tests spawn a real node in dev. Compile it first so the kill
# lands on a process that is writing rather than one still starting.
- run: MIX_ENV=dev mix compile
# Slow and real: a process killed with SIGKILL mid-write, three times.
# Excluded from the ordinary run, never excluded from the gate.
- run: mix test --include crash --only crash
# The backup signs SigV4 by hand, and a signature that is subtly wrong
# fails only against a real server. This talks to a real bucket, under a
# prefix of its own so a run can never touch what a deployment holds.
- run: mix test --include object_storage --only object_storage
env:
BACKUP_ENDPOINT: ${{ secrets.BACKUP_ENDPOINT }}
BACKUP_BUCKET: ${{ secrets.BACKUP_BUCKET }}
BACKUP_ACCESS_KEY_ID: ${{ secrets.BACKUP_ACCESS_KEY_ID }}
BACKUP_SECRET_ACCESS_KEY: ${{ secrets.BACKUP_SECRET_ACCESS_KEY }}
vocabulary:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
- name: The ontology gate
run: |
uvx --from "git+https://github.com/shinyobjectz/montology@main#subdirectory=.monty/cli" \
monty lint