~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

7
28 lines · 1.4 KB Raw History
# The lexicons, as `just lex` checks them: goat's lint, what it does not
# see, and that they only grow from main's (harness/lexicons.mjs); and the
# XRPC answers the screenshots recorded, against them (harness/
# answers.mjs). goat and @atproto/lexicon are kept between runs.
image: node:24.22.1
# Every push to main, and pulls into it or a feature/ branch, at their
# heads merged with their base, that change the lexicons, their checks,
# the recorded answers or this file. A pull changing none passes at
# once, noted as skipped.
on:
  push: {refs: [refs/heads/main]}
  pull:
    base: [refs/heads/main, refs/heads/feature/*]
    paths: [lexicons/**, harness/lexicons.mjs, harness/answers.mjs, harness/shots/fixtures.json, .knotless/workflows/lexicons.yml]
cache: [/opt/goat, /opt/lexicon]
steps:
  - name: goat
    run: |
      [ -x /opt/goat/goat ] || curl -fsSL https://github.com/bluesky-social/goat/releases/download/v0.2.6/goat_Linux_x86_64.tar.gz | tar -xz -C /opt/goat goat
      /opt/goat/goat --version
  - name: lexicons
    run: PATH=/opt/goat:$PATH node harness/lexicons.mjs
  - name: answers
    run: |
      # The recorded answers against the lexicons, with the harness's
      # @atproto/lexicon alone rather than all of its packages.
      [ -d /opt/lexicon/node_modules/@atproto/lexicon ] || npm install --prefix /opt/lexicon --no-audit --no-fund @atproto/lexicon@0.7.17
      NODE_PATH=/opt/lexicon/node_modules node harness/answers.mjs