@@ -33,19 +33,129 @@ jobs:
3333 git config user.email "github-actions[bot]@users.noreply.github.com"
3434
3535 - name : Update opencode commit
36+ id : update
3637 run : |
3738 ./scripts/update-opencode-commit.sh
3839
3940 - name : Verify OCI description label
41+ id : verify_oci
4042 run : python3 scripts/extract-oci-description.py packages/core/src/docker/Dockerfile
4143
4244 - name : Commit and push if changed
45+ id : commit_push
4346 run : |
4447 if git diff --quiet; then
4548 echo "No changes to commit."
49+ {
50+ echo "changed=false"
51+ echo "pushed=false"
52+ echo "commit_sha="
53+ } >> "$GITHUB_OUTPUT"
4654 exit 0
4755 fi
4856
4957 git add packages/core/src/docker/Dockerfile packages/opencode
5058 git commit -m "chore: update opencode commit"
59+ commit_sha="$(git rev-parse HEAD)"
60+ {
61+ echo "changed=true"
62+ echo "pushed=false"
63+ echo "commit_sha=${commit_sha}"
64+ } >> "$GITHUB_OUTPUT"
5165 git push
66+ echo "pushed=true" >> "$GITHUB_OUTPUT"
67+
68+ - name : Write summary
69+ if : always()
70+ env :
71+ UPDATE_OUTCOME : ${{ steps.update.outcome }}
72+ VERIFY_OCI_OUTCOME : ${{ steps.verify_oci.outcome }}
73+ COMMIT_PUSH_OUTCOME : ${{ steps.commit_push.outcome }}
74+ SUBMODULE_BRANCH : ${{ steps.update.outputs.submodule_branch }}
75+ SUBMODULE_REPO_URL : ${{ steps.update.outputs.submodule_repo_url }}
76+ CURRENT_SUBMODULE_COMMIT : ${{ steps.update.outputs.current_submodule_commit }}
77+ LATEST_COMMIT : ${{ steps.update.outputs.latest_commit }}
78+ CURRENT_PIN_VALUE : ${{ steps.update.outputs.current_pin_value }}
79+ UPDATED_PIN_VALUE : ${{ steps.update.outputs.updated_pin_value }}
80+ NEEDS_UPDATE : ${{ steps.update.outputs.needs_update }}
81+ UPDATED : ${{ steps.update.outputs.updated }}
82+ CHANGED : ${{ steps.commit_push.outputs.changed }}
83+ PUSHED : ${{ steps.commit_push.outputs.pushed }}
84+ COMMIT_SHA : ${{ steps.commit_push.outputs.commit_sha }}
85+ run : |
86+ set -euo pipefail
87+
88+ fallback() {
89+ local value="${1:-}"
90+ if [[ -z "${value}" ]]; then
91+ echo "n/a"
92+ else
93+ echo "${value}"
94+ fi
95+ }
96+
97+ branch="$(fallback "${SUBMODULE_BRANCH:-}")"
98+ repo_url="$(fallback "${SUBMODULE_REPO_URL:-}")"
99+ current_submodule="$(fallback "${CURRENT_SUBMODULE_COMMIT:-}")"
100+ latest_submodule="$(fallback "${LATEST_COMMIT:-}")"
101+ current_pin="$(fallback "${CURRENT_PIN_VALUE:-}")"
102+ updated_pin="$(fallback "${UPDATED_PIN_VALUE:-}")"
103+ needs_update="$(fallback "${NEEDS_UPDATE:-}")"
104+ updated="$(fallback "${UPDATED:-}")"
105+ changed="$(fallback "${CHANGED:-}")"
106+ pushed="$(fallback "${PUSHED:-}")"
107+
108+ superproject_repo_url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}"
109+ commit_link="n/a"
110+ if [[ "${PUSHED:-}" == "true" && -n "${COMMIT_SHA:-}" ]]; then
111+ commit_link="${superproject_repo_url}/commit/${COMMIT_SHA}"
112+ fi
113+
114+ compare_link="n/a"
115+ if [[ -n "${SUBMODULE_REPO_URL:-}" && -n "${CURRENT_SUBMODULE_COMMIT:-}" && -n "${LATEST_COMMIT:-}" && "${CURRENT_SUBMODULE_COMMIT}" != "${LATEST_COMMIT}" ]]; then
116+ compare_link="${SUBMODULE_REPO_URL}/compare/${CURRENT_SUBMODULE_COMMIT}...${LATEST_COMMIT}"
117+ fi
118+
119+ status_line="ℹ️ No update needed"
120+ if [[ "${UPDATE_OUTCOME:-}" == "failure" || "${VERIFY_OCI_OUTCOME:-}" == "failure" || "${COMMIT_PUSH_OUTCOME:-}" == "failure" || "${UPDATE_OUTCOME:-}" == "cancelled" || "${VERIFY_OCI_OUTCOME:-}" == "cancelled" || "${COMMIT_PUSH_OUTCOME:-}" == "cancelled" ]]; then
121+ status_line="❌ Failed"
122+ elif [[ "${PUSHED:-}" == "true" ]]; then
123+ status_line="✅ Updated and pushed"
124+ fi
125+
126+ {
127+ echo "## ${status_line}"
128+ echo ""
129+ echo "**Trigger:** \`${GITHUB_EVENT_NAME}\`"
130+ echo "**Ref:** \`${GITHUB_REF}\`"
131+ echo "**Actor:** \`${GITHUB_ACTOR}\`"
132+ echo ""
133+ echo "**Submodule branch:** \`${branch}\`"
134+ echo "**Submodule repo:** ${repo_url}"
135+ echo ""
136+ echo "**Submodule commit:** \`${current_submodule} -> ${latest_submodule}\`"
137+ echo "**Dockerfile pin:** \`${current_pin} -> ${updated_pin}\`"
138+ echo ""
139+ echo "**Update flags:**"
140+ echo "- needs_update: \`${needs_update}\`"
141+ echo "- updated: \`${updated}\`"
142+ echo "- changed: \`${changed}\`"
143+ echo "- pushed: \`${pushed}\`"
144+ echo ""
145+ echo "**Links:**"
146+ if [[ "${compare_link}" == "n/a" ]]; then
147+ echo "- submodule compare: n/a"
148+ else
149+ echo "- submodule compare: ${compare_link}"
150+ fi
151+ if [[ "${commit_link}" == "n/a" ]]; then
152+ echo "- pushed superproject commit: n/a"
153+ else
154+ echo "- pushed superproject commit: ${commit_link}"
155+ fi
156+ echo ""
157+ echo "**Step outcomes:**"
158+ echo "- update: \`${UPDATE_OUTCOME:-n/a}\`"
159+ echo "- verify_oci: \`${VERIFY_OCI_OUTCOME:-n/a}\`"
160+ echo "- commit_push: \`${COMMIT_PUSH_OUTCOME:-n/a}\`"
161+ } >> "${GITHUB_STEP_SUMMARY}"
0 commit comments