From 91bffff05d2c3042f8d84b8b195621c1b6f62ea5 Mon Sep 17 00:00:00 2001 From: xiatianxuan Date: Fri, 1 May 2026 21:13:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0github=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 117 ++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 3 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..493b739 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,117 @@ +name: Release + +on: + push: + branches: + - main + +permissions: + contents: write + +jobs: + # 发布 PyPI 包(sbackup-cli) + publish-pypi: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v3 + with: + version: "latest" + + - name: Build + run: uv build + + - name: Publish to PyPI + run: uv publish --token ${{ secrets.PYPI_TOKEN }} + + # 构建 Windows 可执行文件 + build-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: pip install nuitka py7zr tqdm zstandard + + - name: Build executable + run: | + python -m nuitka ` + --standalone --onefile ` + --output-filename=sbackup.exe ` + --include-package=sbackup ` + --include-data-dir=sbackup/locales=sbackup/locales ` + --include-package=py7zr ` + --include-package=tqdm ` + --include-package=zstandard ` + main.py + + - name: Upload to Release + uses: softprops/action-gh-release@v1 + with: + files: sbackup.exe + + # 构建 macOS 可执行文件 + build-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: pip install nuitka py7zr tqdm zstandard + + - name: Build executable + run: | + python -m nuitka \ + --standalone --onefile \ + --output-filename=sbackup-macos \ + --include-package=sbackup \ + --include-data-dir=sbackup/locales=sbackup/locales \ + --include-package=py7zr \ + --include-package=tqdm \ + --include-package=zstandard \ + main.py + + - name: Upload to Release + uses: softprops/action-gh-release@v1 + with: + files: sbackup-macos + + # 构建 Linux 可执行文件 + build-linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: pip install nuitka py7zr tqdm zstandard + + - name: Build executable + run: | + python -m nuitka \ + --standalone --onefile \ + --output-filename=sbackup-linux \ + --include-package=sbackup \ + --include-data-dir=sbackup/locales=sbackup/locales \ + --include-package=py7zr \ + --include-package=tqdm \ + --include-package=zstandard \ + main.py + + - name: Upload to Release + uses: softprops/action-gh-release@v1 + with: + files: sbackup-linux diff --git a/pyproject.toml b/pyproject.toml index 4061928..25f04bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "sbackup" +name = "sbackup-cli" version = "1.0.0" description = "智能文件夹备份工具,支持增量备份和自定义配置" readme = "README.md" diff --git a/uv.lock b/uv.lock index fd8cc09..2bb7498 100644 --- a/uv.lock +++ b/uv.lock @@ -699,7 +699,7 @@ wheels = [ ] [[package]] -name = "sbackup" +name = "sbackup-cli" version = "1.0.0" source = { virtual = "." } dependencies = [