Skip to content

芙芙工具箱 v1.3.6 #6

芙芙工具箱 v1.3.6

芙芙工具箱 v1.3.6 #6

Workflow file for this run

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