poc jatkuu
ci-bats Bats tests
ci-cucumber Cucumber tests passed
ci-build Build complete
CI / feature (push) Successful in 1m43s
CI / main (push) Has been skipped

This commit is contained in:
moilanik
2026-06-13 17:57:39 +03:00
parent b4b2345b48
commit 4d78cd7bb5
4 changed files with 50 additions and 63 deletions
+20 -24
View File
@@ -1,35 +1,31 @@
#!/usr/bin/env bash
set -euo pipefail
CONF_FILE=".gitea/workflows/feature-env.conf"
ERRORS=0
check_var() {
local name="$1"
local value="${!name:-}"
if [ -z "$value" ]; then
echo "ERROR: CI_ENV_MISSING $name is not set or empty. See docs/readme.md for required configuration." >&2
[ -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"
check_url() {
local name="$1"
local value="${!name:-}"
check_var "$name"
if [ -n "$value" ] && [[ "$value" != http://* ]] && [[ "$value" != https://* ]]; then
echo "ERROR: CI_ENV_FORMAT $name should be a URL (starting with http:// or https://), got: $value" >&2
ERRORS=1
fi
}
[ -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
check_url "GITEA_API_URL"
check_var "GITEA_TOKEN"
check_var "PAGES_HOST"
check_url "GIT_PAGES_PUBLISH_URL"
check_var "GIT_PAGES_PUBLISH_TOKEN"
if [ "$ERRORS" -eq 0 ]; then
echo "OK: all CI env vars validated"
if [ "$ERRORS" -ne 0 ]; then
echo "FATAL: CI config validation failed" >&2
exit 1
fi
exit $ERRORS
echo "OK: all CI env vars validated"