@@ -200,3 +200,63 @@ push-notifications-image:
200200 rules :
201201 - !reference [.push-notifications-workflow, rules]
202202 - !reference [.release-workflow, rules]
203+
204+ # #######################################################################
205+ # scraper (Node/TypeScript)
206+ # #######################################################################
207+
208+ .scraper-workflow :
209+ image : gitlab.futo.org:5050/devops/manifest-repo/library/docker:latest
210+ rules :
211+ - if : $CI_COMMIT_TAG =~ /^scraper-/
212+ when : always
213+ - if : $CI_PIPELINE_SOURCE == "merge_request_event"
214+ changes :
215+ - pnpm-lock.yaml
216+ - pnpm-workspace.yaml
217+ - package.json
218+ - tools/**/*
219+ - patches/**/*
220+ - services/scraper/**/*
221+ - .gitlab/ci/build_services.yml
222+ - .gitlab/ci/deploy_services.yml
223+ - if : $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
224+ when : never
225+ - if : $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
226+ changes :
227+ - pnpm-lock.yaml
228+ - pnpm-workspace.yaml
229+ - package.json
230+ - tools/**/*
231+ - patches/**/*
232+ - services/scraper/**/*
233+ - .gitlab/ci/build_services.yml
234+ - .gitlab/ci/deploy_services.yml
235+ variables :
236+ SERVICE_NAME : scraper
237+ SERVICE_DIR : scraper
238+
239+ # Fast-feedback typecheck. The scraper's `build` script is `tsc -p .`; the image
240+ # build also compiles, so this just surfaces type errors before the heavier
241+ # image job. PUPPETEER_SKIP_DOWNLOAD stops `pnpm install` from fetching Chromium
242+ # (the runtime image provides a system one).
243+ scraper-typecheck :
244+ extends : .scraper-workflow
245+ image : node:24-slim
246+ stage : check
247+ variables :
248+ PUPPETEER_SKIP_DOWNLOAD : ' 1'
249+ before_script :
250+ - npm install -g pnpm@10
251+ - pnpm config set @polycentric:registry https://${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/
252+ - pnpm install
253+ script :
254+ - pnpm --filter @polycentric/scraper build
255+
256+ scraper-image :
257+ extends :
258+ - .scraper-workflow
259+ - .service-image
260+ rules :
261+ - !reference [.scraper-workflow, rules]
262+ - !reference [.release-workflow, rules]
0 commit comments