The deployment check workflow is now live on main:
- ✅
scripts/deployment_check.py- Validation script - ✅
.github/workflows/deployment-check.yml- GitHub Actions workflow - ✅
docs/BRANCH_PROTECTION.md- Comprehensive guide
You must complete this step in the GitHub UI to enforce the checks.
-
Go to Repository Settings
- Navigate to: https://github.com/brainsnorkel/eso-build-o-rama/settings/branches
- Or: Repository → Settings → Branches (left sidebar)
-
Click "Add branch protection rule"
-
Configure the Rule
Branch name pattern:
mainEnable these settings:
✅ Require status checks to pass before merging
- ✅ Check: "Require branches to be up to date before merging"
- Search for:
Validate Generated Site - Click to add it to required checks
✅ Require a pull request before merging
- Set "Required approvals":
0(or1if you want manual review) - ✅ Check: "Dismiss stale pull request approvals when new commits are pushed"
⬜ Require conversation resolution before merging (optional)
⬜ Require linear history (optional, keeps git clean)
✅ Include administrators (RECOMMENDED - applies rules to repo owners too)
✅ Do not allow bypassing the above settings (RECOMMENDED - strict enforcement)
-
Click "Create" or "Save changes"
The workflow needs to run at least once before GitHub can recognize it as a status check:
-
Create a test branch and PR:
git checkout develop git checkout -b test/enforcement-check git push origin test/enforcement-check
-
Open a PR against
mainvia GitHub UI -
Wait for the "Validate Generated Site" check to appear
-
Now you can add it to branch protection rules (Step 2 above)
On every PR to main:
- GitHub Actions automatically runs
- Generates a test build (Aetherian Archive)
- Runs
scripts/deployment_check.py - Posts comment on PR:
- ✅ "All checks passed! Ready to merge" (if passing)
- ❌ "Deployment check failed" (if failing)
- PR shows green ✅ or red ❌ checkmark
- Merge button disabled if checks fail
# Create a clean test PR
git checkout develop
git pull origin develop
git checkout -b test/passing-deployment-check
echo "# Test PR" >> TEST.md
git add TEST.md
git commit -m "Test: Verify deployment check passes"
git push origin test/passing-deployment-checkOpen PR on GitHub → Expected result:
- ✅ Green checkmark
- ✅ Comment: "All checks passed!"
- ✅ Merge button enabled
# Create a PR that will fail validation
git checkout develop
git checkout -b test/failing-deployment-check
echo "broken" > output/index.html
git add output/index.html
git commit -m "Test: Intentional failure"
git push origin test/failing-deployment-checkOpen PR on GitHub → Expected result:
- ❌ Red X
- ❌ Comment: "Deployment check failed"
- ❌ Merge button disabled (if branch protection enabled)
After setup, verify these items:
- Branch protection rule exists for
main - "Validate Generated Site" is listed as required check
- Test PR shows the check running
- PR comment appears after check completes
- Merge button is disabled when check fails
- Merge button is enabled when check passes
- Admins cannot bypass (if "Include administrators" enabled)
Problem: The check hasn't run yet, so GitHub doesn't know about it.
Solution:
- Create and push any branch
- Open a PR to
main - Wait for workflow to complete
- The check will now appear in branch protection settings
Problem: Workflow may have path filters or conditions.
Solution: Check .github/workflows/deployment-check.yml for any paths: or if: conditions.
Problem: ESO_LOGS_CLIENT_ID and ESO_LOGS_CLIENT_SECRET not set.
Solution:
- Go to Settings → Secrets and variables → Actions
- Add repository secrets:
ESO_LOGS_CLIENT_IDESO_LOGS_CLIENT_SECRET
Problem: Branch protection not enabled or configured incorrectly.
Solution: Re-check Step 2 above, ensure:
- Rule is for
mainbranch - "Require status checks to pass" is checked
- "Validate Generated Site" is in the required checks list
- Rule is saved
You'll know it's working when:
- ✅ Every PR to
mainshows "Validate Generated Site" check - ✅ PR gets automated comment with check results
- ✅ Failed checks prevent merging
- ✅ Passed checks allow merging
- ✅ Local test:
python scripts/deployment_check.py output-devworks
- Full Documentation:
docs/BRANCH_PROTECTION.md - Script Usage:
scripts/README.md - GitHub Docs: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches
Once enforcement is working:
- Update CHANGELOG.md with deployment check feature
- Add badge to README.md showing workflow status
- Consider adding more checks (linting, tests, etc.)
- Monitor for false positives and adjust validation rules
If you encounter issues:
- Check workflow runs: https://github.com/brainsnorkel/eso-build-o-rama/actions
- Review logs from failed checks
- Test locally:
python scripts/deployment_check.py output-dev - Refer to
docs/BRANCH_PROTECTION.mdfor detailed troubleshooting
Status: ✅ Code deployed, ⏳ Branch protection setup required