From b686ac2c1bc984afa5a6ab3570a30d7c817c73c9 Mon Sep 17 00:00:00 2001 From: Kartik Shah Date: Fri, 22 Dec 2023 13:57:15 +0530 Subject: [PATCH] ci: show relevant commits --- ci/apps/tasks/open-charts-pr.sh | 26 ++++++++++++++++++++++++++ ci/tasks/open-charts-pr.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/ci/apps/tasks/open-charts-pr.sh b/ci/apps/tasks/open-charts-pr.sh index e80e2a2f53..8236ffc28e 100755 --- a/ci/apps/tasks/open-charts-pr.sh +++ b/ci/apps/tasks/open-charts-pr.sh @@ -35,6 +35,18 @@ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" git checkout ${ref} app_src_files=($(buck2 uquery 'inputs(deps("'"//apps/${APP}:"'"))' 2>/dev/null)) +relevant_commits=() +for commit in $(git log --format="%H" ${old_ref}..${ref}); do + changed_files=$(git diff-tree --no-commit-id --name-only -r $commit) + + for file in ${changed_files[@]}; do + if [[ " ${app_src_files[*]} " == *"$file"* ]]; then + relevant_commits+=($commit) + break + fi + done +done + # create a branch from the old state and commit the new state of the app set +e git fetch origin ${APP}-${old_ref} @@ -56,6 +68,9 @@ for file in "${app_src_files[@]}"; do git checkout "$ref" -- "$file" done +echo "${relevant_commits[@]}" > relevant_commits.json +git add relevant_commits.json + git commit -m "Commit state of \`${APP}\` at \`${ref}\`" --allow-empty git push -fu origin ${APP}-${ref} @@ -66,6 +81,17 @@ Code diff contained in this image: ${github_url}/compare/${APP}-${old_ref}...${APP}-${ref} +Relevant commits: +EOF + +for commit in "${relevant_commits[@]}"; do + cat <> ../body.md +- ${github_url}/commit/${commit} +EOF +done + +cat <> ../body.md + The ${APP} image will be bumped to digest: \`\`\` ${digest} diff --git a/ci/tasks/open-charts-pr.sh b/ci/tasks/open-charts-pr.sh index 4767768f9a..4cdc83abac 100755 --- a/ci/tasks/open-charts-pr.sh +++ b/ci/tasks/open-charts-pr.sh @@ -36,6 +36,18 @@ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" git checkout ${ref} app_src_files=($(buck2 uquery 'inputs(deps("//core/..."))' 2>/dev/null)) +relevant_commits=() +for commit in $(git log --format="%H" ${old_ref}..${ref}); do + changed_files=$(git diff-tree --no-commit-id --name-only -r $commit) + + for file in ${changed_files[@]}; do + if [[ " ${app_src_files[*]} " == *"$file"* ]]; then + relevant_commits+=($commit) + break + fi + done +done + # create a branch from the old state and commit the new state of core set +e git fetch origin core-${old_ref} @@ -57,6 +69,10 @@ for file in "${app_src_files[@]}"; do git checkout "$ref" -- "$file" done +# put the relevant commits as a json array in a file +echo "${relevant_commits[@]}" > relevant_commits.json +git add relevant_commits.json + git commit -m "Commit state of \`core\` at \`${ref}\`" --allow-empty git push -fu origin core-${ref} @@ -67,6 +83,17 @@ Code diff contained in this image: ${github_url}/compare/core-${old_ref}...core-${ref} +Relevant commits: +EOF + +for commit in "${relevant_commits[@]}"; do + cat <> ../body.md +- ${github_url}/commit/${commit} +EOF +done + +cat <> ../body.md + The galoy api image will be bumped to digest: \`\`\` ${digest}