Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
300 commits
Select commit Hold shift + click to select a range
2b9804f
Merge pull request #143 from codelion/fix-debug-logging
codelion Jul 13, 2025
0a559b3
bump version for new release
codelion Jul 13, 2025
079c8d8
Merge pull request #145 from codelion/fix-version-error
codelion Jul 13, 2025
043e120
bump version
codelion Jul 13, 2025
a86ab90
Fix MAP-Elite algorithm binning issue with adaptive feature coordinates
claude[bot] Jul 14, 2025
ffcd01a
Implement adaptive diversity binning for MAP-Elite algorithm
claude[bot] Jul 14, 2025
a6cbb8c
Merge pull request #148 from codelion/claude/issue-147-20250714_140431
codelion Jul 15, 2025
956525a
Merge branch 'main' into fix-remove-setuppy
codelion Jul 15, 2025
1ee049a
fix
codelion Jul 15, 2025
7591d04
Merge pull request #146 from codelion/fix-remove-setuppy
codelion Jul 15, 2025
8b6f53b
modify for MAP-Elite Algorithm
yyh-sjtu Jul 16, 2025
180be03
Merge pull request #152 from yyh-sjtu/MAP-Elite
codelion Jul 17, 2025
5d09cb9
Update _version.py
codelion Jul 17, 2025
e327163
Delete claude-code-review.yml
codelion Jul 17, 2025
f035a05
Merge pull request #153 from codelion/fix-new-release
codelion Jul 17, 2025
d93c772
Enhance MAP-Elites feature binning and diversity handling
codelion Jul 18, 2025
602b368
Improve MAP-Elites feature dimension handling
codelion Jul 18, 2025
6264c74
Merge pull request #154 from codelion/fix-map-elites
codelion Jul 18, 2025
c2f668a
Switch to process-based parallelism and remove threading
codelion Jul 21, 2025
89189ca
Merge pull request #155 from codelion/feat-move-to-parallel-process-e…
codelion Jul 21, 2025
5997144
Fix iteration counting and checkpoint logic in evolution
codelion Jul 22, 2025
ae8d9b2
Merge pull request #157 from codelion/fix-zero-iteration
codelion Jul 22, 2025
b3f7120
Warn when 'combined_score' metric is missing
codelion Jul 22, 2025
f3b004c
Merge pull request #158 from codelion/fix-add-warning
codelion Jul 22, 2025
fe3430f
Update prompt sampling and config for artifacts
codelion Jul 22, 2025
3f2a575
Clarify artifact serialization limit in comments
codelion Jul 22, 2025
e152825
Merge pull request #159 from codelion/fix-remove-trunc-for-programs
codelion Jul 22, 2025
9704f2f
Add configurable program length check
tonyxty Jul 28, 2025
c4c842c
Add feature extraction and labeling thresholds to config
codelion Jul 29, 2025
64214d3
Merge pull request #163 from tonyxty/main
codelion Jul 29, 2025
b7a9d82
Refactor and rename LLM prompt optimization example
codelion Jul 29, 2025
8c1d7bc
Update the evaluator.py in function_minimization
Ethan-han921 Jul 29, 2025
0b8ca98
Update evaluator.py
Ethan-han921 Jul 29, 2025
accd01c
Refactor prompt-dataset config matching and add emotion benchmark
codelion Jul 30, 2025
8b46f0e
Merge pull request #169 from Ethan-han921/debug/function_minization
codelion Jul 30, 2025
a0ffadf
Merge branch 'main' into fix-llm-optimization
codelion Jul 30, 2025
b838099
Update emotion_prompt.txt
codelion Jul 30, 2025
32158b7
Add GSM8K prompt and dataset support for math tasks
codelion Jul 30, 2025
4714754
Prevent repeated migration of programs between islands
codelion Jul 30, 2025
6d6d50e
Fix island initialization to use copies of best program
codelion Jul 30, 2025
cd5ccef
Add custom prompt feature extraction for MAP-Elites
codelion Jul 30, 2025
65118b5
Update evaluator threshold logic and config parameters
codelion Jul 30, 2025
2c8e989
Update evaluator.py
codelion Jul 30, 2025
b9468db
Update config.yaml
codelion Jul 31, 2025
892f80b
Update config.yaml
codelion Jul 31, 2025
f903f7e
Update README.md
codelion Jul 31, 2025
bc66c5b
Merge pull request #178 from codelion/fix-llm-optimization
codelion Jul 31, 2025
5845e2f
Add weighted LLM average to evaluation metrics
codelion Aug 1, 2025
56da917
Add AlgoTune tasks for OpenEvolve
richardcsuwandi Aug 4, 2025
a8c4b43
adaption for NVIDIA API: stream=True
einzigsue Aug 4, 2025
8cb953e
allow file extention to be the same as the initial program
einzigsue Aug 4, 2025
03d7d2a
reset OpenAILLM
einzigsue Aug 5, 2025
4bc59f8
Update evaluator.py
codelion Aug 5, 2025
6bb16a1
Refactored the AlgoTune task adapter to work with external AlgoTune r…
richardcsuwandi Aug 7, 2025
a182584
Pass timeout to OpenAI client object
mechakotik Aug 7, 2025
e92fe3f
Merge pull request #188 from mechakotik/timeout-fix
codelion Aug 8, 2025
c91dd58
Merge pull request #134 from HenriqueAssumpcao/main
codelion Aug 8, 2025
30cd4d1
Merge branch 'main' into fix-llm-feedback
codelion Aug 8, 2025
2c7dc5c
add gepa examples
codelion Aug 9, 2025
0ff356c
as
codelion Aug 9, 2025
0b7096a
Merge pull request #184 from codelion/fix-llm-feedback
codelion Aug 9, 2025
85a0f21
feat: Implement automatic artifact cleanup
mruckman1 Aug 10, 2025
ddf42e2
Merge pull request #193 from mruckman1/feature/artifact-cleanup
codelion Aug 10, 2025
6bb671c
feat: add MLIR attention optimization example (OpenEvolve)
mycpuorg Jul 8, 2025
4009cc1
Merge pull request #196 from mycpuorg/duckevolve_openevolve
codelion Aug 10, 2025
3c8324c
suffix default to .py
einzigsue Aug 12, 2025
71bef23
Fix metadata field access in PromptSampler (#203)
hyounjunl Aug 12, 2025
571343f
suffix default to .py
einzigsue Aug 12, 2025
5a5bd3b
Merge pull request #182 from einzigsue/einzigsue_adoption_suffix
codelion Aug 13, 2025
bbb437b
Merge branch 'main' into pr/181
codelion Aug 13, 2025
1da250c
address comments
codelion Aug 13, 2025
c0850f1
Update _version.py
codelion Aug 13, 2025
599cd54
Merge pull request #181 from richardcsuwandi/main
codelion Aug 13, 2025
4c4e621
Update task_adapter.py
codelion Aug 13, 2025
d1b271e
Create run_benchmark.py
codelion Aug 13, 2025
9cf5ab0
Update task_adapter.py
codelion Aug 13, 2025
43e806c
fixes
codelion Aug 13, 2025
e1e7fbc
Update task_adapter.py
codelion Aug 13, 2025
3f2a048
Update task_adapter.py
codelion Aug 13, 2025
f6a715b
Update task_adapter.py
codelion Aug 13, 2025
4377db8
Update task_adapter.py
codelion Aug 13, 2025
b27101c
Update task_adapter.py
codelion Aug 13, 2025
0f59155
Update task_adapter.py
codelion Aug 13, 2025
9b288fd
Update task_adapter.py
codelion Aug 13, 2025
0919762
Update task_adapter.py
codelion Aug 13, 2025
624a640
Update task_adapter.py
codelion Aug 14, 2025
23ca50f
Update task_adapter.py
codelion Aug 14, 2025
5352eb9
Merge pull request #204 from hyounjunlee/bug/prompt-sampler-metadata-…
codelion Aug 15, 2025
546f8d8
Create GEMINI_FLASH_2.5_EXPERIMENT_REPORT.md
codelion Aug 15, 2025
8655bf9
Create O4_MINI_EXPERIMENT_REPORT.md
codelion Aug 15, 2025
c9279b7
Merge branch 'main' into fix-algotune-parsing-config
codelion Aug 15, 2025
490ced2
add examples
codelion Aug 15, 2025
102d419
fix
codelion Aug 15, 2025
4c6535e
fix feature stats persistance
codelion Aug 15, 2025
b3101f2
Update _version.py
codelion Aug 15, 2025
b7da4fd
fix parallal island siaollation
codelion Aug 15, 2025
dcc96c2
add note in readme
codelion Aug 15, 2025
f86e2ce
Update process_parallel.py
codelion Aug 15, 2025
da78af9
Update test_checkpoint_resume.py
codelion Aug 15, 2025
0bd81b5
Update test_process_parallel.py
codelion Aug 15, 2025
db73436
Merge pull request #211 from codelion/fix-algotune-parsing-config
codelion Aug 15, 2025
69c6033
clarify prompt design
codelion Aug 16, 2025
1963d77
Update database.py
codelion Aug 16, 2025
72f7367
fix tests
codelion Aug 16, 2025
c9ee8cd
Update _version.py
codelion Aug 16, 2025
1bff46c
Merge pull request #215 from codelion/fix-update-doc-readme
codelion Aug 16, 2025
161c701
refactor prompt templates
codelion Aug 17, 2025
21d6d68
Update _version.py
codelion Aug 17, 2025
5d09222
Merge pull request #217 from codelion/feat-refactor-prompt-templates
codelion Aug 17, 2025
3cc2359
Update sampler.py
codelion Aug 19, 2025
74423f0
Update _version.py
codelion Aug 19, 2025
26a4609
Merge pull request #221 from codelion/fix-sampler
codelion Aug 19, 2025
1bda7fc
fixes
codelion Aug 20, 2025
3ce52ae
fixes
codelion Aug 20, 2025
24ff60a
Merge pull request #224 from codelion/fix-some-bugs
codelion Aug 20, 2025
7f1f294
fix
codelion Aug 21, 2025
3a0e57b
Merge pull request #227 from codelion/fix-openai-model-handling
codelion Aug 21, 2025
d795ac4
fixes
codelion Aug 22, 2025
fe7f5ec
optimize config
codelion Aug 22, 2025
78e153b
f
codelion Aug 22, 2025
0c0e026
fix unit tests
codelion Aug 22, 2025
8941266
Merge pull request #228 from codelion/fix--func-min-example
codelion Aug 22, 2025
38a95d8
Update config.yaml
codelion Aug 22, 2025
d813696
Merge pull request #229 from codelion/fix-config-eval
codelion Aug 22, 2025
3450a99
Enhance affine_transform_2d config and evaluator
codelion Aug 23, 2025
cf6bf04
Add support for gpt-oss-* models as reasoning models, and allow for r…
theahura Aug 24, 2025
8d19744
Merge pull request #231 from theahura/patch-1
codelion Aug 24, 2025
41cf803
Refine AlgoTune configs and optimization hints
codelion Aug 24, 2025
0cfbd1b
Remove experiment reports and update AlgoTune README
codelion Aug 24, 2025
5ecd98f
Merge branch 'main' into Update-algotune-example
codelion Aug 24, 2025
5d7bc88
Add initial best_programs for multiple algotune tasks
codelion Aug 24, 2025
bd7e14b
Update _version.py
codelion Aug 24, 2025
5eb3dba
Merge pull request #232 from codelion/Update-algotune-example
codelion Aug 24, 2025
75cb01b
as
codelion Aug 25, 2025
05501c8
Update README.md
codelion Aug 25, 2025
d64ef35
Update README.md
codelion Aug 25, 2025
8acbe4c
Update README.md
codelion Aug 25, 2025
5178fc8
Update README.md
codelion Aug 25, 2025
ade305e
Update README.md
codelion Aug 25, 2025
3716970
as
codelion Aug 25, 2025
3606401
Merge pull request #234 from codelion/fix-readme
codelion Aug 25, 2025
3d9d124
Update release.yml
codelion Aug 25, 2025
5233292
Update _version.py
codelion Aug 25, 2025
0933f53
Merge pull request #235 from codelion/fix-docker
codelion Aug 25, 2025
04fbbde
Update README.md
codelion Aug 25, 2025
7ffb3e7
Merge pull request #236 from codelion/codelion-patch-1
codelion Aug 25, 2025
5c11381
Add package data for default prompts and clean up templates
codelion Aug 26, 2025
0ac2cd9
Update _version.py
codelion Aug 26, 2025
69703e4
Merge pull request #237 from codelion/fix-prompt-template-packaging
codelion Aug 26, 2025
d7e47b2
add
codelion Aug 26, 2025
79a9e9e
Update _version.py
codelion Aug 26, 2025
4a6fb6f
Update process_parallel.py
codelion Aug 26, 2025
8e8879f
Merge pull request #238 from codelion/feat-add-early-stopping
codelion Aug 26, 2025
6306112
Update README.md
codelion Aug 28, 2025
7b413bf
Merge pull request #240 from codelion/codelion-patch-1
codelion Aug 28, 2025
ef85a18
Update evaluate_prompts.py
codelion Aug 28, 2025
2613c8d
Update evaluator_system_message.txt
codelion Aug 28, 2025
380d924
Merge pull request #244 from codelion/fix-prompt-optimizer-example
codelion Aug 28, 2025
6bc3a72
Update openai.py
codelion Aug 29, 2025
54674f2
Update _version.py
codelion Aug 29, 2025
4d15932
Merge pull request #248 from codelion/codelion-patch-1
codelion Aug 29, 2025
2c7fa8f
f
codelion Aug 30, 2025
5c0e157
Update _version.py
codelion Aug 30, 2025
709f866
Merge pull request #249 from codelion/fix-early-stopping
codelion Aug 30, 2025
bf78982
fix timeout
codelion Aug 30, 2025
ec44ff2
Update _version.py
codelion Aug 30, 2025
6f20b85
Merge pull request #250 from codelion/fix-process-timeout
codelion Aug 30, 2025
154837e
save prompts in the checkpoint output folder
zigzagcai Sep 1, 2025
025f00b
Merge pull request #251 from zigzagcai/refine-trace
codelion Sep 3, 2025
4ad23fc
Add LLM config option to allow the use of custom LLM clients
mmalmrud Sep 3, 2025
d3a6bbe
Update database.py
codelion Sep 4, 2025
3171fa0
add tests
codelion Sep 4, 2025
37ba871
fxies
codelion Sep 4, 2025
62a6a04
df
codelion Sep 4, 2025
038bda9
Update python-test.yml
codelion Sep 4, 2025
57ab802
Update _version.py
codelion Sep 4, 2025
ab38102
update min required python toto3.10
codelion Sep 4, 2025
fc41f84
update
codelion Sep 4, 2025
1fb2b70
fixe tests
codelion Sep 4, 2025
4f8ff58
as
codelion Sep 4, 2025
88351c9
fix tests
codelion Sep 4, 2025
061b8ef
Update test_concurrent_island_access.py
codelion Sep 4, 2025
34501c9
fix test
codelion Sep 4, 2025
1716596
Create test_library_api.py
codelion Sep 4, 2025
1a6e089
fix
codelion Sep 4, 2025
0968aca
tests fixed
codelion Sep 4, 2025
0e75a13
j
codelion Sep 4, 2025
4800929
skip slow tess
codelion Sep 4, 2025
812cace
f
codelion Sep 4, 2025
7b673a7
Merge pull request #256 from codelion/fix-islands-map-conflict
codelion Sep 4, 2025
139cbc7
Merge pull request #254 from mmalmrud/feat-custom-llm-client
codelion Sep 5, 2025
91cd9f4
fix
codelion Sep 6, 2025
863f7d5
Merge branch 'main' into fix-reasoning-effort
codelion Sep 6, 2025
2495dd3
Update _version.py
codelion Sep 6, 2025
7630298
Merge pull request #260 from codelion/fix-reasoning-effort
codelion Sep 6, 2025
30e8a65
feature: Add evolution trace logging for RL training support
codelion Sep 6, 2025
e253be4
Merge pull request #261 from totoluo/feat-export-trace
codelion Sep 8, 2025
ba08e78
Update test_library_api.py
codelion Sep 8, 2025
10a6331
Merge pull request #262 from codelion/fix-test-api
codelion Sep 8, 2025
c4da64c
Update README.md
Ag2S1 Sep 11, 2025
341a424
Merge pull request #263 from Ag2S1/patch-1
codelion Sep 11, 2025
90da257
Update README.md
codelion Sep 13, 2025
ac4ceba
Merge pull request #265 from codelion/fix-update-readme
codelion Sep 13, 2025
47f8e56
Update README.md
codelion Sep 13, 2025
0d8db3b
Merge pull request #266 from codelion/codelion-patch-1
codelion Sep 13, 2025
e4cc1c6
Update sampler.py
codelion Sep 14, 2025
17421c1
Update _version.py
codelion Sep 14, 2025
12cacc7
Merge pull request #268 from codelion/fix-random-seed
codelion Sep 14, 2025
0ac6bc4
Update process_parallel.py
codelion Sep 16, 2025
579a3bc
fxies
codelion Sep 16, 2025
3f544a5
fixes
codelion Sep 16, 2025
a2eea2f
Update _version.py
codelion Sep 16, 2025
1ffe5c8
Merge pull request #272 from codelion/fix-file-suffix
codelion Sep 16, 2025
7b391ae
Update README.md
codelion Sep 17, 2025
508ffda
Update README.md
codelion Sep 17, 2025
367bb56
Update README.md
codelion Sep 17, 2025
165a77a
Update README.md
codelion Sep 17, 2025
6f50125
Update README.md
codelion Sep 17, 2025
5fc9fd4
Update README.md
codelion Sep 17, 2025
dad6a09
Merge pull request #273 from codelion/feat-update-readme
codelion Sep 17, 2025
db6cda6
escape html in sidebar
amueller Sep 17, 2025
45dda46
Merge pull request #274 from amueller/htmlescape_sidebar_code
codelion Sep 17, 2025
25884ed
enable resizing of the sidebar
amueller Sep 17, 2025
9f70b35
add diff to parent node
amueller Sep 17, 2025
5da7990
fix merge issue
amueller Sep 17, 2025
7486028
Merge pull request #275 from amueller/diff_view_ui
codelion Sep 18, 2025
8fe0217
fix
codelion Oct 5, 2025
3edfef1
Update _version.py
codelion Oct 5, 2025
5e2d645
Update test_sample_from_island_ratios.py
codelion Oct 5, 2025
545f72f
Merge pull request #279 from codelion/fix-parallel-sample-island
codelion Oct 5, 2025
3abf767
Remove worker-to-island mapping logic and related tests
codelion Oct 7, 2025
92c7808
Allow custom metrics to override built-in features
codelion Oct 7, 2025
5dd0434
Fix migration to use MAP-Elites deduplication logic
codelion Oct 7, 2025
4e2b2f6
Skip migration of programs with duplicate code
codelion Oct 7, 2025
b4161b9
Fix island set consistency and update migration tests
codelion Oct 7, 2025
f567876
Update _version.py
codelion Oct 7, 2025
78c43bb
Merge pull request #280 from codelion/fixes-islands
codelion Oct 7, 2025
e6845ee
Use combined_score for target_score analysis instead of an average of…
theahura Oct 9, 2025
c736a30
Merge pull request #286 from theahura/patch-3
codelion Oct 9, 2025
c925fe1
Add novelty-based rejection sampling to prevent duplicate programs
bluebread Oct 10, 2025
27b6f29
Fix novelty feature bugs and update test configuration
bluebread Oct 10, 2025
1ea8cc6
Add missing attribution and source information in novelty judging prompt
bluebread Oct 10, 2025
9df937a
Merge pull request #287 from bluebread/novelty
codelion Oct 10, 2025
abd622c
Allow setting programs_per_island from config
theahura Oct 13, 2025
6dc0036
Update config.py
theahura Oct 13, 2025
e9a70d2
Merge pull request #291 from theahura/patch-4
codelion Oct 13, 2025
e9ce7fa
Update _version.py
codelion Oct 13, 2025
2c23f87
Merge pull request #292 from codelion/codelion-patch-1
codelion Oct 13, 2025
2628339
Align parameter names for the `generate_with_context` function
chxu2000 Oct 17, 2025
717c988
Merge pull request #296 from chxu2000/fix/align-param-name
codelion Oct 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Claude Code

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]

jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@beta
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read
# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
# model: "claude-opus-4-20250514"

# Optional: Customize the trigger phrase (default: @claude)
# trigger_phrase: "/claude"

# Optional: Trigger when specific user is assigned to an issue
# assignee_trigger: "claude-bot"

# Optional: Allow Claude to run specific commands
# allowed_tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"

# Optional: Add custom instructions for Claude to customize its behavior for your project
# custom_instructions: |
# Follow our coding standards
# Ensure all new code has tests
# Use TypeScript for new files

# Optional: Custom environment variables for Claude
# claude_env: |
# NODE_ENV: test

111 changes: 89 additions & 22 deletions .github/workflows/python-test.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,96 @@
name: Python Unit Tests
name: Tests

on: [push, pull_request]

jobs:
test:
unit-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Cache pip packages
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"

- name: Run unit tests
env:
OPENAI_API_KEY: test # Mock API key for unit tests
run: |
# Run unit tests (all tests except integration/)
python -m unittest discover -s tests -p "test_*.py" -v

integration-tests:
needs: unit-tests # Only run if unit tests pass
runs-on: ubuntu-latest
timeout-minutes: 30 # Limit integration tests to 30 minutes
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.9'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .
# Install test dependencies
pip install pytest numpy

- name: Run unit tests
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
python -m unittest discover -s tests -p "test_*.py" -v
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Cache pip packages
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
pip install optillm

- name: Start optillm server
run: |
echo "Starting optillm server for integration tests..."
OPTILLM_API_KEY=optillm HF_TOKEN=${{ secrets.HF_TOKEN }} optillm --model google/gemma-3-270m-it --port 8000 &
echo $! > server.pid

# Wait for server to be ready
echo "Waiting for server to start..."
sleep 15

# Test server health
curl -s http://localhost:8000/health || echo "Server health check failed"
env:
OPTILLM_API_KEY: optillm
HF_TOKEN: ${{ secrets.HF_TOKEN }}

- name: Run integration tests (excluding slow tests)
env:
OPENAI_API_KEY: optillm
OPTILLM_API_KEY: optillm
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: |
# Run only fast integration tests, skip slow tests that require real LLM
pytest tests/integration -v --tb=short -m "not slow"

- name: Stop optillm server
if: always()
run: |
if [ -f server.pid ]; then
kill $(cat server.pid) || true
rm server.pid
fi
pkill -f "optillm.*8000" || true
84 changes: 23 additions & 61 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,45 +29,30 @@ jobs:
uses: pypa/gh-action-pypi-publish@release/v1

docker-publish:
name: Publish Docker image
runs-on: ubuntu-22.04
name: Build and publish Docker image
runs-on: ubuntu-latest
needs: pypi-publish
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4

# Add aggressive cleanup before any Docker operations
- name: Free disk space
run: |
# Clean Docker
docker system prune -af
docker image prune -af
docker builder prune -af

df -h

- name: Checkout
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver-opts: |
image=moby/buildkit:buildx-stable-1
network=host
buildkitd-flags: --debug


- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# Extract metadata for Docker image
- name: Extract metadata for Docker

- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
Expand All @@ -76,46 +61,23 @@ jobs:
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest

# Build and push Docker image for AMD64
- name: Build and push Docker image AMD64
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha,scope=openevolve-amd64
cache-to: type=gha,scope=openevolve-amd64,mode=max
outputs: type=registry,compression=zstd,compression-level=5

# Cleanup after AMD64 build
- name: Cleanup after AMD64 build
run: |
docker system prune -af
docker builder prune -af
df -h

# Build and push Docker image for ARM64
- name: Build and push Docker image ARM64
labels: |
org.opencontainers.image.title=OpenEvolve
org.opencontainers.image.description=Open-source evolutionary coding agent
org.opencontainers.image.vendor=OpenEvolve
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.documentation=https://github.com/${{ github.repository }}#readme
org.opencontainers.image.licenses=Apache-2.0

- name: Build and push multi-platform Docker image
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
platforms: linux/amd64,linux/arm64
push: true
platforms: linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha,scope=openevolve-arm64
cache-to: type=gha,scope=openevolve-arm64,mode=max
outputs: type=registry,compression=zstd,compression-level=5

# Final cleanup
- name: Final cleanup
run: |
docker system prune -af
docker builder prune -af
find /tmp -type f -user $(id -u) -exec rm -f {} + 2>/dev/null || true
df -h
cache-from: type=gha,scope=openevolve-multiarch
cache-to: type=gha,scope=openevolve-multiarch,mode=max
provenance: mode=max
sbom: true
Loading