Repository navigation
56 lines (46 loc) · 1.82 KB
/
Copy pathcontent.yml
File metadata and controls
56 lines (46 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
name: Content
on:
# Once per change: on the PR, and on main after the merge.
push:
branches: [main]
pull_request:
permissions:
contents: read
jobs:
# Cheap (a few seconds), so it runs on every change with no `changes` job.
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.14"
- name: Install PyYAML
run: python -m pip install pyyaml==6.0.3
# Front matter, raw-guard balance, unguarded `{{`, codetab block counts,
# figure files, positional language. See scripts/validate_site.py.
- name: Validate site content
run: python scripts/validate_site.py
# The Markdown text copies of the decks and documents under lgtm-presentation/text/
# must match the committed .pptx and .docx files (standard library only).
- name: Deck text copies are current
run: python scripts/deck_text.py --check
# Professional voice: no ban-tier phrase on any reader-facing page, README or
# diagram label. The scanner is vendored from lgtm-skills (scripts/voice/README.md);
# the scope lives in scripts/voice-scan.sh.
- name: Voice scan (ban tier)
run: bash scripts/voice-scan.sh
# Always passes: logs the all-tier totals, so a review can compare them with a local run.
- name: Voice scan totals (all tiers)
run: bash scripts/voice-scan.sh --all-tiers-summary
# The one check branch protection requires: passes when every job above
# succeeded or was skipped.
content-ok:
name: content-ok
if: always()
needs: [validate]
runs-on: ubuntu-latest
steps:
- env:
NEEDS: ${{ toJSON(needs) }}
run: jq -e 'to_entries | all(.value.result == "success" or .value.result == "skipped")' <<<"$NEEDS"