Skip to content

v3.5.10

v3.5.10 #26

Workflow file for this run

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