Skip to content

feat(gui): refresh control center visual design (v23.1) #33

feat(gui): refresh control center visual design (v23.1)

feat(gui): refresh control center visual design (v23.1) #33

Workflow file for this run

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