Skip to content

Conversation

@dguido
Copy link
Member

@dguido dguido commented Nov 28, 2025

Summary

Modernize GitHub Actions CI infrastructure with faster tooling and updated runners.

Changes

Workflows Updated (8 files)

Workflow Changes
ci.yml uv sync, Python 3.9+, Windows 2025
test.yml uv sync, Python 3.9+, Node 20
docs.yml Updated actions
doctor.yml Simplified setup
pip-audit.yml Updated actions
publish.yml Updated actions
docker.yml Minor updates
issue-metrics.yml Fixed indentation, updated actions

Test Scripts Updated (19 files)

All scripts/ci_test_*.sh now source ci_test_common.sh for:

  • Shared PATH setup for uv-managed virtualenv
  • Wrapper functions for solc-select and slither
  • UV_RUN environment variable support

New File

  • scripts/ci_test_common.sh - Shared CI test setup

Key Improvements

Before After
pip install uv sync (10-100x faster)
Python 3.8-3.12 Python 3.9-3.12
Windows 2022 Windows 2025
Node 16 Node 20 LTS
actions/checkout@v4 actions/checkout@v5
actions/setup-python@v5 actions/setup-python@v6

Backwards Compatibility

  • Scripts work with both pip and uv installations
  • UV_RUN variable enables uv mode when set
  • No changes to test logic, only setup

Dependencies

This PR works best with:

Part of

PR Title Link
Build system migration #2818
Replace linters with ruff #2819
CI modernization This PR
Documentation Pending

🤖 Generated with Claude Code

## Workflow Changes
- Use `uv sync` instead of `pip install` for faster dependency installation
- Update Windows runners from 2022 to 2025
- Update action versions (checkout@v5, setup-python@v6, setup-node@v6)
- Update Python matrix to 3.9-3.12 (drop 3.8)
- Update Node.js from 16 to 20 LTS

## New: scripts/ci_test_common.sh
Shared script that:
- Sets up PATH for uv-managed virtualenv
- Provides wrapper functions for solc-select and slither
- Enables UV_RUN environment variable for test scripts

## Test Script Updates
All ci_test_*.sh scripts now:
- Source ci_test_common.sh for shared setup
- Use $UV_RUN prefix when set (for uv run compatibility)
- Work with both pip and uv installations

## Benefits
- 10-100x faster CI dependency installation with uv
- Newer runner images with better tooling
- Consistent test environment setup
- Backwards compatible (still works with pip)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants