mirror of
https://github.com/tiennm99/is-amazing.git
synced 2026-10-11 08:59:58 +00:00
38 lines
1.1 KiB
YAML
38 lines
1.1 KiB
YAML
name: Check JSON on PR
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'domains/**/*.json'
|
|
|
|
jobs:
|
|
check_json:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Check JSON
|
|
run: |
|
|
for jsonfile in $(find domains -name "*.json"); do
|
|
echo "\nProcessing ${jsonfile}"
|
|
if ! cat ${jsonfile} | jq empty; then
|
|
echo "Failed parsing ${jsonfile}"
|
|
exit 1
|
|
fi
|
|
REQUIRED_FIELDS=('subdomain' 'url' 'email')
|
|
for field in ${REQUIRED_FIELDS[@]}; do
|
|
if ! cat "${jsonfile}" | jq -e "has(\"${field}\")"; then
|
|
echo "${field} does not exist in ${jsonfile}"
|
|
exit 1
|
|
fi
|
|
done
|
|
TYPE=$(jq -r '.type // "CNAME"' ${jsonfile})
|
|
URL=$(jq -r '.url' ${jsonfile})
|
|
if [ ${TYPE} = "CNAME" ] || [ -z ${TYPE} ]; then
|
|
if echo ${URL} | grep -qE '^https?://[^/]*/.*'; then
|
|
echo "URL in ${jsonfile} must not contain subdirectories for CNAME records."
|
|
exit 1
|
|
fi
|
|
fi
|
|
done
|