From de0bbac082c51b82aa41688fc2351c5983657405 Mon Sep 17 00:00:00 2001 From: moilanik Date: Mon, 22 Jun 2026 14:23:59 +0300 Subject: [PATCH] commit status kutsujalle gitops repoon --- .gitea/workflows/gitops-dispatch.yml | 54 +++++++++++++++------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/.gitea/workflows/gitops-dispatch.yml b/.gitea/workflows/gitops-dispatch.yml index acc69dc..6f763d4 100644 --- a/.gitea/workflows/gitops-dispatch.yml +++ b/.gitea/workflows/gitops-dispatch.yml @@ -22,7 +22,7 @@ on: required: true outputs: summary: - description: 'Pipe-format: component|version|status|commit_sha|repo' + description: "Pipe-format: component|version|status|commit_sha|repo" value: ${{ jobs.dispatch.outputs.summary }} env: @@ -68,6 +68,11 @@ jobs: -H "Content-Type: application/json" \ -d "$(jq -nc --arg ref "main" --argjson inputs "$INPUTS" '{ref: "main", inputs: $inputs}')" + - uses: actions/checkout@v4 + with: + repository: niko/gitea-ci-library + path: .ci + - name: Poll for completion id: poll env: @@ -131,32 +136,12 @@ jobs: --arg msg "$SEARCH_MSG" \ '[.[] | select(.commit.message | contains($msg))] | .[0].sha // empty') - # 3. If not found → no change → use HEAD + # 3. If not found → fail if [ -z "$GITOPS_COMMIT" ]; then - GITOPS_COMMIT=$(echo "$COMMITS" | jq -r '.[0].sha // empty') + echo "ERROR: no matching GitOps commit found for version ${GITOPS_VERSION}" >&2 + exit 1 fi - # 4. Set commit status on caller's own commit - PREFIX="${GITOPS_TAG_PREFIX%/}" - if [ -n "$PREFIX" ]; then - CONTEXT="gitops/$(basename "${GITOPS_SOURCE_REPO}")/${PREFIX}" - DESCRIPTION="GitOps: ${PREFIX} ${GITOPS_VERSION}" - else - CONTEXT="gitops/$(basename "${GITOPS_SOURCE_REPO}")" - DESCRIPTION="GitOps: ${GITOPS_VERSION}" - fi - STATUS_URL="${GITEA_API_URL}/api/v1/repos/${GITOPS_SOURCE_REPO}/statuses/${GITOPS_SOURCE_COMMIT}" - STATUS_BODY=$(jq -nc \ - --arg state "success" \ - --arg description "$DESCRIPTION" \ - --arg context "$CONTEXT" \ - --arg target_url "${GITEA_API_URL}/${GITOPS_REPO}/commit/${GITOPS_COMMIT}" \ - '{state: $state, target_url: $target_url, description: $description, context: $context}') - curl -s -X POST "$STATUS_URL" \ - -H "Authorization: token $GITEA_TOKEN" \ - -H "Content-Type: application/json" \ - -d "$STATUS_BODY" || true - echo "GITOPS_COMMIT=$GITOPS_COMMIT" >> "$GITHUB_OUTPUT" echo "$GITOPS_COMMIT" > /tmp/gitops-commit exit 0 @@ -181,3 +166,24 @@ jobs: fi COMPONENT="${GITOPS_TAG_PREFIX:-${GITOPS_FILE}}" echo "GITOPS_SUMMARY=${COMPONENT}|${GITOPS_VERSION}|${STATUS}|${GITOPS_SHA}|${GITOPS_REPO}" >> "$GITHUB_OUTPUT" + + - name: Set commit status + if: success() + env: + GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + GITOPS_SHA=$(cat /tmp/gitops-commit) + + PREFIX="${GITOPS_TAG_PREFIX%/}" + if [ -n "$PREFIX" ]; then + CONTEXT="gitops/$(basename "${GITOPS_SOURCE_REPO}")/${PREFIX}" + DESCRIPTION="GitOps: ${PREFIX} ${GITOPS_VERSION}" + else + CONTEXT="gitops/$(basename "${GITOPS_SOURCE_REPO}")" + DESCRIPTION="GitOps: ${GITOPS_VERSION}" + fi + + ROOT_REPO="${GITOPS_SOURCE_REPO}" ROOT_COMMIT="${GITOPS_SOURCE_COMMIT}" \ + bash .ci/scripts/report-status.sh success \ + "$DESCRIPTION" "$CONTEXT" "" \ + "${GITEA_API_URL}/${GITOPS_REPO}/commit/${GITOPS_SHA}"