Skip to content

ci: gate SCCM integration branch - #429

Merged
adamgell merged 1 commit into
codex/parser-family-skeletonfrom
codex/sccm-integration-ci-gate
Aug 1, 2026
Merged

ci: gate SCCM integration branch#429
adamgell merged 1 commit into
codex/parser-family-skeletonfrom
codex/sccm-integration-ci-gate

Conversation

@adamgell

@adamgell adamgell commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Summary

This is the integration-branch port of #421. That PR fixed main, but the SCCM implementation lanes under epic #317 are based on codex/parser-family-skeleton, so the trigger change must also land on that branch before those PRs receive CI.

Scope

Only .github/workflows/cmtrace-ci.yml changes. No jobs or steps are modified.

Refs #317

Verification

  • RED: exact trigger assertion failed on the base with AssertionError: ['main']
  • GREEN: PyYAML parse plus exact push/pull-request branch assertions
  • GREEN: exact unchanged job IDs: build, check, e2e, frontend, msrv, windows-esp
  • GREEN: actionlint .github/workflows/cmtrace-ci.yml
  • GREEN: git diff --check 065b8cb7e4d4184fe4141f4da882e968d7590836..HEAD
  • GREEN: changed-file assertion permits only .github/workflows/cmtrace-ci.yml
  • GREEN: local CodeRabbit review returned no actionable findings

Summary by CodeRabbit

  • Chores
    • Updated automated CI checks to run for changes pushed to or proposed against the parser-family development branch, in addition to the main branch.

Port the trigger-only change from #421 onto the SCCM integration branch.\n\nRefs #317.
Copilot AI review requested due to automatic review settings August 1, 2026 22:05
@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e0768d32-4a4a-401b-bc0e-5ff4b4cfc0a3

📥 Commits

Reviewing files that changed from the base of the PR and between 065b8cb and cc6bf79.

📒 Files selected for processing (1)
  • .github/workflows/cmtrace-ci.yml

📝 Walkthrough

Walkthrough

The CI workflow now triggers for codex/parser-family-skeleton on pushes and pull requests, in addition to main.

Changes

CI trigger update

Layer / File(s) Summary
Workflow branch filters
.github/workflows/cmtrace-ci.yml
The push and pull-request filters now include codex/parser-family-skeleton.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the CI trigger change for the SCCM integration branch.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added enhancement New feature or request parser Log parser related sccm SCCM/ConfigMgr related labels Aug 1, 2026
@adamgell

adamgell commented Aug 1, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

Please review exact head cc6bf796c524e8794cbe7562f57fcff395cb5de6. Scope is the trigger-only SCCM integration port of #421; no jobs may change.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Extends the existing CI workflow triggers so the same CI job set runs for both main and the long-lived SCCM integration branch (codex/parser-family-skeleton), ensuring PRs targeting that branch are gated and merges into it are validated.

Changes:

  • Updated on.push.branches to include codex/parser-family-skeleton
  • Updated on.pull_request.branches to include codex/parser-family-skeleton (with a clarifying comment about silent non-runs when omitted)

@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

expected_head='cc6bf796c524e8794cbe7562f57fcff395cb5de6'
base='065b8cb7e4d4184fe4141f4da882e968d7590836'
workflow='.github/workflows/cmtrace-ci.yml'

echo '== Checked-out HEAD =='
git rev-parse HEAD
echo '== Requested commit =='
printf '%s\n' "$expected_head"

echo '== Commit ancestry and changed files =='
git merge-base --is-ancestor "$base" "$expected_head" && echo 'base is an ancestor of requested head'
git diff --name-status "$base..$expected_head"
git diff --check "$base..$expected_head"

echo '== Exact workflow diff =='
git diff --no-ext-diff --unified=80 "$base..$expected_head" -- "$workflow"

echo '== Workflow outline at requested HEAD =='
ast-grep outline "$workflow" --items all || true

echo '== Job keys and hashes, base versus requested HEAD =='
python3 - <<'PY'
import hashlib
import subprocess
import sys

base = "065b8cb7e4d4184fe4141f4da882e968d7590836"
head = "cc6bf796c524e8794cbe7562f57fcff395cb5de6"
path = ".github/workflows/cmtrace-ci.yml"

try:
    import yaml
except ImportError:
    print("PyYAML is unavailable; cannot perform structured YAML comparison.", file=sys.stderr)
    sys.exit(0)

class Loader(yaml.SafeLoader):
    pass
for key, resolvers in list(Loader.yaml_implicit_resolvers.items()):
    Loader.yaml_implicit_resolvers[key] = [
        (tag, regexp) for tag, regexp in resolvers
        if tag != "tag:yaml.org,2002:bool"
    ]

def get_doc(rev):
    raw = subprocess.check_output(["git", "show", f"{rev}:{path}"], text=True)
    return yaml.load(raw, Loader=Loader)

for label, rev in [("base", base), ("head", head)]:
    doc = get_doc(rev)
    jobs = doc.get("jobs", {})
    print(f"{label} trigger: {doc.get('on')!r}")
    print(f"{label} job IDs: {list(jobs)}")
    for job_id, job in jobs.items():
        encoded = yaml.dump(job, sort_keys=True).encode()
        print(f"{label} jobs.{job_id} sha256: {hashlib.sha256(encoded).hexdigest()}")

base_jobs = get_doc(base).get("jobs", {})
head_jobs = get_doc(head).get("jobs", {})
if base_jobs != head_jobs:
    print("ERROR: Job definitions differ.", file=sys.stderr)
    sys.exit(1)
print("PASS: Job definitions are structurally identical.")
PY

Length of output: 5919


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='065b8cb7e4d4184fe4141f4da882e968d7590836'
head='cc6bf796c524e8794cbe7562f57fcff395cb5de6'
workflow='.github/workflows/cmtrace-ci.yml'

base_file="$(mktemp)"
head_file="$(mktemp)"
base_jobs="$(mktemp)"
head_jobs="$(mktemp)"
trap 'rm -f "$base_file" "$head_file" "$base_jobs" "$head_jobs"' EXIT

git show "$base:$workflow" > "$base_file"
git show "$head:$workflow" > "$head_file"

echo '== Exact trigger declarations at requested HEAD =='
awk '
  /^  push:$/ || /^  pull_request:$/ { section=$1; print section; next }
  section && /^    branches:/ { print; section=""; next }
' "$head_file"

echo '== Exact expected trigger assertions =='
grep -Fx '    branches: [main, codex/parser-family-skeleton]' "$head_file" | wc -l | \
  awk '$1 == 2 { print "PASS: both trigger branch lists are exact."; next } { print "FAIL: expected two exact branch lists, found " $1; exit 1 }'

echo '== Byte comparison of jobs sections =='
sed -n '/^jobs:$/,$p' "$base_file" > "$base_jobs"
sed -n '/^jobs:$/,$p' "$head_file" > "$head_jobs"
cmp -s "$base_jobs" "$head_jobs"
echo 'PASS: jobs section is byte-identical to base.'

echo '== actionlint =='
if command -v actionlint >/dev/null 2>&1; then
  actionlint "$workflow"
  echo 'PASS: actionlint completed successfully.'
else
  echo 'SKIP: actionlint is not installed in this environment.'
fi

Length of output: 2001


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='065b8cb7e4d4184fe4141f4da882e968d7590836'
head='cc6bf796c524e8794cbe7562f57fcff395cb5de6'
workflow='.github/workflows/cmtrace-ci.yml'

base_jobs="$(mktemp)"
head_jobs="$(mktemp)"
trap 'rm -f "$base_jobs" "$head_jobs"' EXIT

git show "$base:$workflow" | sed -n '/^jobs:$/,$p' > "$base_jobs"
git show "$head:$workflow" | sed -n '/^jobs:$/,$p' > "$head_jobs"

echo '== Job-section SHA-256 digests =='
base_hash="$(sha256sum "$base_jobs" | awk '{print $1}')"
head_hash="$(sha256sum "$head_jobs" | awk '{print $1}')"
printf 'base: %s\nhead: %s\n' "$base_hash" "$head_hash"
test "$base_hash" = "$head_hash"
echo 'PASS: jobs section is byte-identical to base.'

echo '== actionlint =='
if command -v actionlint >/dev/null 2>&1; then
  actionlint "$workflow"
  echo 'PASS: actionlint completed successfully.'
else
  echo 'SKIP: actionlint is not installed in this environment.'
fi

Length of output: 1297


🏁 Script executed:

#!/bin/bash
set -euo pipefail

base='065b8cb7e4d4184fe4141f4da882e968d7590836'
head='cc6bf796c524e8794cbe7562f57fcff395cb5de6'
workflow='.github/workflows/cmtrace-ci.yml'

echo '== Job-section Git content hashes =='
base_hash="$(
  git show "$base:$workflow" |
  sed -n '/^jobs:$/,$p' |
  git hash-object --stdin
)"
head_hash="$(
  git show "$head:$workflow" |
  sed -n '/^jobs:$/,$p' |
  git hash-object --stdin
)"
printf 'base: %s\nhead: %s\n' "$base_hash" "$head_hash"
test "$base_hash" = "$head_hash"
echo 'PASS: jobs section is byte-identical to base.'

echo '== actionlint availability and result =='
if command -v actionlint >/dev/null 2>&1; then
  actionlint "$workflow"
  echo 'PASS: actionlint completed successfully.'
else
  echo 'SKIP: actionlint is not installed in this environment.'
fi

Length of output: 1198


@adamgell I found no actionable findings in cc6bf796c524e8794cbe7562f57fcff395cb5de6.

Verified:

  • Only .github/workflows/cmtrace-ci.yml changed.
  • push and pull_request both target main and codex/parser-family-skeleton.
  • The complete jobs: section is byte-identical to the base commit.
  • actionlint .github/workflows/cmtrace-ci.yml passed.
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@adamgell
adamgell merged commit 27544ff into codex/parser-family-skeleton Aug 1, 2026
12 checks passed
@adamgell
adamgell deleted the codex/sccm-integration-ci-gate branch August 1, 2026 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request parser Log parser related sccm SCCM/ConfigMgr related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants