v3.5.10 #26
Workflow file for this run
This file contains hidden or 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: Release | |
on: | |
release: | |
types: [published] | |
permissions: | |
contents: write | |
jobs: | |
build-windows: | |
strategy: | |
matrix: | |
architecture: [x86_64, arm64] | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
pip install --timeout=300 -r requirements.txt | |
- name: Build with Nuitka | |
run: | | |
python -c "from app.common.config import VERSION; f = open('version.txt', 'w'); f.write(VERSION); f.close()" | |
$VERSION = gc version.txt | |
Write-Host "VERSION=$VERSION" | |
echo "VERSION=$VERSION" >> $env:GITHUB_ENV | |
del version.txt | |
python deploy.py | |
- name: Download Inno Setup Translation Files | |
run: | | |
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" | |
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/jrsoftware/issrc/main/Files/Languages/Unofficial/ChineseTraditional.isl" -OutFile "C:\Program Files (x86)\Inno Setup 6\Languages\ChineseTraditional.isl" | |
- name: Build Installer | |
uses: Minionguyjpro/[email protected] | |
with: | |
path: Ghost-Downloader-3.iss | |
- name: Create zip file | |
shell: pwsh | |
run: | | |
$distPath = "dist/Ghost-Downloader-3.dist" | |
$zipFile = "Ghost-Downloader-v${{ env.VERSION }}-Windows-${{ matrix.architecture }}.zip" | |
# Create a zip file containing the contents of Ghost-Downloader.dist, without the folder itself | |
Write-Output "Zipping contents of $distPath..." | |
Compress-Archive -Path "$distPath\*" -DestinationPath $zipFile | |
Write-Output "Zip created at $zipFile" | |
mv dist/Ghost-Downloader-v${{ env.VERSION }}-Windows-Setup.exe dist/Ghost-Downloader-v${{ env.VERSION }}-Windows-${{ matrix.architecture }}-Setup.exe | |
- name: Upload to release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
Ghost-Downloader-v${{ env.VERSION }}-Windows-${{ matrix.architecture }}.zip | |
dist/Ghost-Downloader-v${{ env.VERSION }}-Windows-${{ matrix.architecture }}-Setup.exe | |
build-macos-14-arm: | |
strategy: | |
matrix: | |
architecture: [arm64] | |
runs-on: macos-14 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
pip install --timeout=300 -r requirements.txt | |
- name: Build with Nuitka | |
run: | | |
python3 -c "import sys; sys.path.append('./app/common'); import config; print(config.VERSION)" > version.txt | |
version=$(sed -n '4p' version.txt) | |
echo "VERSION=${version}" >> "$GITHUB_ENV" | |
rm -rf version.txt | |
python3 deploy.py | |
chmod u+x "dist/Ghost-Downloader-3.app/Contents/MacOS/Ghost-Downloader-3" | |
rm -rf "dist/Ghost-Downloader-3.build" | |
rm -rf "dist/Ghost-Downloader-3.dist" | |
mv "dist/Ghost-Downloader-3.app" "dist/Ghost Downloader.app" | |
mv "resources/修复软件损坏" "dist/修复软件损坏" | |
- name: Create DMG | |
run: | | |
ln -s /Applications dist/Applications | |
attempt=0 | |
max_attempts=10 | |
while [ $attempt -lt $max_attempts ]; do | |
hdiutil create -srcfolder "dist/" -volname "Ghost-Downloader" -fs HFS+ \ | |
-fsargs "-c c=64,a=16,e=16" -format UDZO -size 400m \ | |
"Ghost-Downloader-v${{ env.VERSION }}-macOS-${{ matrix.architecture }}.dmg" && break | |
attempt=$((attempt + 1)) | |
echo "Attempt $attempt failed, retrying..." | |
sleep 1 # 等待 1 秒后重试 | |
done | |
if [ $attempt -eq $max_attempts ]; then | |
echo "Failed to create DMG after $max_attempts attempts" | |
fi | |
- name: Upload to release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: Ghost-Downloader-v${{ env.VERSION }}-macOS-${{ matrix.architecture }}.dmg | |
build-macos-13-x86_64: | |
strategy: | |
matrix: | |
architecture: [x86_64] | |
runs-on: macos-13 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Remove problematic brew libs | |
run: | | |
brew remove --force --ignore-dependencies openssl@3 | |
brew cleanup openssl@3 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
pip install --timeout=300 -r requirements.txt | |
- name: Build with Nuitka | |
run: | | |
python3 -c "import sys; sys.path.append('./app/common'); import config; print(config.VERSION)" > version.txt | |
version=$(sed -n '4p' version.txt) | |
echo "VERSION=${version}" >> "$GITHUB_ENV" | |
rm -rf version.txt | |
python3 deploy.py | |
chmod u+x "dist/Ghost-Downloader-3.app/Contents/MacOS/Ghost-Downloader-3" | |
rm -rf "dist/Ghost-Downloader-3.build" | |
rm -rf "dist/Ghost-Downloader-3.dist" | |
mv "dist/Ghost-Downloader-3.app" "dist/Ghost Downloader.app" | |
mv "resources/修复软件损坏" "dist/修复软件损坏" | |
- name: Reinstall openssl libs | |
run: | | |
brew install openssl@3 | |
- name: Create DMG | |
run: | | |
ln -s /Applications dist/Applications | |
sleep 1 | |
hdiutil create -srcfolder "dist/" -volname "Ghost-Downloader-3" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDZO -size 400m "Ghost-Downloader-v${{ env.VERSION }}-macOS-${{ matrix.architecture }}.dmg" | |
- name: Upload to release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: Ghost-Downloader-v${{ env.VERSION }}-macOS-${{ matrix.architecture }}.dmg | |
build-ubuntu: | |
strategy: | |
matrix: | |
architecture: [x86_64, arm64] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libegl1-mesa | |
pip install --timeout=300 -r requirements.txt | |
- name: Build with Nuitka | |
run: | | |
python3 -c "import sys; sys.path.append('./app/common'); import config; print(config.VERSION)" > version.txt | |
version=$(sed -n '4p' version.txt) | |
echo "VERSION=${version}" >> "$GITHUB_ENV" | |
rm -rf version.txt | |
python deploy.py | |
- name: Zip the contents of Ghost-Downloader | |
shell: pwsh | |
run: | | |
$distPath = "dist/Ghost-Downloader-3.dist" | |
$zipFile = "Ghost-Downloader-v${{ env.VERSION }}-Linux-${{ matrix.architecture }}.zip" | |
# Create a zip file containing the contents of Ghost-Downloader.dist, without the folder itself | |
Write-Output "Zipping contents of $distPath..." | |
Compress-Archive -Path "$distPath\*" -DestinationPath $zipFile | |
Write-Output "Zip created at $zipFile" | |
- name: Upload to release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: Ghost-Downloader-v${{ env.VERSION }}-Linux-${{ matrix.architecture }}.zip |