Skip to content

Commit faa0073

Browse files
committed
trigger
1 parent 055e1b8 commit faa0073

2 files changed

Lines changed: 63 additions & 7 deletions

File tree

.github/workflows/publish.yml

Lines changed: 62 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,68 @@ jobs:
3030
mkdir content
3131
cp -r index.html data media js content/
3232
33-
- name: Extract pubDomain
34-
id: pubdomain
33+
- name: Extract & validate publishing metadata
34+
id: metadata
35+
shell: bash
3536
run: |
36-
DOMAIN=$(grep -Po 'pubDomain:\s*"\K[^"]+' content/js/config.js | tr -d '[:space:]')
37-
echo "pubdomain=$DOMAIN" >> $GITHUB_OUTPUT
38-
37+
set -euo pipefail
38+
39+
# 1. Parse waarden uit config.js
40+
DOMAIN=$(grep -Po 'pubDomain:\s*"\K[^"]+' content/js/config.js | tr -d '[:space:]' || true)
41+
SPEC_STATUS=$(grep -Po 'specStatus:\s*"\K[^"]+' content/js/config.js | tr -d '[:space:]' || true)
42+
SPEC_TYPE=$(grep -Po 'specType:\s*"\K[^"]+' content/js/config.js | tr -d '[:space:]' || true)
43+
SHORT_NAME=$(grep -Po 'shortName:\s*"\K[^"]+' content/js/config.js | tr -d '[:space:]' || true)
44+
PUBLISH_DATE=$(grep -Po 'publishDate:\s*"\K[^"]+' content/js/config.js | tr -d '[:space:]' || true)
45+
46+
# 1a. Check op ontbrekende waarden
47+
MISSING=()
48+
for VAR in DOMAIN SPEC_STATUS SPEC_TYPE SHORT_NAME PUBLISH_DATE; do
49+
if [ -z "${!VAR}" ]; then
50+
MISSING+=("$VAR")
51+
fi
52+
done
53+
if [ ${#MISSING[@]} -gt 0 ]; then
54+
echo "::error title=Ontbrekende metadata::De volgende verplichte waarden ontbreken in config.js: ${MISSING[*]}"
55+
exit 1
56+
fi
57+
58+
echo "🔍 Gevonden: pubDomain=$DOMAIN, specStatus=$SPEC_STATUS, specType=$SPEC_TYPE, shortName=$SHORT_NAME, publishDate=$PUBLISH_DATE"
59+
60+
# 2. Download pubDomainList.json indien nog niet aanwezig
61+
CONFIG_JSON=pubDomainList.json
62+
if [[ ! -f "$CONFIG_JSON" ]]; then
63+
curl -sSL \
64+
https://raw.githubusercontent.com/Geonovum/respec-utils/master/src/autodeploy/config/pubDomainList.json \
65+
-o "$CONFIG_JSON"
66+
fi
67+
68+
# 3. Check of pubDomain bestaat in de Geonovum-list
69+
if ! jq -e --arg domain "$DOMAIN" '.Geonovum[] | select(.pubDomain==$domain)' "$CONFIG_JSON" >/dev/null; then
70+
echo "::error title=Invalid pubDomain::pubDomain '$DOMAIN' niet gevonden in $CONFIG_JSON"
71+
exit 1
72+
fi
73+
74+
# 4. Valideer publishDate-formaat en geldigheid
75+
if ! [[ "$PUBLISH_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
76+
echo "::error title=Invalid publishDate formaat::publishDate '$PUBLISH_DATE' heeft niet het formaat yyyy-MM-dd"
77+
exit 1
78+
fi
79+
if ! date -d "$PUBLISH_DATE" "+%Y-%m-%d" >/dev/null 2>&1; then
80+
echo "::error title=Invalid publishDate::publishDate '$PUBLISH_DATE' is geen geldige datum"
81+
exit 1
82+
fi
83+
84+
# 5. Bouw de volledige foldernaam en exporteer als output
85+
FOLDER_PATH="${DOMAIN}/${SPEC_STATUS}-${SPEC_TYPE}-${SHORT_NAME}-${PUBLISH_DATE}/"
86+
echo "folderPath=$FOLDER_PATH" >> $GITHUB_OUTPUT
87+
echo "pubdomain=$DOMAIN" >> $GITHUB_OUTPUT
88+
echo "specStatus=$SPEC_STATUS" >> $GITHUB_OUTPUT
89+
echo "specType=$SPEC_TYPE" >> $GITHUB_OUTPUT
90+
echo "shortName=$SHORT_NAME" >> $GITHUB_OUTPUT
91+
echo "publishDate=$PUBLISH_DATE" >> $GITHUB_OUTPUT
92+
93+
echo "✅ Metadata en folder-path gevalideerd en opgeslagen"
94+
3995
- name: Checkout private docs
4096
uses: actions/checkout@v4
4197
with:
@@ -57,7 +113,7 @@ jobs:
57113
base: main
58114
author: ${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com>
59115
title: "Automated update from ${{ github.repository }}"
60-
body: "Update vanuit workflow voor domein ${{ steps.pubdomain.outputs.pubdomain }}"
116+
body: "Update vanuit workflow voor domein ${{ steps.pubdomain.outputs.pubdomain }}" #folder hieraan toevoegen
61117
labels: automated pr
62118
delete-branch: true
63119
reviewers: wilkoquak,fterpstra,lvdbrink

js/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ let respecConfig = {
2222
//-- pubDomain is verplicht! (komt in de URL) -------------------------------------
2323
//-- zie: https://geonovum.github.io/handleiding-tooling/ReSpec/#pubdomain
2424
//-- TODO: vul pubDomain in
25-
pubDomain: "Test naam",
25+
pubDomain: "Testnaam",
2626
//-- license: voor de geldende gebruiksvoorwaarden. Default is cc-by.
2727
//license: "cc-by-nd", // bronvermelding, geen afgeleide werken (default)
2828
//license: "cc0", // Public Domain Dedication

0 commit comments

Comments
 (0)