芙芙工具箱 v1.3.6 #6
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Pack Releases | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 版本号 (不带v) | |
required: true | |
release: | |
types: [ published ] | |
jobs: | |
auto-pack-releases: | |
runs-on: windows-latest | |
steps: | |
- name: 处理版本号 | |
shell: pwsh | |
run: | | |
if ($env:GITHUB_EVENT_NAME -eq "workflow_dispatch") { | |
$version = "${{ github.event.inputs.version }}" | |
# 如果版本号以 v 开头,则去掉 v | |
if ($version.StartsWith("v")) { | |
$version = $version.Substring(1) | |
} | |
} else { | |
$version = "${{ github.ref_name }}" | |
# 如果版本号以 refs/tags/ 开头,则去掉 refs/tags/ | |
if ($version.StartsWith("refs/tags/")) { | |
$version = $version.Substring(10) | |
} | |
# 如果版本号以 v 开头,则去掉 v | |
if ($version.StartsWith("v")) { | |
$version = $version.Substring(1) | |
} | |
} | |
Write-Host "Version: $version" | |
# 将版本号写入环境变量 | |
Write-Output "VERSION=$version" | Out-File $env:GITHUB_ENV -Append | |
- name: 检出代码 | |
uses: actions/checkout@v4 | |
- name: 配置 Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
- name: 安装依赖 | |
env: | |
PYTHONIOENCODING: utf-8 | |
# 环境配置的依赖文件中含有打包所需依赖 | |
run: | | |
pip install -r "src/环境配置/requirements.txt" | |
pip list | |
Write-Host "=================UPX====================" | |
$upx_url = (Invoke-WebRequest -Uri https://api.github.com/repos/upx/upx/releases/latest).Content | ConvertFrom-Json | Select-Object -ExpandProperty assets | Where-Object { $_.name -like "*win64.zip" } | Select-Object -ExpandProperty browser_download_url | |
Write-Host "[INFO] Latest UPX download URL: $upx_url" | |
Invoke-WebRequest -Uri $upx_url -OutFile "upx-latest.zip" | |
7z x "upx-latest.zip" -o"upx" | |
$upx_version = (Get-ChildItem -Path "upx" -Directory | Sort-Object Name -Descending | Select-Object -First 1).Name | |
Move-Item "upx\$upx_version\*" "upx" -Verbose | |
Remove-Item "upx\$upx_version" -Verbose -Recurse | |
Remove-Item "upx-latest.zip" -Verbose | |
tree /a /f | |
- name: 复制许可文件 | |
run: | | |
Copy-Item -Path "LICENSE" -Destination "src/LICENSE" -Verbose | |
- name: 移除Git文件 | |
run: | | |
Remove-Item -Path "src/Tools/【实验性工具】/定时闹钟/铃声文件/.gitkeep" -Verbose | |
Remove-Item -Path "src/Tools/进制转换/进制转换(旧).cxx" -Verbose | |
Remove-Item -Path "src/Tools/WSA小工具(终止更新)" -Recurse -Verbose | |
- name: 打包 C++ 文件 | |
run: | | |
windres "src/resource.rc" -o "src/resource.o" -v | |
# Tools/创建文件 | |
clang++ "src/Tools/创建文件/创建文件.cxx" "src/resource.o" -o "src/Tools/创建文件/创建文件.exe" -finput-charset=UTF-8 -fexec-charset=UTF-8 -v | |
Remove-Item -Path "src/Tools/创建文件/创建文件.cxx" -Verbose | |
# Tools/字母大小写互换 | |
clang++ "src/Tools/字母大小写互换/字母大小写互换.cxx" "src/resource.o" -o "src/Tools/字母大小写互换/字母大小写互换.exe" -finput-charset=UTF-8 -fexec-charset=UTF-8 -v | |
Remove-Item -Path "src/Tools/字母大小写互换/字母大小写互换.cxx" -Verbose | |
# Tools/摩斯密码 | |
Copy-Item -Path "src/Tools/摩斯密码/源码/编码源码.cxx" -Destination "src/Tools/摩斯密码/编码.cxx" -Verbose | |
Copy-Item -Path "src/Tools/摩斯密码/源码/解码源码.cxx" -Destination "src/Tools/摩斯密码/解码.cxx" -Verbose | |
Remove-Item -Path "src/Tools/摩斯密码/源码" -Recurse -Verbose | |
clang++ "src/Tools/摩斯密码/编码.cxx" "src/resource.o" -o "src/Tools/摩斯密码/编码.exe" -finput-charset=UTF-8 -fexec-charset=UTF-8 -v | |
clang++ "src/Tools/摩斯密码/解码.cxx" "src/resource.o" -o "src/Tools/摩斯密码/解码.exe" -finput-charset=UTF-8 -fexec-charset=UTF-8 -v | |
Remove-Item -Path "src/Tools/摩斯密码/编码.cxx" -Verbose | |
Remove-Item -Path "src/Tools/摩斯密码/解码.cxx" -Verbose | |
# 移除资源文件 | |
Remove-Item -Path "src/resource.rc" -Verbose | |
Remove-Item -Path "src/resource.o" -Verbose | |
- name: 构建 lite 版 | |
# 整理文件 > 压缩文件 > 清理工作目录 | |
env: | |
PYTHONIOENCODING: utf-8 | |
run: | | |
Copy-Item -Path "src" -Destination "Release/Fufu_Tools.v${{ env.VERSION }}-lite" -Recurse -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}-lite/芙芙工具箱(for安装程序).pyw" -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}-lite/芙芙工具箱(for打包).pyw" -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}-lite/Tools/【实验性工具】/hosts修改/调用(For-打包版).py" -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}-lite/Tools/休息一下/自启动设置(For-打包版).py" -Verbose | |
# 更新版本号 | |
python "自动化脚本/修改版本号.py" "${{ env.VERSION }}" "lite" "Release/Fufu_Tools.v${{ env.VERSION }}-lite" | |
# 压缩为 zip | |
7z a -tzip "Release/Fufu_Tools.v${{ env.VERSION }}-lite.zip" "Release/Fufu_Tools.v${{ env.VERSION }}-lite/*" | |
# 压缩为 7z | |
7z a -t7z "Release/Fufu_Tools.v${{ env.VERSION }}-lite.7z" "Release/Fufu_Tools.v${{ env.VERSION }}-lite/*" | |
# 清理工作目录 | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}-lite" -Recurse -Verbose | |
- name: 构建打包版与安装程序版 | |
# 顺便为安装程序版一起打包,打包完复制一份 | |
env: | |
PYTHONIOENCODING: utf-8 | |
run: | | |
Copy-Item -Path "src" -Destination "Release/Fufu_Tools.v${{ env.VERSION }}" -Recurse -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}/芙芙工具箱.pyw" -Verbose | |
Rename-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}/芙芙工具箱(for打包).pyw" -NewName "芙芙工具箱.pyw" -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}/Tools/【实验性工具】/hosts修改/调用.py" -Verbose | |
Rename-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}/Tools/【实验性工具】/hosts修改/调用(For-打包版).py" -NewName "调用.py" -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}/Tools/休息一下/自启动设置.py" -Verbose | |
Rename-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}/Tools/休息一下/自启动设置(For-打包版).py" -NewName "自启动设置.py" -Verbose | |
python "DEV-PACK.py" "Release/Fufu_Tools.v${{ env.VERSION }}" "src/ico.ico" "Release/logs/pack-exe" -s | |
# 分离安装程序版 | |
Copy-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}" -Destination "Release/Fufu_Tools.v${{ env.VERSION }}-exe" -Recurse -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}/芙芙工具箱(for安装程序).exe" -Verbose | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}-exe/芙芙工具箱.exe" -Verbose | |
Rename-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}-exe/芙芙工具箱(for安装程序).exe" -NewName "芙芙工具箱.exe" -Verbose | |
# 更新版本号 - 分离完后再更新版本号,如果后续有修改需要打包的文件的版本号,请在运行 DEV-PACK.py 之前更新版本号 | |
python "自动化脚本/修改版本号.py" "${{ env.VERSION }}" "pack" "Release/Fufu_Tools.v${{ env.VERSION }}" | |
python "自动化脚本/修改版本号.py" "${{ env.VERSION }}" "exe" "Release/Fufu_Tools.v${{ env.VERSION }}-exe" | |
# 压缩为 zip - 打包版 | |
7z a -tzip "Release/Fufu_Tools.v${{ env.VERSION }}.zip" "Release/Fufu_Tools.v${{ env.VERSION }}/*" | |
# 压缩为 7z - 打包版 | |
7z a -t7z "Release/Fufu_Tools.v${{ env.VERSION }}.7z" "Release/Fufu_Tools.v${{ env.VERSION }}/*" | |
# 压缩为 7z - 压缩等级 9 - 极限压缩 - 打包版 | |
7z a -t7z -mx9 "Release/Fufu_Tools.v${{ env.VERSION }}-Extreme_compression.7z" "Release/Fufu_Tools.v${{ env.VERSION }}/*" | |
# 清理工作目录 - 打包版 | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}" -Recurse -Verbose | |
# 编译安装程序 - 安装程序版 | |
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/jrsoftware/issrc/main/Files/Languages/Unofficial/ChineseSimplified.isl" -OutFile "C:\Program Files (x86)\Inno Setup 6\Languages\ChineseSimplified.isl" | |
iscc "Installer/Installer.iss" | |
# 清理工作目录 - 安装程序版 | |
Remove-Item -Path "Release/Fufu_Tools.v${{ env.VERSION }}-exe" -Recurse -Verbose | |
- name: 上传构建文件 | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Release | |
path: Release/** | |
- name: 发布至发行版 | |
if: ${{ github.event_name != 'workflow_dispatch' }} | |
uses: softprops/action-gh-release@v2 | |
with: | |
files: | | |
Release/Fufu_Tools.v${{ env.VERSION }}.zip | |
Release/Fufu_Tools.v${{ env.VERSION }}.7z | |
Release/Fufu_Tools.v${{ env.VERSION }}-lite.zip | |
Release/Fufu_Tools.v${{ env.VERSION }}-lite.7z | |
Release/Fufu_Tools_Setup.v${{ env.VERSION }}.exe | |
Release/Fufu_Tools.v${{ env.VERSION }}-Extreme_compression.7z | |
- name: 上传日志文件 | |
if: ${{ github.event_name != 'workflow_dispatch' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: packaging.log | |
path: Release/packaging.log |