feat(preflight): add raw-socket capability probe #4098
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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| env: | |
| GOFLAGS: -mod=readonly -trimpath | |
| GOTOOLCHAIN: local | |
| jobs: | |
| go: | |
| name: Go | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up Go | |
| uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: false | |
| - name: Check formatting | |
| shell: bash | |
| run: | | |
| mapfile -t files < <(git ls-files '*.go') | |
| if [ "${#files[@]}" -gt 0 ]; then | |
| diff="$(gofmt -l "${files[@]}")" | |
| if [ -n "$diff" ]; then | |
| echo "$diff" | |
| exit 1 | |
| fi | |
| fi | |
| - name: Vet | |
| run: go vet ./... | |
| - name: Deadcode | |
| run: | | |
| output_file=$(mktemp) | |
| go run golang.org/x/tools/cmd/deadcode@v0.45.0 -test ./... > "$output_file" | |
| if [ -s "$output_file" ]; then | |
| cat "$output_file" | |
| exit 1 | |
| fi | |
| - name: Test | |
| run: go test -race ./... | |
| - name: Test all Go modules | |
| run: scripts/test-go-modules.sh | |
| - name: Coverage | |
| run: scripts/check-go-coverage.sh 90.0 | |
| - name: Build | |
| run: go build -trimpath -o /tmp/crabbox ./cmd/crabbox | |
| windows-pond-mesh-cancellation: | |
| name: Windows Pond Mesh Cancellation | |
| runs-on: windows-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up Go | |
| uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: false | |
| - name: Test user directory isolation | |
| run: go test ./internal/testutil ./internal/providers/aws ./internal/providers/daytona ./internal/providers/digitalocean ./internal/providers/hyperv ./internal/providers/namespace ./internal/providers/scaleway ./internal/providers/vast ./internal/providers/vultr -count=1 | |
| - name: Test pond mesh cancellation | |
| run: go test ./internal/cli/ -run PondMeshCancel -count=1 -v | |
| - name: Test Windows SSH and rsync transport selection | |
| run: go test ./internal/cli/ -run '^(TestWindowsWSLNativeToolProbeUsesDirectCommandOutput|TestWindowsWSLNativeToolPathsRejectsWindowsShims|TestDirectSSHExecutableSelection|TestSSHCommandContextUsesNativeWindowsOpenSSHEvenWhenPATHSelectsMSYS2|TestResolveWindowsNativeRsyncPairUsesExactSibling|TestResolveWindowsNativeRsyncPairFailsClosedWithoutSibling|TestBindWindowsNativeRsyncSSHPreservesOwnedArguments|TestWindowsNativeRsyncCommandUsesSiblingPairAndEnvironment|TestResolvedSSHCopyCommandUsesNativeWindowsSiblingPair|TestResolvedSSHCopyCommandFailsClosedWithoutNativeWindowsSibling)$' -count=1 -v | |
| - name: Test native Windows Python preflight probes | |
| run: go test ./internal/cli/ -run '^(TestPythonPreflightToolValidationAndTargetFiltering|TestPythonPreflightWindowsProbeUsesLiteralExecutableAndMissingContract)$' -count=1 -v | |
| - name: Test Git workspace coherence | |
| run: go test ./internal/cli/ -run '^(TestWindowsGitRootIdentityAcceptsShortAliasAndRejectsDistinctRoot|TestWindowsGitCoherenceRollbackRestoresIndexAfterSymbolicHeadFailure|TestWindowsGitSeedReplacesUnusableExactRootsAfterVerifiedClone|TestWindowsGitCoherenceSupportsDetachedSparseSplitAndLinkedIndexes|TestWorkspaceOwnerWindowsProtocolBehavior)$' -count=1 -v | |
| connector-lifecycles: | |
| name: Connector Lifecycles | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up Go | |
| uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: false | |
| - name: Test source-derived hermetic lifecycle packages | |
| run: scripts/test-provider-lifecycles.sh | |
| apple-vm: | |
| name: Apple VM | |
| runs-on: macos-15 | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Verify Apple Silicon runner | |
| run: test "$(uname -m)" = arm64 | |
| - name: Set up Node | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: 24 | |
| - name: Test macOS script compatibility | |
| run: PATH="/usr/bin:/bin:$PATH" node --test scripts/mint-aws-devtools-image.test.js | |
| - name: Set up Go | |
| uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: false | |
| - name: Vet native helper | |
| run: go vet ./internal/applevmhelper ./cmd/crabbox-apple-vm-helper | |
| - name: Test native helper and provider | |
| run: go test -race ./internal/applevmhelper ./internal/providers/applevm | |
| - name: Build Swift VM daemon | |
| run: sh scripts/build-vmd.sh | |
| - name: Build native helper with embedded daemon | |
| run: go build -trimpath -tags vmdembed -o /tmp/crabbox-apple-vm-helper ./cmd/crabbox-apple-vm-helper | |
| - name: Verify embedded daemon payload | |
| run: /tmp/crabbox-apple-vm-helper vmd-info | grep -q '"embedded":true' | |
| worker: | |
| name: Worker | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up Node | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| cache-dependency-path: worker/package-lock.json | |
| - name: Install | |
| run: npm ci | |
| working-directory: worker | |
| - name: Format | |
| run: npm run format:check | |
| working-directory: worker | |
| - name: Lint | |
| run: npm run lint | |
| working-directory: worker | |
| - name: Typecheck | |
| run: npm run check | |
| working-directory: worker | |
| - name: Typecheck Node runtime | |
| run: npm run check:node | |
| working-directory: worker | |
| - name: Test | |
| run: npm test | |
| working-directory: worker | |
| - name: Build | |
| run: npm run build | |
| working-directory: worker | |
| - name: Build Cloudflare Dynamic Workers | |
| run: npm run build:cloudflare-dynamic-workers | |
| working-directory: worker | |
| - name: Build Node runtime | |
| run: npm run build:node | |
| working-directory: worker | |
| - name: Check runtime base image pins | |
| run: node scripts/check-docker-base-images.mjs | |
| - name: Build Node runtime image | |
| run: docker build -f worker/Dockerfile.node worker | |
| scripts: | |
| name: Scripts | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Node | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: 24 | |
| - name: Set up Go | |
| uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: false | |
| - name: Install script dependencies | |
| run: sudo apt-get update && sudo apt-get install -y ripgrep | |
| - name: Test | |
| run: node --test scripts/*.test.js | |
| docs: | |
| name: Docs | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Check out | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up Node | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: 24 | |
| - name: Set up Go | |
| uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: false | |
| - name: Check docs | |
| run: scripts/check-docs.sh |