#!/usr/bin/env bash set -euo pipefail echo "gitops-dispatch: validating env vars..." : "${GITOPS_FILE:?}" : "${GITOPS_YQ_TPL:?}" : "${GITOPS_VERSION:?}" : "${GITOPS_SOURCE_REPO:?}" : "${GITOPS_SOURCE_COMMIT:?}" : "${GITOPS_REPO:?}" : "${GITOPS_WORKFLOW:?}" : "${GITEA_API_URL:?}" : "${GITEA_TOKEN:?}" TIMEOUT="${GITOPS_DISPATCH_TIMEOUT:-30}" echo "gitops-dispatch: constructing inputs..." INPUTS=$(jq -nc \ --arg file "$GITOPS_FILE" \ --arg yq_tpl "$GITOPS_YQ_TPL" \ --arg version "$GITOPS_VERSION" \ --arg source_repo "$GITOPS_SOURCE_REPO" \ --arg source_commit "$GITOPS_SOURCE_COMMIT" \ --arg git_tag_prefix "${GITOPS_TAG_PREFIX:-}" \ '{file: $file, yq_tpl: $yq_tpl, version: $version, source_repo: $source_repo, source_commit: $source_commit, git_tag_prefix: $git_tag_prefix}') DIR="$(cd "$(dirname "$0")" && pwd)" echo "gitops-dispatch: dispatching to $GITOPS_REPO/$GITOPS_WORKFLOW..." set +e OUTPUT=$(bash "$DIR/dispatch-workflow.sh" \ "$GITOPS_REPO" "$GITOPS_WORKFLOW" "main" \ "$INPUTS" "$GITEA_API_URL" "$GITEA_TOKEN" "$TIMEOUT" 2>&1) EXIT=$? set -e echo "=== DISPATCH OUTPUT (exit=$EXIT) ===" echo "$OUTPUT" echo "=== END DISPATCH ===" STATUS="failure" GITOPS_SHA="" if [ "$EXIT" = "0" ]; then STATUS="success" GITOPS_SHA=$(echo "$OUTPUT" | grep '^GITOPS_COMMIT=' | cut -d= -f2) fi COMPONENT="${GITOPS_TAG_PREFIX:-${GITOPS_FILE}}" echo "GITOPS_SUMMARY=${COMPONENT}|${GITOPS_VERSION}|${STATUS}|${GITOPS_SHA}|${GITOPS_REPO}" exit "$EXIT"