Skip to content

api

api #27

Workflow file for this run

name: api
# The five sources are somebody else's, and none of them owes us a stable
# shape. This asks them every morning whether they still answer the way the
# firmware reads, over TLS trusted by the exact roots the device carries, so a
# change lands as a red run here rather than as a blank screen on a unit.
#
# It is deliberately not on push: a source having a bad minute should never
# fail somebody's commit.
on:
schedule:
- cron: "17 13 * * *"
workflow_dispatch:
inputs:
sources:
description: gwei, glyphbots, coral, bankr, voxels. Empty means all.
required: false
default: ""
concurrency:
group: api
cancel-in-progress: false
jobs:
probe:
name: the sources answer as the firmware reads them
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
# Through the environment rather than interpolated into the command, so
# the input is an argument and never a shell fragment.
- env:
SOURCES: ${{ inputs.sources }}
run: tools/apicheck/check.py $SOURCES
# The atlas is built from the collection's own alphabet, so a trait added
# with a new glyph in it lands here rather than as a blank square on a
# unit. It needs the network too, which is why it rides along with this
# workflow rather than the one that runs on a push.
- run: pip install pillow fonttools
- run: tools/glyphs/generate.py --check