Prepare portable bundle on Windows as a second option.

This commit is contained in:
Roman Telezhynskyi 2024-03-01 13:44:15 +02:00
parent f48dd59087
commit 18545d6355
3 changed files with 45 additions and 11 deletions

View File

@ -349,8 +349,8 @@ for:
- (python --version) - (python --version)
# Install the build dependencies of the project. # Install the build dependencies of the project.
- (python -m pip install --upgrade pip) - (python -m pip install --upgrade pip)
- if "%DEPLOY%" == "true" (python -m pip install dropbox) - if "%DEPLOY%" == "true" (python -m pip install dropbox py7zr)
- python -m pip install conan==1.61.0 - python -m pip install conan==1.63.0
- dir "C:\" - dir "C:\"
- dir "C:\Qt" - dir "C:\Qt"
- dir "C:\Qt\Tools" - dir "C:\Qt\Tools"
@ -481,7 +481,7 @@ for:
- if "%DEPLOY%" == "true" (python --version) - if "%DEPLOY%" == "true" (python --version)
# Install the build dependencies of the project. # Install the build dependencies of the project.
- if "%DEPLOY%" == "true" (python -m pip install --upgrade pip) - if "%DEPLOY%" == "true" (python -m pip install --upgrade pip)
- if "%DEPLOY%" == "true" (python -m pip install dropbox) - if "%DEPLOY%" == "true" (python -m pip install dropbox py7zr)
# Trick qmake to not work through MSYS # Trick qmake to not work through MSYS
- del /F "C:\Program Files\Git\usr\bin\sh.exe" - del /F "C:\Program Files\Git\usr\bin\sh.exe"
- del /F "C:\Program Files\Git\bin\sh.exe" - del /F "C:\Program Files\Git\bin\sh.exe"
@ -643,7 +643,7 @@ for:
fi fi
- sudo python3 -m pip install --upgrade pip - sudo python3 -m pip install --upgrade pip
- pip3 install --user --upgrade pip dropbox 'urllib3<2.0' - pip3 install --user --upgrade pip dropbox py7zr 'urllib3<2.0'
- export QTDIR=`$(brew --prefix qt6)` - export QTDIR=`$(brew --prefix qt6)`
- export PATH="$PATH:`python3 -m site --user-base`/bin:$QTDIR/bin" - export PATH="$PATH:`python3 -m site --user-base`/bin:$QTDIR/bin"
- echo $PATH - echo $PATH
@ -827,7 +827,7 @@ for:
fi fi
- sudo python3 -m pip install --upgrade pip - sudo python3 -m pip install --upgrade pip
- pip3 install --user --upgrade pip dropbox 'urllib3<2.0' - pip3 install --user --upgrade pip dropbox py7zr 'urllib3<2.0'
- export PATH="`brew --prefix qbs`/bin:$PATH" - export PATH="`brew --prefix qbs`/bin:$PATH"
- echo $PATH - echo $PATH
- clang --version - clang --version

View File

@ -1,7 +1,9 @@
$env:BUILD_FOLDER = "$env:APPVEYOR_BUILD_FOLDER\build"; $env:BUILD_FOLDER = "$env:APPVEYOR_BUILD_FOLDER\build";
$env:INSTALL_ROOT = "$env:BUILD_FOLDER\install-root\valentina"; $env:INSTALL_ROOT = "$env:BUILD_FOLDER\install-root\valentina";
$file_name = "valentina-$env:TARGET_PLATFORM-$env:COMPILER-$env:ARCH-$env:QT_VERSION-$env:APPVEYOR_REPO_BRANCH-$env:APPVEYOR_REPO_COMMIT.exe"; $type = "$env:TARGET_PLATFORM-$env:COMPILER-$env:ARCH-$env:QT_VERSION-$env:APPVEYOR_REPO_BRANCH-$env:APPVEYOR_REPO_COMMIT";
$file_name = "valentina-${type}.exe";
$portable_file_name = "valentina-portable-${type}.7z";
if($env:DEPLOY -eq "true") { if($env:DEPLOY -eq "true") {
Write-Host "[CI] Preparing installer." -ForegroundColor Green; Write-Host "[CI] Preparing installer." -ForegroundColor Green;
@ -21,7 +23,7 @@ if($env:DEPLOY -eq "true") {
Write-Host "[CI] Cleaning done." -ForegroundColor Green; Write-Host "[CI] Cleaning done." -ForegroundColor Green;
} }
Write-Host "[CI] Uploading." -ForegroundColor Green; Write-Host "[CI] Uploading installer." -ForegroundColor Green;
& $env:PYTHON\python.exe "$env:APPVEYOR_BUILD_FOLDER\scripts\deploy.py" upload $env:ACCESS_TOKEN "$env:INSTALL_ROOT\ValentinaInstaller.exe" "/0.7.x/Windows/$file_name"; & $env:PYTHON\python.exe "$env:APPVEYOR_BUILD_FOLDER\scripts\deploy.py" upload $env:ACCESS_TOKEN "$env:INSTALL_ROOT\ValentinaInstaller.exe" "/0.7.x/Windows/$file_name";
if ($LastExitCode -ne 0) { if ($LastExitCode -ne 0) {
Write-Error -Message "[CI] Error uploading an artifact." -Category InvalidResult; Write-Error -Message "[CI] Error uploading an artifact." -Category InvalidResult;
@ -29,6 +31,25 @@ if($env:DEPLOY -eq "true") {
} else { } else {
Write-Host "[CI] Uploading has been finished." -ForegroundColor Green; Write-Host "[CI] Uploading has been finished." -ForegroundColor Green;
} }
Write-Host "[CI] Starting packing." -ForegroundColor Green;
Remove-Item -Path "$env:INSTALL_ROOT\ValentinaInstaller.exe";
& $env:PYTHON\python.exe "$env:APPVEYOR_BUILD_FOLDER\scripts\deploy.py" pack "$env:INSTALL_ROOT" "$env:BUILD_FOLDER\install-root\$portable_file_name";
if ($LastExitCode -ne 0) {
Write-Error -Message "[CI] Error creating an archive." -Category InvalidResult;
exit 1;
} else {
Write-Host "[CI] Done." -ForegroundColor Green;
}
Write-Host "[CI] Uploading portable bundle." -ForegroundColor Green;
& $env:PYTHON\python.exe "$env:APPVEYOR_BUILD_FOLDER\scripts\deploy.py" upload $env:ACCESS_TOKEN "$env:BUILD_FOLDER\install-root\$portable_file_name" "/0.7.x/Windows/$portable_file_name";
if ($LastExitCode -ne 0) {
Write-Error -Message "[CI] Error uploading an artifact." -Category InvalidResult;
exit 1;
} else {
Write-Host "[CI] Uploading has been finished." -ForegroundColor Green;
}
Exit 0; Exit 0;
} }
else { else {

View File

@ -5,6 +5,7 @@ import pathlib
import re import re
import shutil import shutil
import sys import sys
import py7zr
import dropbox import dropbox
from dropbox import DropboxOAuth2FlowNoRedirect from dropbox import DropboxOAuth2FlowNoRedirect
@ -47,15 +48,23 @@ def run_pack(source, destination):
formats = { formats = {
".zip": "zip", ".zip": "zip",
".tar.xz": "xztar" ".tar.xz": "xztar",
".7z": "7zip"
} }
suffix = ''.join(pathlib.Path(base).suffixes) suffix = ''.join(pathlib.Path(base).suffixes)
format = formats.get(suffix)
archive_from = pathlib.Path(source).parent archive_from = pathlib.Path(source).parent
archive_to = os.path.basename(source.strip(os.sep)) archive_to = os.path.basename(source.strip(os.sep))
print(source, destination, archive_from) print(source, destination, archive_from)
shutil.make_archive(name, format, archive_from, archive_to) format = formats.get(suffix)
shutil.move(f'{name}{suffix}', destination) if format:
if format == "7zip":
with py7zr.SevenZipFile(f"{name}{suffix}", 'w') as archive:
archive.writeall(source, arcname=os.path.basename(source))
else:
shutil.make_archive(name, format, archive_from, archive_to)
shutil.move(f'{name}{suffix}', destination)
else:
print("Unsupported archive format.")
def run_upload(refresh_token, file, path): def run_upload(refresh_token, file, path):
@ -136,6 +145,10 @@ def run_clean(refresh_token):
r'^valentina-Windows7\+-mingw-x86-Qt.*-develop-[a-f0-9]{40}\.exe$', r'^valentina-Windows7\+-mingw-x86-Qt.*-develop-[a-f0-9]{40}\.exe$',
r'^valentina-Windows10\+-msvc-x64-Qt.*-develop-[a-f0-9]{40}\.exe$', r'^valentina-Windows10\+-msvc-x64-Qt.*-develop-[a-f0-9]{40}\.exe$',
r'^valentina-Windows7\+-msvc-x86-Qt.*-develop-[a-f0-9]{40}\.exe$', r'^valentina-Windows7\+-msvc-x86-Qt.*-develop-[a-f0-9]{40}\.exe$',
r'^valentina-portable-Windows10\+-mingw-x64-Qt.*-develop-[a-f0-9]{40}\.7z$',
r'^valentina-portable-Windows7\+-mingw-x86-Qt.*-develop-[a-f0-9]{40}\.7z$',
r'^valentina-portable-Windows10\+-msvc-x64-Qt.*-develop-[a-f0-9]{40}\.7z$',
r'^valentina-portable-Windows7\+-msvc-x86-Qt.*-develop-[a-f0-9]{40}\.7z$',
r'^valentina-macOS_11\+-Qt.*-x64-develop-[a-f0-9]{40}\.dmg$', r'^valentina-macOS_11\+-Qt.*-x64-develop-[a-f0-9]{40}\.dmg$',
r'^valentina-macOS_11\+-Qt.*-x64-develop-multibundle-[a-f0-9]{40}\.dmg$', r'^valentina-macOS_11\+-Qt.*-x64-develop-multibundle-[a-f0-9]{40}\.dmg$',
r'^valentina-macOS_10.13\+-Qt.*-x64-develop-[a-f0-9]{40}\.dmg$', r'^valentina-macOS_10.13\+-Qt.*-x64-develop-[a-f0-9]{40}\.dmg$',