From 05f0f678f080c35045ff6eb5aeb23e028e019bc1 Mon Sep 17 00:00:00 2001 From: Sam Hou Date: Thu, 1 May 2025 15:49:10 +0800 Subject: [PATCH] Create build.yml Signed-off-by: Sam Hou --- .github/workflows/build.yml | 113 ++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..d9ee871 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,113 @@ +name: Build +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + name: build repo + runs-on: windows-latest + + steps: + - name: Checkout repository # 检出仓库 + uses: actions/checkout@v2 # 使用 GitHub 官方的 checkout action + + - name: Set git fetch depth # 设置 git fetch 深度 + run: | + git fetch --prune --unshallow # 获取完整的 git 历史记录 + + - name: Set up Python # 设置 Python 环境 + uses: actions/setup-python@v4 + with: + python-version: '3.8' + cache: 'pip' # caching pip dependencies + - run: | + python -m pip install --upgrade pip + pip install build + python -m pip install --upgrade twine + pip install pyinstaller + pip install -r requirements.txt + + - name: Set up Node.js # 设置 Node.js 环境 + uses: actions/setup-node@v2 + with: + node-version: 20 + + - name: Build Web UI # 构建 Web UI + run: | + cd .. + git clone https://github.com/xaoyaoo/wxdump_web.git + Compress-Archive -Path wxdump_web -DestinationPath wxdump_web.zip + Compress-Archive -Path PyWxDump -DestinationPath PyWxDump.zip + cd wxdump_web + npm list -g + npm install + npm run build + + - name: copy web ui to pywxdump/ui/web + run: | + cd .. + ls -l wxdump_web/dist + cp -r wxdump_web/dist PyWxDump/pywxdump/ui/web + ls -l PyWxDump/pywxdump/ui/web + cd PyWxDump + +# - name: Build Export UI # 构建导出的 Web UI +# run: | +# cd .. +# cd wxdump_web +# cp src/main.ts src/t.ts +# cp src/main.ts.export src/main.ts +# npm install +# npm run build +# +# - name: copy Export UI and Export UI to pywxdump/ui/web and pywxdump/ui/export +# run: | +# cd .. +# ls -l wxdump_web/dist +# cp -r wxdump_web/dist PyWxDump/pywxdump/ui/export +# ls -l PyWxDump/pywxdump/ui/export +# cd PyWxDump + + - name: Build package # 构建包 + run: | + python -m build + pip install -U . + + - name: Generate File pywxdump.spec # 生成 pywxdump.spec 文件 + run: | + python tests/build_exe.py + ls + ls dist + cat dist/pywxdump.spec + + - name: Build Executable + run: | + pyinstaller --clean --distpath=dist dist/pywxdump.spec + + - name: test + run: | + ls -l dist + ls -l "${{ github.workspace }}" + + - name: Zip Executable + run: | + cd .. + ls + Compress-Archive -Path PyWxDump/dist/*.exe,PyWxDump/dist/*.whl -DestinationPath exe_whl.zip + Compress-Archive -Path PyWxDump.zip,wxdump_web.zip -DestinationPath Source.zip + ls + cp exe_whl.zip PyWxDump/dist/exe_whl.zip + cp Source.zip PyWxDump/dist/Source.zip + ls PyWxDump/dist + cd PyWxDump + - name: Upload a Build Artifact + uses: actions/upload-artifact@v4.6.2 + with: + path: | + dist/*.exe + dist/*.whl + dist/exe_whl.zip + dist/Source.zip