Spaces:
Running
Running
| name: Dev Containers | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - ".devcontainer/**" | |
| - ".github/workflows/devcontainers.yml" | |
| - "pyproject.toml" | |
| - "uv.lock" | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - ".devcontainer/**" | |
| - ".github/workflows/devcontainers.yml" | |
| - "pyproject.toml" | |
| - "uv.lock" | |
| workflow_dispatch: | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: default | |
| config: .devcontainer/devcontainer.json | |
| - name: memory-stack | |
| config: .devcontainer/memory-stack/devcontainer.json | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Install Dev Container CLI | |
| run: npm install -g @devcontainers/cli@0.85.0 | |
| - name: Start ${{ matrix.name }} | |
| run: devcontainer up --workspace-folder . --config ${{ matrix.config }} --remove-existing-container | |
| - name: Smoke test ${{ matrix.name }} | |
| shell: bash | |
| run: | | |
| if [[ "${{ matrix.name }}" == "memory-stack" ]]; then | |
| devcontainer exec --workspace-folder . --config ${{ matrix.config }} bash -lc 'git rev-parse --show-toplevel >/dev/null && uv --version && node --version && gh --version >/dev/null && uv run python -c "import socket; socket.create_connection((\"qdrant\", 6333), 5).close(); socket.create_connection((\"neo4j\", 7687), 5).close(); from mem0 import Memory; from qdrant_client import QdrantClient; import neo4j; import headroom; print(\"memory-stack smoke test passed\")"' | |
| else | |
| devcontainer exec --workspace-folder . --config ${{ matrix.config }} bash -lc 'git rev-parse --show-toplevel >/dev/null && uv --version && node --version && gh --version >/dev/null && uv run python -c "import headroom; print(\"default smoke test passed\")"' | |
| fi | |
| validate-worktree: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Create linked worktree | |
| run: git worktree add "$RUNNER_TEMP/headroom-worktree" HEAD | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Install Dev Container CLI | |
| run: npm install -g @devcontainers/cli@0.85.0 | |
| - name: Start linked worktree devcontainer | |
| run: devcontainer up --workspace-folder "$RUNNER_TEMP/headroom-worktree" --config "$RUNNER_TEMP/headroom-worktree/.devcontainer/devcontainer.json" --remove-existing-container | |
| - name: Smoke test linked worktree | |
| run: devcontainer exec --workspace-folder "$RUNNER_TEMP/headroom-worktree" --config "$RUNNER_TEMP/headroom-worktree/.devcontainer/devcontainer.json" bash -lc 'git rev-parse --show-toplevel && uv run python -c "import headroom; print(\"worktree smoke test passed\")"' | |