Skip to content

nightly-CI

nightly-CI #71

Workflow file for this run

name: nightly-CI
on:
schedule:
- cron: "17 9 * * *"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: nightly-ci-${{ github.ref }}
cancel-in-progress: false
jobs:
ground-truth:
name: ground truth shard ${{ matrix.shard_index }}
runs-on: ubuntu-24.04
timeout-minutes: 360
strategy:
# One shard's unresolved instances must not cancel the other 19 —
# the run's purpose is the full-coverage picture.
fail-fast: false
matrix:
shard_index:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
env:
BUNDLE_TAR: dist/run-swe-rollouts-nightly-linux-amd64.bundle.tar
DATASET: parquet
DATASET_FILE: https://raw.githubusercontent.com/SWE-bench/SWE-bench/50b9f47a7cacd7084ae900b27840a3c7b1c8ca24/data/SWE-bench_Verified/test.parquet
DATASET_SPLIT: train
NUM_SHARDS: 20
steps:
- uses: actions/checkout@v4
# ~25 task images per shard exhaust the runner's default free
# space even with per-instance cleanup; drop the preinstalled
# toolchains we never use (~20 GB).
- name: free runner disk
run: |
sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc /opt/hostedtoolcache/CodeQL
df -h /
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- uses: docker/setup-buildx-action@v3
- uses: actions/cache@v4
with:
path: ~/.cache/huggingface
key: swebench-verified-hf-${{ runner.os }}
- name: lock eval example
working-directory: examples/run-swe-rollouts
run: uv lock
- name: build eval bundle
working-directory: examples/run-swe-rollouts
run: uv run agentix build . --name run-swe-rollouts:nightly --platform linux/amd64 --output "$BUNDLE_TAR"
- name: deploy eval bundle
working-directory: examples/run-swe-rollouts
run: |
set -euo pipefail
BUNDLE=$(uv run agentix deploy docker "$BUNDLE_TAR" --platform linux/amd64 --format json | jq -r .bundle)
if [ -z "$BUNDLE" ] || [ "$BUNDLE" = "null" ]; then
echo "error: agentix deploy did not produce a bundle ref" >&2
exit 1
fi
echo "BUNDLE=$BUNDLE" >> "$GITHUB_ENV"
- name: evaluate ground-truth patches
working-directory: examples/run-swe-rollouts
env:
SHARD_INDEX: ${{ matrix.shard_index }}
run: |
uv run python main.py \
--ground-truth \
--fail-on-unresolved \
--rmi-after \
--bundle "$BUNDLE" \
--docker-platform linux/amd64 \
--dataset "$DATASET" \
--dataset-file "$DATASET_FILE" \
--split "$DATASET_SPLIT" \
--num-shards "$NUM_SHARDS" \
--shard-index "$SHARD_INDEX" \
--out "runs/ground-truth-shard-${SHARD_INDEX}"
- uses: actions/upload-artifact@v4
if: always()
with:
name: swebench-verified-ground-truth-${{ matrix.shard_index }}
path: examples/run-swe-rollouts/runs/ground-truth-shard-${{ matrix.shard_index }}/