Skip to content

Record lastCheckpointBytes from the Worker where the image lives. #8

Record lastCheckpointBytes from the Worker where the image lives.

Record lastCheckpointBytes from the Worker where the image lives. #8

Workflow file for this run

# Copyright 2026 The Actordock Authors.
# SPDX-License-Identifier: Apache-2.0
name: e2e-kind
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.24.x"
- name: Test
run: go test ./...
e2e-functional:
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.24.x"
- name: Install kind
run: |
curl -fsSL -o ./kind "https://kind.sigs.k8s.io/dl/v0.27.0/kind-linux-amd64"
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
- name: Create cluster and deploy
env:
KIND_CLUSTER_NAME: actordock-functional
POLICY: fifo
run: |
chmod +x hack/*.sh
./hack/kind-up.sh
- name: Functional e2e (all four policies via SetPolicy)
env:
KIND_CLUSTER_NAME: actordock-functional
E2E_SUITE: functional
SANDBOX_COUNT: "5"
MAX_RUNNING: "4"
MIN_WORKERS: "2"
run: ./hack/verify-local.sh
- name: Dump on failure
if: failure()
run: |
kubectl --context kind-actordock-functional -n actordock get pods -o wide || true
kubectl --context kind-actordock-functional -n actordock describe pods || true
kubectl --context kind-actordock-functional -n actordock logs deploy/controlplane --all-containers=true || true
kubectl --context kind-actordock-functional -n actordock logs statefulset/worker --all-containers=true || true
- name: Teardown
if: always()
env:
KIND_CLUSTER_NAME: actordock-functional
run: ./hack/kind-down.sh || true
e2e-eval:
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
policy: [fifo, random, lru-idle, resource-evict]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.24.x"
- name: Install kind
run: |
curl -fsSL -o ./kind "https://kind.sigs.k8s.io/dl/v0.27.0/kind-linux-amd64"
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
- name: Create cluster and deploy
env:
KIND_CLUSTER_NAME: actordock-eval-${{ matrix.policy }}
POLICY: ${{ matrix.policy }}
run: |
chmod +x hack/*.sh
./hack/kind-up.sh
- name: Eval e2e (S1–S5 for ${{ matrix.policy }})
env:
KIND_CLUSTER_NAME: actordock-eval-${{ matrix.policy }}
E2E_SUITE: eval
E2E_TIMEOUT: 30m
MIN_WORKERS: "4"
EVAL_POLICY: ${{ matrix.policy }}
EVAL_OUT_DIR: docs/eval/results
run: |
mkdir -p docs/eval/results
./hack/verify-local.sh
test -f "docs/eval/results/policy_report_${{ matrix.policy }}.json"
ls -la docs/eval/results/
- name: Upload policy report
if: success()
uses: actions/upload-artifact@v4
with:
name: policy-compare-${{ matrix.policy }}
path: docs/eval/results/policy_report_${{ matrix.policy }}.json
if-no-files-found: error
- name: Dump on failure
if: failure()
run: |
kubectl --context kind-actordock-eval-${{ matrix.policy }} -n actordock get pods -o wide || true
kubectl --context kind-actordock-eval-${{ matrix.policy }} -n actordock describe pods || true
kubectl --context kind-actordock-eval-${{ matrix.policy }} -n actordock logs deploy/controlplane --all-containers=true || true
kubectl --context kind-actordock-eval-${{ matrix.policy }} -n actordock logs statefulset/worker --all-containers=true || true
- name: Teardown
if: always()
env:
KIND_CLUSTER_NAME: actordock-eval-${{ matrix.policy }}
run: ./hack/kind-down.sh || true
e2e-eval-summary:
runs-on: ubuntu-latest
needs: e2e-eval
if: always() && needs.e2e-eval.result != 'cancelled'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.24.x"
- name: Download per-policy eval artifacts
uses: actions/download-artifact@v4
with:
pattern: policy-compare-*
path: docs/eval/results/parts
merge-multiple: true
- name: Merge policy comparison table
run: |
mkdir -p docs/eval/results
echo "==> downloaded reports:"
find docs/eval/results/parts -type f -name 'policy_report_*.json' -print
go run ./hack/merge-eval-results docs/eval/results/parts docs/eval/results/policy_compare.md
cat docs/eval/results/policy_compare.md
- name: Upload merged comparison
uses: actions/upload-artifact@v4
with:
name: policy-compare-all
path: docs/eval/results/policy_compare.md
if-no-files-found: error