From 5b782f8cafdea274cb527db20065a782ad8040e9 Mon Sep 17 00:00:00 2001 From: Oliver Pajonk Date: Fri, 14 Aug 2026 22:38:44 +0200 Subject: [PATCH 1/5] Enhance integration workflow to track commit creation status and amend commits conditionally --- .github/workflows/upstream_integration.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upstream_integration.yml b/.github/workflows/upstream_integration.yml index f2a1eb7..2f75834 100644 --- a/.github/workflows/upstream_integration.yml +++ b/.github/workflows/upstream_integration.yml @@ -152,8 +152,10 @@ jobs: git add -A if git diff --cached --quiet; then echo "No changes to commit; working copy already matches upstream." + echo "INTEGRATION_COMMIT_CREATED=false" >> "${GITHUB_ENV}" else git commit -m "Integrate upstream version ${RELEASE_VERSION}" + echo "INTEGRATION_COMMIT_CREATED=true" >> "${GITHUB_ENV}" git push origin "HEAD:${INTEGRATION_BRANCH}" fi @@ -205,10 +207,13 @@ jobs: git add "${devcontainer_json}" "${run_sh}" if git diff --cached --quiet; then echo "Tags already match; nothing to commit." - else - # Amend the previous commit to include the tag rewrite, so that the previous container tag is not left in the integration branch history. + elif [[ "${INTEGRATION_COMMIT_CREATED}" == "true" ]]; then + # Amend the integration commit only when this run created one. git commit --amend --no-edit git push --force-with-lease origin "HEAD:${INTEGRATION_BRANCH}" + else + git commit -m "Rewrite devcontainer image tag for PR" + git push origin "HEAD:${INTEGRATION_BRANCH}" fi - name: Update container tags and push to registry From c7a5c182192854dc635fb13da1a0e3aafb0ab674 Mon Sep 17 00:00:00 2001 From: Oliver Pajonk Date: Sat, 15 Aug 2026 08:44:58 +0200 Subject: [PATCH 2/5] remove temporary files created by devcontainer run These should not be committed. --- .github/scripts/qemu_smoke_test.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/scripts/qemu_smoke_test.sh b/.github/scripts/qemu_smoke_test.sh index 571509c..9c2181c 100755 --- a/.github/scripts/qemu_smoke_test.sh +++ b/.github/scripts/qemu_smoke_test.sh @@ -68,6 +68,9 @@ for i in $(seq 1 "${max_tries}"); do if grep -q "${msg}" "${log}" 2>/dev/null; then echo "Waiting for \"${msg}\" message in ${log} succeeded" >&2 rm -f "${log}" + # remove files created during devcontainer run + rm -f "${workspace_root}/.devcontainer/timezone.env" + rm -f "${workspace_root}/.devcontainer/credentials.netrc" exit 0 fi echo "Waiting for \"${msg}\" message in ${log} ... (${i}/${max_tries})" >&2 From 340fd891408b7611c97a5e7f11cde0602efb8592 Mon Sep 17 00:00:00 2001 From: Oliver Pajonk Date: Sat, 15 Aug 2026 08:49:21 +0200 Subject: [PATCH 3/5] Fix minor language glitch --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 581ee46..c06424a 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Re-open it in the devcontainer. Open the [User's Manual](https://elektrobit.github.io/eb_corbos_toolkit/) and follow the instructions, starting with the section [Rebuild and Run Target Image](https://elektrobit.github.io/eb_corbos_toolkit/#_rebuild_and_run_target_image). > [!NOTE] -> The instructions "Obtain EB corbos Toolkit", "Enter Development Container", and "Run Prebuilt Target Image" only work with the self-contained delivery archive. +> The instructions "Obtain EB corbos Toolkit", "Enter Development Container", and "Run Prebuilt Target Image" work only with the self-contained delivery archive. ## Reporting Issues From 87d8c2a42e7b2d25a9008aaa5d1fe285d91478a8 Mon Sep 17 00:00:00 2001 From: Oliver Pajonk Date: Mon, 17 Aug 2026 08:07:01 +0200 Subject: [PATCH 4/5] Add draft flag to pull request creation in integration workflow --- .github/workflows/upstream_integration.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/upstream_integration.yml b/.github/workflows/upstream_integration.yml index 2f75834..8767ed1 100644 --- a/.github/workflows/upstream_integration.yml +++ b/.github/workflows/upstream_integration.yml @@ -174,6 +174,7 @@ jobs: echo "pr_tag=${tag_prefix}${existing_pr}" >> "${GITHUB_OUTPUT}" else pr_url="$(gh pr create \ + --draft \ --head "${INTEGRATION_BRANCH}" \ --base main \ --title "Integrate upstream version ${RELEASE_VERSION}" \ From 16497a68d4e0dd2547746dd5293619760d52f06a Mon Sep 17 00:00:00 2001 From: Oliver Pajonk Date: Mon, 17 Aug 2026 14:20:54 +0200 Subject: [PATCH 5/5] Refactor rsync command to use an array for exclusion patterns in integrate_workspace.sh --- .github/scripts/integrate_workspace.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/scripts/integrate_workspace.sh b/.github/scripts/integrate_workspace.sh index d76760a..054dd78 100755 --- a/.github/scripts/integrate_workspace.sh +++ b/.github/scripts/integrate_workspace.sh @@ -54,5 +54,11 @@ while IFS= read -r -d '' path; do done < <(find . -mindepth 1 -maxdepth 1 -print0) # Copy the upstream workspace on top, preserving flags, mtimes, ownership. -# Ignore the "prebuilt" and "build" sub-folders. -rsync -a --exclude='prebuilt' --exclude='build' "${workspace_root}/." . +# Ignore the "prebuilt" and "build" sub-folders as well as everything that is +# preserved in the integration repository. +rsync_excludes=(--exclude='prebuilt' --exclude='build') +for preserve_path in "${preserve_paths[@]}"; do + rsync_excludes+=(--exclude="/${preserve_path}") +done + +rsync -a "${rsync_excludes[@]}" "${workspace_root}/." .