MHRN-Space / .github /workflows /refresh-source-bound-baseline.yml
Thomas Heisig
Sync GitHub main 0d38520c55acbe9281f5d9033a4def6d1200f235
3fce628 verified
Raw History Blame Contribute Delete
2.71 kB
name: Refresh source-bound baseline
on:
push:
branches: [research/connectome-embodiment-20260909]
paths:
- ".github/workflows/refresh-source-bound-baseline.yml"
workflow_dispatch:
permissions:
contents: write
concurrency:
group: baseline-refresh-${{ github.ref }}
cancel-in-progress: false
jobs:
refresh:
if: github.ref_type == 'branch'
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
ref: ${{ github.sha }}
- uses: actions/setup-python@v7
with:
python-version: "3.13"
- name: Install project and development tools
run: |
python -m pip install --upgrade pip setuptools wheel
python -m pip install -e ".[dev,docs]"
- name: Generate honest source-bound baseline
run: |
python -m black --check src tests scripts
python -m ruff check src tests scripts
python scripts/generate_baseline.py
python scripts/generate_determinism_artifact.py
python scripts/check_doc_consistency.py --check-tests
python scripts/check_connectome_integrity.py
- name: Preserve historical scientific records
run: |
git diff --exit-code "$GITHUB_SHA" -- research/experiments research/registry/evidence research/publications
- name: Commit only generated verification without overwriting concurrent work
env:
TARGET_BRANCH: ${{ github.ref_name }}
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add tests/test_baseline.json research/generated/verification
git diff --cached --check
if git diff --cached --quiet; then
exit 0
fi
git commit -m "test: refresh genuinely executed source-bound verification"
git fetch origin "$TARGET_BRANCH"
test "$(git rev-parse FETCH_HEAD)" = "$GITHUB_SHA"
git push origin "HEAD:refs/heads/$TARGET_BRANCH"
- name: Export verification diagnostics
if: always()
run: |
mkdir -p "$RUNNER_TEMP/baseline-verification"
cp tests/test_baseline.json "$RUNNER_TEMP/baseline-verification/test-baseline.json"
git rev-parse HEAD > "$RUNNER_TEMP/baseline-verification/HEAD.txt"
git status --porcelain > "$RUNNER_TEMP/baseline-verification/status.txt"
- uses: actions/upload-artifact@v7
if: always()
with:
name: source-bound-baseline
path: ${{ runner.temp }}/baseline-verification/
retention-days: 7