From bdfee7bee4805cb6e66845a456f1ea4b819b4907 Mon Sep 17 00:00:00 2001 From: gooker_young Date: Sat, 27 Jun 2026 16:00:44 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20=E7=AE=80=E5=8C=96CI/CD=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=86=97=E4=BD=99=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4=E5=92=8C=E8=A6=86=E7=9B=96=E7=8E=87=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构了GitHub Actions工作流,合并重复的CI任务,移除了预发布测试环节、多余的格式检查和安全审计任务,精简了 tox 测试命令与矩阵配置,同时删除了本地 tox 配置中的覆盖率和测试结果上报参数,优化整体流水线效率。 --- .github/workflows/ci.yml | 101 +++------------------------------- .github/workflows/release.yml | 18 ------ tox.ini | 3 +- 3 files changed, 8 insertions(+), 114 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b5e7a36..a5c93af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,16 +3,14 @@ name: CI on: push: branches: [ main, develop ] - pull_request: - branches: [ main, develop ] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - lint: - name: Lint (Ruff) + lint-and-typecheck: + name: Lint & Typecheck runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -27,66 +25,15 @@ jobs: - run: uv sync - run: uv run ruff check src tests - - format-check: - name: Format Check (Ruff) - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: astral-sh/setup-uv@v5 - with: - enable-cache: true - - - uses: actions/setup-python@v5 - with: - python-version: '3.13' - - - run: uv sync - - run: uv run ruff format --check src tests - - typecheck: - name: Typecheck (Pyrefly) - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: astral-sh/setup-uv@v5 - with: - enable-cache: true - - - uses: actions/setup-python@v5 - with: - python-version: '3.13' - - - run: uv sync - run: uv run pyrefly check . - security-audit: - name: Security Audit - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: astral-sh/setup-uv@v5 - with: - enable-cache: true - - - uses: actions/setup-python@v5 - with: - python-version: '3.13' - - - run: uv sync - - run: uv tool run pip-audit --desc on - test: - name: Test (${{ matrix.os }} / py${{ matrix.python-version }}) + name: Test (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ['3.8', '3.10', '3.13'] steps: - uses: actions/checkout@v4 @@ -96,42 +43,8 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: ${{ matrix.python-version }} + python-version: | + 3.8 + 3.13 - - name: Run tests - run: uvx tox run -e py${{ matrix.python-version }} - - - name: Upload test results - uses: actions/upload-artifact@v7 - if: always() - with: - name: test-results-${{ matrix.os }}-py${{ matrix.python-version }} - path: | - test-results-*.xml - coverage-*.xml - if-no-files-found: ignore - - coverage: - name: Coverage Summary - needs: test - runs-on: ubuntu-latest - if: always() - steps: - - uses: actions/checkout@v4 - - - uses: actions/download-artifact@v8 - with: - path: artifacts - - - name: Collect coverage files - run: | - find artifacts -name "coverage-*.xml" -exec cp {} . \; - ls -la coverage-*.xml 2>/dev/null || echo "No coverage files found" - - - name: Publish test results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() && github.event_name == 'pull_request' - with: - files: artifacts/**/test-results-*.xml - comment_mode: off - fail_on: nothing + - run: uvx tox run -e py38,py313 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d4f2024..83c22a6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,25 +9,7 @@ permissions: id-token: write jobs: - test: - name: Pre-release Test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: astral-sh/setup-uv@v5 - with: - enable-cache: true - - - uses: actions/setup-python@v5 - with: - python-version: '3.13' - - - run: uv sync - - run: uv run pytest -m "not slow" -n auto --cov=pyflowx - build: - needs: test runs-on: ubuntu-latest outputs: version: ${{ steps.version.outputs.version }} diff --git a/tox.ini b/tox.ini index 7e9af8d..4c84322 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ uv_sync = true deps = .[dev] commands = - pytest -m "not slow" -n auto --cov=pyflowx --cov-report=term --cov-report=xml:coverage-{envname}.xml --junitxml=test-results-{envname}.xml {posargs} + pytest -m "not slow" {posargs} passenv = CI GITHUB_* @@ -19,4 +19,3 @@ passenv = setenv = PYTHONPATH = {toxinidir}/src PYTHONDONTWRITEBYTECODE = 1 - COVERAGE_FILE = .coverage.{envname}