-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrender.yaml
More file actions
44 lines (43 loc) · 2.07 KB
/
Copy pathrender.yaml
File metadata and controls
44 lines (43 loc) · 2.07 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
# Render Blueprint — https://render.com/docs/blueprint-spec
#
# Hosts tools/cdif_viewer_app.py so the team can open a CDIF record without
# checking the repo out. The viewer reads the profile modules and uischema
# layouts from _sources/ in this repo, so no data has to be shipped separately.
#
# The app binds HOST:PORT from the environment. Render assigns PORT and requires
# 0.0.0.0 — a service bound to 127.0.0.1 starts cleanly and is then failed as
# unhealthy, because nothing outside the container can reach it.
services:
- type: web
name: cdif-record-viewer
runtime: python
plan: free # sleeps after inactivity; first request then takes ~30s to wake
# requirements-viewer.txt, not requirements.txt: the viewer needs only
# PyYAML, while the full toolchain pulls pyshacl -> rdflib and more.
buildCommand: pip install -r requirements-viewer.txt
startCommand: python tools/cdif_viewer_app.py --no-browser
healthCheckPath: /
# CI pushes to main several times a day -- "Building blocks postprocessing"
# and "Generate JSON Forms schemas" regenerate build/ and _sources/jsonforms/
# -- and without a filter every one of those redeploys a service whose code
# did not change, churning the deploy history and dropping the instance.
# Only the paths the running viewer actually reads should trigger a build.
buildFilter:
paths:
- tools/cdif_record_to_html.py
- tools/cdif_viewer_app.py
- _sources/profiles/**
- _sources/xasProperties/**
# The curated tab layouts the viewer reads at runtime (UISCHEMA_ROOT).
# Safe to include: the noisy CI jobs write to build/jsonforms/, not
# here, so this catches a real layout change without catching them.
- _sources/jsonforms/profiles/**
- requirements-viewer.txt
- render.yaml
envVars:
- key: PYTHON_VERSION
value: "3.12.0"
- key: HOST
value: 0.0.0.0
# PORT is set by Render; the app reads it and skips its free-port search,
# which would otherwise bind a port nothing is routed to.