mirror of
https://github.com/miurahr/aqtinstall.git
synced 2025-12-16 20:27:05 +03:00
Some checks failed
Check tox tests / Check packaging 📦 (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Publish Python 🐍 distributions 📦 to PyPI / Build package (push) Has been cancelled
Test on GH actions environment / test (binary, windows-latest, 3.13, 6.6.3) (push) Has been cancelled
Test on GH actions environment / test (standard, ubuntu-latest, 3.13, 6.5.3) (push) Has been cancelled
Test on GH actions environment / test (standard, ubuntu-latest, 3.13, 6.6.3) (push) Has been cancelled
Test on GH actions environment / test (standard, ubuntu-latest, 3.13, 6.8.0) (push) Has been cancelled
Test on GH actions environment / test (standard, ubuntu-latest, 3.13, 6.8.1) (push) Has been cancelled
Test on GH actions environment / test (standard, windows-latest, 3.13, 6.5.3) (push) Has been cancelled
Test on GH actions environment / test (standard, windows-latest, 3.13, 6.6.3) (push) Has been cancelled
Test on GH actions environment / test (standard, windows-latest, 3.13, 6.7.3) (push) Has been cancelled
Publish Python 🐍 distributions 📦 to PyPI / publish Python 🐍 distributions 📦 to PyPI (push) Has been cancelled
Co-authored-by: Hiroshi Miura <miurahr@linux.com>
195 lines
7.3 KiB
YAML
195 lines
7.3 KiB
YAML
name: Test on GH actions environment
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- releases/*
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [windows-latest, ubuntu-latest]
|
|
py: ["3.13"]
|
|
qtver: [6.5.3, 6.6.3]
|
|
artifact: [standard]
|
|
include:
|
|
- os: windows-latest
|
|
py: "3.13"
|
|
qtver: 6.6.3
|
|
artifact: binary
|
|
- os: windows-latest
|
|
py: "3.13"
|
|
qtver: 6.7.3
|
|
artifact: standard
|
|
- os: ubuntu-latest
|
|
py: "3.13"
|
|
qtver: 6.8.0
|
|
artifact: standard
|
|
- os: ubuntu-latest
|
|
py: "3.13"
|
|
# 6.8.1 introduces Operations elements in Updates.xml
|
|
qtver: 6.8.1
|
|
artifact: standard
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 20
|
|
fetch-tags: true
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.py }}
|
|
- name: Build and install
|
|
if: matrix.artifact == 'standard'
|
|
run: |
|
|
python -m pip install ./ --user
|
|
- name: Build Standalone binary(linux,mac)
|
|
if: matrix.artifact == 'binary' && matrix.os != 'windows-latest'
|
|
run: |
|
|
python -m venv venv
|
|
source venv/bin/activate
|
|
python -m pip install -U pip wheel setuptools setuptools_scm pyinstaller
|
|
python -m pip install .
|
|
python tools/build_standalone.py
|
|
deactivate
|
|
rm -rf venv
|
|
shell: bash
|
|
- name: Build Standalone binary(windows)
|
|
if: matrix.artifact == 'binary' && matrix.os == 'windows-latest'
|
|
run: |
|
|
python -m venv venv
|
|
venv/Scripts/activate.ps1
|
|
python -m pip install -U pip wheel setuptools setuptools_scm pyinstaller
|
|
python -m pip install .
|
|
python tools/build_standalone.py
|
|
deactivate
|
|
Remove-Item venv -Recurse -Force
|
|
shell: pwsh
|
|
- name: Run aqt
|
|
run: |
|
|
import os
|
|
import pathlib
|
|
import subprocess
|
|
timeout = 300
|
|
os.mkdir("Qt")
|
|
os.chdir("Qt")
|
|
artifact = "${{ matrix.artifact }}"
|
|
platform = "${{ matrix.os }}"
|
|
qtver = "${{ matrix.qtver }}"
|
|
env = os.environ.copy()
|
|
github_workspace = pathlib.Path(env["GITHUB_WORKSPACE"])
|
|
if artifact == "binary":
|
|
if platform.startswith("windows"):
|
|
bin_path = str(github_workspace / "dist" / "aqt.exe")
|
|
else:
|
|
bin_path = (github_workspace / "dist" / "aqt").as_posix()
|
|
prefix = [bin_path, "install-qt"]
|
|
else:
|
|
prefix = ["python", "-m", "aqt", "install-qt"]
|
|
command_line = []
|
|
command_line.extend(prefix)
|
|
if platform == "windows-latest":
|
|
if qtver.startswith('6.6'):
|
|
args = ["windows", "desktop", qtver, "win64_mingw"]
|
|
else:
|
|
args = ["windows", "desktop", qtver, "win64_msvc2019_64"]
|
|
elif platform.startswith("macOS"):
|
|
args = ["mac", "desktop", qtver, "clang_64"]
|
|
elif qtver.startswith('6.8'):
|
|
args = ["linux", "desktop", qtver, "linux_gcc_64"]
|
|
else:
|
|
args = ["linux", "desktop", qtver, "gcc_64"]
|
|
command_line.extend(args)
|
|
command_line.extend(["--archives", "qtbase", "icu", "qt"])
|
|
env["AQT_CONFIG"] = (github_workspace / "ci" / "settings.ini").as_posix()
|
|
env["LOG_CFG"] = (github_workspace / "ci" / "logging.ini").as_posix()
|
|
print("Execute: {}".format(command_line))
|
|
try:
|
|
res = subprocess.run(command_line, timeout=timeout, check=True, env=env)
|
|
except subprocess.CalledProcessError as cpe:
|
|
exit(cpe.returncode)
|
|
assert res.returncode == 0
|
|
if qtver.startswith('6.6'):
|
|
command_line6 = []
|
|
command_line6.extend(prefix)
|
|
if platform.startswith("ubuntu"):
|
|
command_line6.extend(["linux", "android", qtver, "android_armv7"])
|
|
timeout = 360
|
|
elif platform.startswith("macOS"):
|
|
command_line6.extend(["mac", "ios", qtver, "ios"])
|
|
timeout = 360
|
|
else:
|
|
command_line6.extend(["windows", "android", qtver, "android_armv7"])
|
|
timeout = 360
|
|
print("Execute: {}".format(command_line6))
|
|
try:
|
|
res = subprocess.run(command_line6, timeout=timeout, check=True)
|
|
except subprocess.CalledProcessError as cpe:
|
|
exit(cpe.returncode)
|
|
assert res.returncode == 0
|
|
shell: python
|
|
working-directory: ${{ github.workspace }}
|
|
- name: Test qmake -query
|
|
run: |
|
|
import os
|
|
import pathlib
|
|
from subprocess import CalledProcessError, PIPE, run
|
|
os.chdir("Qt")
|
|
platform = "${{ matrix.os }}"
|
|
qtver = "${{ matrix.qtver }}"
|
|
if platform == "windows-latest":
|
|
if qtver.startswith('6.6'):
|
|
arch_dir = 'mingw_64'
|
|
else:
|
|
arch_dir = 'msvc2019_64'
|
|
elif platform == "macOS-latest":
|
|
arch_dir = 'clang_64'
|
|
else:
|
|
arch_dir = 'gcc_64'
|
|
try:
|
|
res = run([f"{qtver}/{arch_dir}/bin/qmake", "-query"], timeout=15, check=True, stdout=PIPE)
|
|
except CalledProcessError as cpe:
|
|
exit(cpe.returncode)
|
|
assert res.returncode == 0
|
|
print('Check prefix path qmake recognized...')
|
|
qt_prefix_path = pathlib.Path.cwd() / qtver / arch_dir
|
|
for line in res.stdout.splitlines():
|
|
if line.startswith(b'QT_INSTALL_PREFIX'):
|
|
result = line[18:].decode('UTF-8')
|
|
assert qt_prefix_path.samefile(result)
|
|
print('QT_INSTALL_PREFIX {}\nExpected path {}'.format(result, qt_prefix_path))
|
|
if qtver.startswith('6.6'):
|
|
print('Check prefix path by android/ios qmake recognized...')
|
|
if platform == "windows-latest":
|
|
target_dir = 'android_armv7'
|
|
qmake = os.path.join(qtver, 'android_armv7', 'bin', 'qmake.bat')
|
|
elif platform == "macOS-latest":
|
|
target_dir = 'ios'
|
|
qmake = os.path.join(qtver, 'ios', 'bin', 'qmake')
|
|
else:
|
|
target_dir = 'android_armv7'
|
|
qmake = os.path.join(qtver, 'android_armv7', 'bin', 'qmake')
|
|
try:
|
|
res = run([qmake, "-query"], timeout=15, check=True, stdout=PIPE)
|
|
except CalledProcessError as cpe:
|
|
exit(cpe.returncode)
|
|
assert res.returncode == 0
|
|
expected_path = pathlib.Path.cwd() / qtver / target_dir
|
|
for line in res.stdout.splitlines():
|
|
if line.startswith(b'QT_INSTALL_PREFIX'):
|
|
result = line[18:].decode('UTF-8')
|
|
print('QT_INATALL_PREFIX {}\nExpected path {}'.format(result, expected_path))
|
|
shell: python
|
|
working-directory: ${{ github.workspace }}
|
|
- uses: actions/upload-artifact@v4
|
|
if: matrix.artifact == 'binary'
|
|
with:
|
|
name: aqt-${{ matrix.os }}-standalone
|
|
path: dist\aqt*
|