Repository navigation
feat(config): make local dashboard authentication optional #1388
Workflow file for this run
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: Main | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: master-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| quality: | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6 | |
| with: | |
| path: ~/.cache/prek | |
| key: prek-${{ hashFiles('.pre-commit-config.yaml') }} | |
| - name: Set up the environment | |
| uses: ./.github/actions/setup-python-env | |
| - name: Run checks | |
| run: make check | |
| - name: Check OpenAPI contract | |
| run: make contract-test | |
| tests: | |
| timeout-minutes: 40 | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.11", "3.12", "3.13", "3.14"] | |
| fail-fast: false | |
| defaults: | |
| run: | |
| shell: bash | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the environment | |
| uses: ./.github/actions/setup-python-env | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Run unit tests | |
| run: make unit-test | |
| - name: Run end-to-end tests | |
| run: make e2e-test | |
| windows-unit-portability: | |
| timeout-minutes: 20 | |
| runs-on: windows-latest | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the environment | |
| uses: ./.github/actions/setup-python-env | |
| - name: Check Windows worker types | |
| run: >- | |
| uv run --locked --no-sync ty check --python-platform win32 | |
| src/powercontext/builtin/runtime/artifact_processing.py | |
| tests/builtin/runtime/test_artifact_processing.py | |
| - name: Verify spawned worker lifecycle on Windows | |
| run: uv run --locked --no-sync pytest -q tests/builtin/runtime/test_artifact_processing.py | |
| - name: Exercise fixtures without Windows long-path support | |
| shell: pwsh | |
| run: | | |
| Set-ItemProperty -LiteralPath 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name LongPathsEnabled -Value 0 | |
| # Keep pytest's default temporary root: a short --basetemp would hide | |
| # regressions in the nested checkout fixtures covered by issue #1501. | |
| - name: Run Windows portability regressions | |
| shell: pwsh | |
| run: >- | |
| uv run pytest -q | |
| tests/builtin/artifacts/skill/test_package.py | |
| tests/builtin/runtime/test_external_skills.py | |
| tests/test_cli.py::test_remote_enroll_can_install_automatic_service_in_one_command | |
| tests/test_openclaw_cli.py::test_build_openclaw_plugin_runs_pnpm_install_non_interactively | |
| tests/test_opencode_cli.py | |
| tests/test_service.py | |
| tests/test_service_bootstrap.py | |
| tests/test_service_environment.py | |
| tests/test_cli_workbuddy.py::test_setup_workbuddy_remote_checkout_refreshes_the_requested_ref | |
| hermes-skills: | |
| timeout-minutes: 15 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the environment | |
| uses: ./.github/actions/setup-python-env | |
| - name: Check out the supported Hermes host | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| repository: NousResearch/hermes-agent | |
| ref: e624e9fde561e1add9388384012b295fde669ade # v2026.8.18 / CLI 0.20.4 | |
| path: .hermes-native | |
| persist-credentials: false | |
| - name: Verify native Skill discovery and metadata | |
| env: | |
| POWERCONTEXT_HERMES_SOURCE: ${{ github.workspace }}/.hermes-native | |
| run: uv run pytest tests/e2e/test_hermes_skills.py | |
| dsh-package: | |
| timeout-minutes: 30 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the Python environment | |
| uses: ./.github/actions/setup-python-env | |
| - name: Set up project tools | |
| uses: jdx/mise-action@c37c93293d6b742fc901e1406b8f764f6fb19dac # v2 | |
| - name: Test DSH package | |
| run: make js-test | |
| - name: Test built plugin in the real DSH runtime | |
| run: make dsh-runtime-test | |
| - name: Verify DSH guidance adapter requests and results | |
| run: uv run pytest "tests/test_integration_guidance_evaluation.py::test_native_adapter_handoff_uses_real_request_mapping_and_response_envelopes[dsh]" | |
| pi-package: | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the Python environment | |
| uses: ./.github/actions/setup-python-env | |
| - name: Set up project tools | |
| uses: jdx/mise-action@c37c93293d6b742fc901e1406b8f764f6fb19dac # v2 | |
| - name: Test Pi package | |
| run: make pi-test | |
| - name: Verify Pi guidance adapter requests and results | |
| run: uv run pytest "tests/test_integration_guidance_evaluation.py::test_native_adapter_handoff_uses_real_request_mapping_and_response_envelopes[pi]" | |
| opencode-package: | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the Python environment | |
| uses: ./.github/actions/setup-python-env | |
| - uses: jdx/mise-action@c37c93293d6b742fc901e1406b8f764f6fb19dac # v2 | |
| - name: Test OpenCode package | |
| run: make opencode-test | |
| - name: Verify OpenCode guidance adapter requests and results | |
| run: uv run pytest "tests/test_integration_guidance_evaluation.py::test_native_adapter_handoff_uses_real_request_mapping_and_response_envelopes[opencode]" | |
| openclaw-package: | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the Python environment | |
| uses: ./.github/actions/setup-python-env | |
| - uses: jdx/mise-action@c37c93293d6b742fc901e1406b8f764f6fb19dac # v2 | |
| # The pinned OpenClaw SDK requires the SQLite runtime shipped with Node 24.15+. | |
| - run: mise install node@24.15.0 | |
| - name: Test OpenClaw package | |
| run: mise exec node@24.15.0 -- make openclaw-plugin-test | |
| - name: Verify OpenClaw guidance adapter requests and results | |
| run: mise exec node@24.15.0 -- uv run pytest tests/test_integration_guidance_evaluation.py::test_openclaw_handoff_adapter_preserves_generated_source_identity | |
| opendal-package: | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the Python environment | |
| uses: ./.github/actions/setup-python-env | |
| with: | |
| python-version: "3.12" | |
| - name: Test OpenDAL package | |
| run: make opendal-test | |
| website-link-validation-windows: | |
| timeout-minutes: 20 | |
| runs-on: windows-latest | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up website tools | |
| uses: jdx/mise-action@c37c93293d6b742fc901e1406b8f764f6fb19dac # v2 | |
| - name: Install website dependencies | |
| run: pnpm --dir website install --frozen-lockfile | |
| - name: Test route scanning and link validation | |
| run: pnpm --dir website test:links | |
| check-website: | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Set up the environment | |
| uses: ./.github/actions/setup-python-env | |
| - name: Set up website tools | |
| uses: jdx/mise-action@c37c93293d6b742fc901e1406b8f764f6fb19dac # v2 | |
| - name: Check website | |
| run: make docs-test |