32 lines
1.0 KiB
Bash
32 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
CONF_FILE="${CI_CONF_FILE:-.gitea/workflows/gitea-env.conf}"
|
|
ERRORS=0
|
|
|
|
[ -f "$CONF_FILE" ] || { echo "ERROR: $CONF_FILE not found — checkout missing?" >&2; exit 1; }
|
|
|
|
echo "Reading $CONF_FILE..."
|
|
|
|
while IFS='=' read -r key value || [ -n "$key" ]; do
|
|
key=$(echo "$key" | xargs)
|
|
value=$(echo "$value" | xargs)
|
|
[ -z "$key" ] && continue
|
|
[[ "$key" == "#"* ]] && continue
|
|
[ -z "$value" ] && echo "ERROR: $key is empty in $CONF_FILE" >&2 && ERRORS=1
|
|
if [ -n "$value" ] && [[ "$key" == *"URL"* ]] && [[ "$value" != http://* ]] && [[ "$value" != https://* ]]; then
|
|
echo "ERROR: $key should be a URL (http/https), got: $value" >&2
|
|
ERRORS=1
|
|
fi
|
|
done < "$CONF_FILE"
|
|
|
|
[ -z "${GITEA_TOKEN:-}" ] && echo "ERROR: GITEA_TOKEN secret is not set" >&2 && ERRORS=1
|
|
[ -z "${GIT_PAGES_PUBLISH_TOKEN:-}" ] && echo "ERROR: GIT_PAGES_PUBLISH_TOKEN secret is not set" >&2 && ERRORS=1
|
|
|
|
if [ "$ERRORS" -ne 0 ]; then
|
|
echo "FATAL: CI config validation failed" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "OK: all CI env vars validated"
|