77
88jobs :
99 build :
10- name : Docs build
10+ name : Docs Build
1111 runs-on : ubuntu-latest
1212 steps :
13- - name : Checkout Source code
13+ - name : Checkout Source Code
1414 uses : actions/checkout@v5
1515
1616 - name : Use Node.js 22
2121 cache-dependency-path : ' package-lock.json'
2222 always-auth : ' true'
2323
24- - name : Enable corepack
24+ - name : Enable Corepack
2525 run : |
2626 corepack enable
2727
@@ -40,13 +40,13 @@ jobs:
4040 sudo apt-get update
4141 sudo apt-get install -y nginx
4242
43- - name : Start Docusaurus server
43+ - name : Start Docusaurus Server
4444 run : |
4545 nohup npx docusaurus serve --port 3000 --no-open &
4646 sleep 5
4747 curl -f http://localhost:3000 > /dev/null
4848
49- - name : Start Nginx with project config
49+ - name : Start Nginx with Project Config
5050 run : |
5151 cat > default.conf <<EOF
5252 worker_processes auto;
6363 nginx -c $(pwd)/default.conf
6464 sleep 1
6565
66- - name : Run header assertions
66+ - name : Run Header Assertions
6767 run : |
6868 set -euo pipefail
6969 function assert_header() {
@@ -96,13 +96,13 @@ jobs:
9696 run : nginx -c $(pwd)/default.conf -s stop
9797
9898 lint_content :
99- name : Lint markdown content
99+ name : Lint Markdown Content
100100 runs-on : ubuntu-latest
101101 steps :
102- - name : Checkout Source code
102+ - name : Checkout Source Code
103103 uses : actions/checkout@v5
104104
105- - name : Get changed files
105+ - name : Get Changed Files
106106 id : changed-files
107107 uses : tj-actions/changed-files@v47
108108 with :
@@ -117,7 +117,7 @@ jobs:
117117 cache : ' npm'
118118 cache-dependency-path : ' package-lock.json'
119119
120- - name : Enable corepack
120+ - name : Enable Corepack
121121 run : |
122122 corepack enable
123123
@@ -136,11 +136,11 @@ jobs:
136136 done
137137
138138
139- lint_code :
140- name : Lint app code
139+ lint_code_js :
140+ name : Lint JavaScript Code
141141 runs-on : ubuntu-latest
142142 steps :
143- - name : Checkout Source code
143+ - name : Checkout Source Code
144144 uses : actions/checkout@v5
145145
146146 - name : Use Node.js 22
@@ -150,7 +150,7 @@ jobs:
150150 cache : ' npm'
151151 cache-dependency-path : ' package-lock.json'
152152
153- - name : Enable corepack
153+ - name : Enable Corepack
154154 run : |
155155 corepack enable
156156
@@ -159,4 +159,36 @@ jobs:
159159 env :
160160 NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
161161
162- - run : npm run lint:code
162+ - run : npm run lint:code:js
163+
164+
165+ lint_code_py :
166+ name : Lint Python Code
167+ runs-on : ubuntu-latest
168+ steps :
169+ - name : Checkout Source Code
170+ uses : actions/checkout@v5
171+
172+ - name : Get Changed Files
173+ id : changed-files
174+ uses : tj-actions/changed-files@v47
175+ with :
176+ files : ' **/*.{md,mdx}'
177+ files_ignore : ' !sources/api/*.{md,mdx}'
178+ separator : " ,"
179+
180+ - name : Get uv
181+ uses : astral-sh/setup-uv@v7
182+
183+ - name : List and Lint Changed Files
184+ env :
185+ ALL_CHANGED_FILES : ${{ steps.changed-files.outputs.all_changed_files }}
186+ run : |
187+ IFS=',' read -ra FILE_ARRAY <<< "$ALL_CHANGED_FILES"
188+ for file in "${FILE_ARRAY[@]}"; do
189+ uv run --with doccmd --with ruff doccmd --language=py --language=python --command=\"ruff check --quiet\" "$file"
190+ done
191+
192+ # TODO:
193+ # - once we fix existing issues, switch to checking the whole sources/ directory
194+ - run : npm run lint:code:py
0 commit comments