feat(gui): refresh control center visual design (v23.1) #33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: validate | |
| on: | |
| pull_request: | |
| push: | |
| branches: [ main ] | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.x' | |
| - name: Compile Python scripts | |
| run: | | |
| python - <<'PY' | |
| import py_compile | |
| from pathlib import Path | |
| for path in Path("scripts").rglob("*.py"): | |
| if "__pycache__" not in path.parts: | |
| py_compile.compile(str(path), doraise=True) | |
| PY | |
| - name: Set up Rust | |
| run: | | |
| rustup toolchain install stable --profile minimal --component clippy --component rustfmt | |
| rustup default stable | |
| - name: Run Rust stream-core checks | |
| run: | | |
| cargo fmt --check | |
| cargo clippy --all-targets -- -D warnings | |
| cargo test --locked | |
| - name: Validate Xray JSON if present | |
| run: | | |
| if [ -f Xray-config/MITM-DomainFronting.json ]; then | |
| python scripts/validate_config.py Xray-config/MITM-DomainFronting.json --json-out validation-report.json | |
| else | |
| echo "Xray-config/MITM-DomainFronting.json not present in this branch" | |
| fi | |
| - name: Validate generated profile configs | |
| run: | | |
| python scripts/generate_profiles.py --base Xray-config/MITM-DomainFronting.json | |
| git diff --exit-code -- Xray-config/MITM-DomainFronting.*.json | |
| for config in Xray-config/MITM-DomainFronting*.json; do | |
| python scripts/validate_config.py "$config" | |
| done | |
| - name: Run preflight static checks if config present | |
| run: | | |
| if [ -f Xray-config/MITM-DomainFronting.json ]; then | |
| python scripts/preflight.py --config Xray-config/MITM-DomainFronting.json --no-dns --skip-cert --skip-runtime | |
| fi | |
| - name: Validate metadata | |
| run: | | |
| python scripts/validate_metadata.py | |
| - name: Validate repository structure | |
| run: | | |
| python scripts/repository_structure_tests.py | |
| - name: Verify geodata lock when present | |
| run: | | |
| python scripts/geodata_pin.py --verify | |
| - name: Run route policy tests | |
| run: | | |
| python scripts/route_policy_tests.py | |
| python scripts/route_graph_verify.py Xray-config/MITM-DomainFronting.json | |
| python scripts/route_rule_linter.py Xray-config/MITM-DomainFronting.json --quiet | |
| - name: Sync route intent manifest against primary config | |
| run: | | |
| python scripts/route_intent_sync.py Xray-config/MITM-DomainFronting.json | |
| for config in Xray-config/MITM-DomainFronting.*.json; do | |
| python scripts/route_intent_sync.py "$config" | |
| done | |
| - name: Xray runtime config test | |
| if: hashFiles('Xray-config/MITM-DomainFronting.json') != '' | |
| run: | | |
| python scripts/install_xray.py --out-dir xray --force | |
| xray/xray tls cert -ca -file=Xray-config/mycert >/dev/null | |
| cp Xray-config/mycert.crt xray/mycert.crt | |
| cp Xray-config/mycert.key xray/mycert.key | |
| xray/xray run -test -config Xray-config/MITM-DomainFronting.json | |
| python scripts/geodata_pin.py --verify --strict --xray-bin xray/xray --root . | |
| - name: Run protocol policy tests | |
| run: | | |
| python scripts/protocol_policy_tests.py | |
| python scripts/transport_profile_validate.py | |
| python scripts/protocol_smoke.py --scenario udp443-policy | |
| - name: Validate provider dossiers | |
| run: | | |
| python scripts/provider_dossier_validate.py | |
| - name: Validate health policy recommendations | |
| run: | | |
| python scripts/health_policy_tests.py | |
| - name: Validate transport experiment manifest | |
| run: | | |
| python scripts/transport_experiment_validate.py | |
| - name: Validate config-src manifest | |
| run: | | |
| python scripts/config_src_validate.py --run-steps | |
| python scripts/build_config.py --check-runtime-sync --generate-profiles --check-profile-sync | |
| python scripts/config_src_merge_test.py | |
| - name: Lab evidence bundle | |
| run: | | |
| python scripts/lab_evidence_run.py --allow-warn --json-out lab-evidence.bundle.json | |
| python scripts/lab_evidence_validate.py --allow-warn lab-evidence.bundle.json | |
| - name: Run browser probe semantics regression checks | |
| run: | | |
| python scripts/browser_probe_semantics_test.py | |
| - name: Check that private keys are not committed | |
| run: | | |
| python scripts/secret_scan.py | |
| - name: Shell syntax check | |
| run: | | |
| find . -name '*.sh' -print -exec sh -n {} \; | |
| - name: Build release manifest dry run | |
| run: | | |
| if [ -f Xray-config/MITM-DomainFronting.json ]; then | |
| python scripts/build_release_manifest.py --root . --out validation-report.json --checksums checksums.txt --skip-xray-test | |
| fi | |
| - name: Upload validation artifacts | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: validation-artifacts | |
| path: | | |
| validation-report.json | |
| checksums.txt | |
| lab-evidence.bundle.json |