v3.5.12 #29
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-2022 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- 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(); f = open('Ghost-Downloader-3.iss', 'r+'); _ = f.read().replace('APPLICATION_VERSION', VERSION); f.seek(0); f.write(_); f.truncate(); f.close();" | |
$VERSION = gc version.txt | |
Write-Host "VERSION=$VERSION" | |
echo "VERSION=$VERSION" >> $env:GITHUB_ENV | |
del version.txt | |
python deploy.py | |
mv dist/Ghost-Downloader-3.dist dist/Ghost-Downloader-3-Unsigned.dist | |
- name: upload-unsigned-artifact | |
id: upload-unsigned-artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Ghost-Downloader-v${{ env.VERSION }}-Windows-${{ matrix.architecture }}-Unsigned | |
path: dist/Ghost-Downloader-3-Unsigned.dist | |
- name: Sign | |
uses: signpath/[email protected] | |
with: | |
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' | |
organization-id: '${{ secrets.SIGNPATH_ORGANIZATION_ID }}' | |
project-slug: 'Ghost-Downloader-3' | |
signing-policy-slug: 'release-signing' | |
github-artifact-id: '${{ steps.upload-unsigned-artifact.outputs.artifact-id }}' | |
wait-for-completion: true | |
output-artifact-directory: 'dist/Ghost-Downloader-3.dist' | |
- 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..." | |
7z a -tzip -mx=9 -m0=LZMA Ghost-Downloader-v${{ env.VERSION }}-Windows-${{ matrix.architecture }}.zip dist/Ghost-Downloader-3.dist/* | |
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 | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- 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 +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 | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- 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 +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 | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- 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 | |
chmod +x "dist/Ghost-Downloader-3.dist/Ghost-Downloader-3.bin" | |
- name: Tar the contents of Ghost-Downloader | |
shell: pwsh | |
run: | | |
$distPath = "dist/Ghost-Downloader-3.dist" | |
$tarFile = "Ghost-Downloader-v${{ env.VERSION }}-Linux-${{ matrix.architecture }}.tar.xz" | |
# Create a tar.xz archive containing the contents of Ghost-Downloader.dist, without the folder itself | |
Write-Output "Creating tar.xz archive of $distPath..." | |
tar -cJf $tarFile -C $distPath . | |
Write-Output "Archive created at $tarFile" | |
- 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 }}.tar.xz |