a7b7a82dff
1. 为tox测试命令添加并行执行、覆盖率报告和JUnit结果输出 2. 拆分CI工作流为lint、格式检查、类型检查、安全审计、多矩阵测试和覆盖率汇总 3. 新增release前的预测试步骤,让build依赖测试通过 4. 移除低效的依赖策略测速测试用例 5. 配置多Python版本跨平台测试矩阵并上传测试 artifacts
80 lines
1.5 KiB
YAML
80 lines
1.5 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags: ['v*.*.*']
|
|
|
|
permissions:
|
|
contents: write
|
|
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 }}
|
|
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 build
|
|
|
|
- id: version
|
|
run: echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
|
|
|
|
- uses: actions/upload-artifact@v7
|
|
with:
|
|
name: dist
|
|
path: dist/
|
|
|
|
publish-pypi:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
environment: pypi
|
|
steps:
|
|
- uses: actions/download-artifact@v8
|
|
with:
|
|
name: dist
|
|
path: dist
|
|
|
|
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
|
|
release:
|
|
needs: [build, publish-pypi]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/download-artifact@v8
|
|
with:
|
|
name: dist
|
|
path: dist
|
|
|
|
- uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: dist/*
|
|
generate_release_notes: true
|