68 lines
1.3 KiB
Bash
Executable File
68 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
log() {
|
|
printf '%s\n' "$*" >&2
|
|
}
|
|
|
|
fail() {
|
|
log "ERROR: $*"
|
|
exit 1
|
|
}
|
|
|
|
resolve_token() {
|
|
local source_name env_value
|
|
local sources=(
|
|
"inputs.RUNNER_TOKEN:INPUT_RUNNER_TOKEN"
|
|
"secrets.GITEA_TOKEN:GITEA_TOKEN"
|
|
"secrets.RUNNER_TOKEN:RUNNER_TOKEN_SECRET"
|
|
)
|
|
|
|
for source in "${sources[@]}"; do
|
|
source_name="${source%%:*}"
|
|
env_value="${source#*:}"
|
|
log "Trying token from ${source_name}"
|
|
if [[ -n "${!env_value:-}" ]]; then
|
|
log "Using token from ${source_name}"
|
|
printf '%s' "${!env_value}"
|
|
return 0
|
|
fi
|
|
log "Token not found in ${source_name}, trying next source"
|
|
done
|
|
|
|
return 1
|
|
}
|
|
|
|
resolve_keep_versions() {
|
|
local raw_value="${INPUT_KEEP_VERSIONS:-2}"
|
|
|
|
if [[ -z "${raw_value}" ]]; then
|
|
raw_value="2"
|
|
fi
|
|
|
|
if [[ ! "${raw_value}" =~ ^[0-9]+$ ]]; then
|
|
fail "Invalid keep_versions: ${raw_value}"
|
|
fi
|
|
|
|
printf '%s' "${raw_value}"
|
|
}
|
|
|
|
main() {
|
|
local token keep_versions
|
|
|
|
log "Gitea Server Url: ${GITEA_SERVER_URL:-}"
|
|
log "Gitea Repository: ${GITEA_REPOSITORY:-}"
|
|
|
|
if ! token="$(resolve_token)"; then
|
|
fail "No Gitea token available, exiting"
|
|
fi
|
|
|
|
export RESOLVED_GITEA_TOKEN="$token"
|
|
keep_versions="$(resolve_keep_versions)"
|
|
log "keep_versions=${keep_versions}"
|
|
log "Token source resolved successfully"
|
|
log "Stage 2 complete"
|
|
}
|
|
|
|
main "$@"
|