commit status kutsujalle gitops repoon (#43)
Co-authored-by: moilanik <niko.moilanen@tietoevry.com> Reviewed-on: #43
This commit is contained in:
@@ -22,7 +22,7 @@ on:
|
|||||||
required: true
|
required: true
|
||||||
outputs:
|
outputs:
|
||||||
summary:
|
summary:
|
||||||
description: 'Pipe-format: component|version|status|commit_sha|repo'
|
description: "Pipe-format: component|version|status|commit_sha|repo"
|
||||||
value: ${{ jobs.dispatch.outputs.summary }}
|
value: ${{ jobs.dispatch.outputs.summary }}
|
||||||
|
|
||||||
env:
|
env:
|
||||||
@@ -68,6 +68,11 @@ jobs:
|
|||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d "$(jq -nc --arg ref "main" --argjson inputs "$INPUTS" '{ref: "main", inputs: $inputs}')"
|
-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
|
- name: Poll for completion
|
||||||
id: poll
|
id: poll
|
||||||
env:
|
env:
|
||||||
@@ -131,32 +136,12 @@ jobs:
|
|||||||
--arg msg "$SEARCH_MSG" \
|
--arg msg "$SEARCH_MSG" \
|
||||||
'[.[] | select(.commit.message | contains($msg))] | .[0].sha // empty')
|
'[.[] | 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
|
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
|
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=$GITOPS_COMMIT" >> "$GITHUB_OUTPUT"
|
||||||
echo "$GITOPS_COMMIT" > /tmp/gitops-commit
|
echo "$GITOPS_COMMIT" > /tmp/gitops-commit
|
||||||
exit 0
|
exit 0
|
||||||
@@ -181,3 +166,24 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
COMPONENT="${GITOPS_TAG_PREFIX:-${GITOPS_FILE}}"
|
COMPONENT="${GITOPS_TAG_PREFIX:-${GITOPS_FILE}}"
|
||||||
echo "GITOPS_SUMMARY=${COMPONENT}|${GITOPS_VERSION}|${STATUS}|${GITOPS_SHA}|${GITOPS_REPO}" >> "$GITHUB_OUTPUT"
|
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}"
|
||||||
|
|||||||
Reference in New Issue
Block a user