From 427f9d70f2183c270d17e5cd728f08a11b69fafd Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 24 Mar 2026 10:23:25 +0000 Subject: [PATCH 1/2] Remove DAK gate from ELM stripping so it runs for all IGs The two Library ELM/CQL stripping steps were gated behind `DAK_ENABLED == 'true'`, which meant repos without a dak.json (e.g. smart-immunizations) never had their ELM binary data stripped from published Library XML/JSON files. Move both steps out of the DAK condition so they run for every IG build. Also run strip_library_content.py inside the Docker container for consistency with strip_library_binaries.py. https://claude.ai/code/session_01QR1WgNsJbTGkcMHbAADJv2 --- .github/workflows/ghbuild.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ghbuild.yml b/.github/workflows/ghbuild.yml index 41ee90949a..fb63a2d857 100644 --- a/.github/workflows/ghbuild.yml +++ b/.github/workflows/ghbuild.yml @@ -590,8 +590,8 @@ jobs: if-no-files-found: ignore retention-days: 1 - # ── DAK Post-processing ──────────────────────────────────────────── - # All post-processing Python scripts run inside the same Docker + # ── Post-processing ─────────────────────────────────────────────── + # Post-processing Python scripts run inside the same Docker # container (ig-run) that ran the IG Publisher. This ensures a # single, consistent environment for Python, avoids root-owned file # permission issues, and eliminates version drift between host and @@ -599,9 +599,12 @@ jobs: # # Download-if-missing logic runs on the host (curl), which writes # into the volume-mounted workspace visible inside Docker. + # + # ELM/CQL stripping runs for ALL IGs. DAK-specific steps are + # gated on DAK_ENABLED below. - - name: DAK Postprocessing - Strip binary data from Library resources - if: inputs.do_dak != 'false' && env.DAK_ENABLED == 'true' + - name: Strip binary data from Library resources + if: success() run: | echo "Stripping encoded binary data from Library resource files..." @@ -625,7 +628,7 @@ jobs: fi - name: Strip inline content from Library resources - if: inputs.do_dak != 'false' && env.DAK_ENABLED == 'true' + if: success() run: | echo "Replacing inline CQL/ELM data with URL references in Library resources..." @@ -637,7 +640,7 @@ jobs: fi if [ -f "input/scripts/strip_library_content.py" ]; then - python3 input/scripts/strip_library_content.py + docker exec -w /work ig-run python3 input/scripts/strip_library_content.py echo "✅ Library inline content stripped" else echo "⚠️ strip_library_content.py not available, skipping" From 38c6f0ce3ebee49115d436b136208b004334ce15 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 24 Mar 2026 10:29:33 +0000 Subject: [PATCH 2/2] Restore DAK gate on ELM stripping steps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keep the DAK condition — stripping should only run for DAK-enabled repos. The remaining change from this branch is running strip_library_content.py inside the Docker container for consistency with strip_library_binaries.py (avoids file permission issues). https://claude.ai/code/session_01QR1WgNsJbTGkcMHbAADJv2 --- .github/workflows/ghbuild.yml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ghbuild.yml b/.github/workflows/ghbuild.yml index fb63a2d857..80e281c9a3 100644 --- a/.github/workflows/ghbuild.yml +++ b/.github/workflows/ghbuild.yml @@ -590,8 +590,8 @@ jobs: if-no-files-found: ignore retention-days: 1 - # ── Post-processing ─────────────────────────────────────────────── - # Post-processing Python scripts run inside the same Docker + # ── DAK Post-processing ──────────────────────────────────────────── + # All post-processing Python scripts run inside the same Docker # container (ig-run) that ran the IG Publisher. This ensures a # single, consistent environment for Python, avoids root-owned file # permission issues, and eliminates version drift between host and @@ -599,12 +599,9 @@ jobs: # # Download-if-missing logic runs on the host (curl), which writes # into the volume-mounted workspace visible inside Docker. - # - # ELM/CQL stripping runs for ALL IGs. DAK-specific steps are - # gated on DAK_ENABLED below. - - name: Strip binary data from Library resources - if: success() + - name: DAK Postprocessing - Strip binary data from Library resources + if: inputs.do_dak != 'false' && env.DAK_ENABLED == 'true' run: | echo "Stripping encoded binary data from Library resource files..." @@ -628,7 +625,7 @@ jobs: fi - name: Strip inline content from Library resources - if: success() + if: inputs.do_dak != 'false' && env.DAK_ENABLED == 'true' run: | echo "Replacing inline CQL/ELM data with URL references in Library resources..."