Skip to content

Commit

Permalink
CI: refactor azure pipelines scripts (#250)
Browse files Browse the repository at this point in the history
* CI: refactoring Azure pipeline scripts

Signed-off-by: Hiroshi Miura <[email protected]>

* CI: azure (wip)

Signed-off-by: Hiroshi Miura <[email protected]>

* Add list command

Signed-off-by: Hiroshi Miura <[email protected]>

* CI: skip installation of package when install command(linux)

Signed-off-by: Hiroshi Miura <[email protected]>

* fix typo

Signed-off-by: Hiroshi Miura <[email protected]>
  • Loading branch information
miurahr authored May 24, 2021
1 parent 4aadee3 commit 337eb98
Show file tree
Hide file tree
Showing 3 changed files with 110 additions and 256 deletions.
71 changes: 0 additions & 71 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,74 +57,3 @@ jobs:
matrix: $[ dependencies.MatricesGenerator.outputs['mtrx.linux'] ]
steps:
- template: ci/steps.yml

- job: LinuxSpecificMirror
displayName: Linux (Specific Mirror)
variables:
PYTHON_VERSION: '3.8'
QT_VERSION: 6.1.0
HOST: linux
TARGET: desktop
ARCH: gcc_64
ARCHDIR: gcc_64
QT_BASE_MIRROR: http://mirrors.ocf.berkeley.edu/qt/
pool:
vmImage: 'ubuntu-20.04'
steps:
- template: ci/steps.yml

- job: LinuxSubArchives
displayName: Linux (subarchive spcified)
variables:
PYTHON_VERSION: '3.8'
QT_VERSION: 5.15.0
HOST: linux
TARGET: desktop
ARCH: gcc_64
ARCHDIR: gcc_64
SUBARCHIVES: qtbase qttools qt icu
pool:
vmImage: 'ubuntu-18.04'
steps:
- template: ci/steps.yml

- job: LinuxSrc
displayName: Linux (source)
variables:
PYTHON_VERSION: '3.8'
QT_VERSION: 6.1.0
HOST: linux
TARGET: desktop
TOOL_NAME: src
SUBARCHIVES: qt
pool:
vmImage: 'ubuntu-18.04'
steps:
- template: ci/steps.yml

- job: LinuxExamples
displayName: Linux (Examples)
variables:
PYTHON_VERSION: '3.8'
QT_VERSION: 5.15.0
HOST: linux
TARGET: desktop
TOOL_NAME: examples
pool:
vmImage: 'ubuntu-18.04'
steps:
- template: ci/steps.yml

- job: LinuxDoc
displayName: Linux (doc)
variables:
PYTHON_VERSION: '3.8'
QT_VERSION: 5.15.0
HOST: linux
TARGET: desktop
TOOL_NAME: doc
SUBARCHIVES: qtdoc
pool:
vmImage: 'ubuntu-18.04'
steps:
- template: ci/steps.yml
54 changes: 34 additions & 20 deletions ci/generate_azure_pipelines_matrices.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,20 @@
import json
from itertools import product

MIRROR = "http://mirrors.ocf.berkeley.edu/qt/"


class BuildJob:
def __init__(self, qt_version, host, target, arch, archdir, module=None):
def __init__(self, command, qt_version, host, target, arch, archdir, *, module=None, mirror=None, subarchives=None):
self.command = command
self.qt_version = qt_version
self.host = host
self.target = target
self.arch = arch
self.archdir = archdir
self.module = module
self.mirror = mirror
self.subarchives = subarchives


class PlatformBuildJobs:
Expand Down Expand Up @@ -44,57 +49,62 @@ def __init__(self, platform, build_jobs):
# Linux Desktop
for qt_version in qt_versions:
linux_build_jobs.append(
BuildJob(qt_version, 'linux', 'desktop', 'gcc_64', 'gcc_64')
BuildJob('install', qt_version, 'linux', 'desktop', 'gcc_64', 'gcc_64')
)

# Mac Desktop
for qt_version in qt_versions:
mac_build_jobs.append(
BuildJob(qt_version, 'mac', 'desktop', 'clang_64', "clang_64")
BuildJob('install', qt_version, 'mac', 'desktop', 'clang_64', "clang_64")
)

# Windows Desktop
windows_build_jobs.extend(
[
BuildJob('5.14.2', 'windows', 'desktop', 'win64_msvc2017_64', 'msvc2017_64'),
BuildJob('5.14.2', 'windows', 'desktop', 'win32_msvc2017', 'msvc2017'),
BuildJob('5.13.2', 'windows', 'desktop', 'win64_msvc2015_64', 'msvc2015_64'),
BuildJob('5.15.2', 'windows', 'desktop', 'win64_mingw81', 'mingw81_64'),
BuildJob('install', '5.14.2', 'windows', 'desktop', 'win64_msvc2017_64', 'msvc2017_64', mirror=MIRROR),
BuildJob('install', '5.14.2', 'windows', 'desktop', 'win32_msvc2017', 'msvc2017', mirror=MIRROR),
BuildJob('install', '5.13.2', 'windows', 'desktop', 'win64_msvc2015_64', 'msvc2015_64', mirror=MIRROR),
BuildJob('install', '5.15.2', 'windows', 'desktop', 'win64_mingw81', 'mingw81_64', mirror=MIRROR),
# Known issue with Azure-Pipelines environment: it has a pre-installed mingw81 which cause link error.
# BuildJob('5.15.0', 'windows', 'desktop', 'win32_mingw81', 'mingw81_32'),
BuildJob('5.15.2', 'windows', 'desktop', 'win64_msvc2019_64', 'msvc2019_64', module='qcharts qtnetworkauth'),
# BuildJob('install', '5.15.0', 'windows', 'desktop', 'win32_mingw81', 'mingw81_32', mirror=MIRROR),
BuildJob('install', '5.15.2', 'windows', 'desktop', 'win64_msvc2019_64', 'msvc2019_64', module='qcharts qtnetworkauth', mirror=MIRROR),
]
)

# Extra modules test
linux_build_jobs.extend(
[
BuildJob('5.15.2', 'linux', 'desktop', 'gcc_64', 'gcc_64', module='qcharts qtnetworkauth'),
BuildJob('5.14.2', 'linux', 'desktop', 'gcc_64', 'gcc_64', module='all')
BuildJob('install', '5.15.2', 'linux', 'desktop', 'gcc_64', 'gcc_64', module='qcharts qtnetworkauth'),
BuildJob('install', '5.14.2', 'linux', 'desktop', 'gcc_64', 'gcc_64', module='all'),
BuildJob('install', '5.15.2', 'linux', 'desktop', 'gcc_64', 'gcc_64', subarchives='qtbase qttools qt icu'),
BuildJob('src', '6.1.0', 'linux', 'desktop', 'gcc_64', 'gcc_64', subarchives='qt'),
BuildJob('doc', '6.1.0', 'linux', 'desktop', 'gcc_64', 'gcc_64', subarchives='qtdoc'),
# test for list commands
BuildJob('list', '6.1.0', 'linux', 'desktop', '', '')
]
)
mac_build_jobs.append(
BuildJob('5.14.2', 'mac', 'desktop', 'clang_64', 'clang_64', module='qcharts qtnetworkauth')
BuildJob('install', '5.14.2', 'mac', 'desktop', 'clang_64', 'clang_64', module='qcharts qtnetworkauth')
)

# WASM
linux_build_jobs.append(
BuildJob('5.14.2', 'linux', 'desktop', 'wasm_32', "wasm_32")
BuildJob('install', '5.14.2', 'linux', 'desktop', 'wasm_32', "wasm_32")
)
mac_build_jobs.append(
BuildJob('5.14.2', 'mac', 'desktop', 'wasm_32', "wasm_32")
BuildJob('install', '5.14.2', 'mac', 'desktop', 'wasm_32', "wasm_32")
)

# mobile SDK
mac_build_jobs.extend(
[
BuildJob('5.15.2', 'mac', 'ios', 'ios', 'ios'),
BuildJob('6.1.0', 'mac', 'android', 'android_armv7', 'android_armv7')
BuildJob('install', '5.15.2', 'mac', 'ios', 'ios', 'ios'),
BuildJob('install', '6.1.0', 'mac', 'android', 'android_armv7', 'android_armv7')
]
)
linux_build_jobs.extend(
[
BuildJob('6.1.0', 'linux', 'android', 'android_armv7', 'android_armv7')
BuildJob('install', '6.1.0', 'linux', 'android', 'android_armv7', 'android_armv7')
]
)

Expand All @@ -104,20 +114,24 @@ def __init__(self, platform, build_jobs):
matrix_dictionary = collections.OrderedDict()

for build_job, python_version in product(platform_build_job.build_jobs, python_versions):
key = '{} {} for {} on {}'.format(build_job.qt_version, build_job.arch, build_job.target, build_job.host)
key = '{} {} {} for {}'.format(build_job.command, build_job.qt_version, build_job.arch, build_job.target)
if build_job.module:
key = "{} ({})".format(key, build_job.module)
if build_job.subarchives:
key = "{} ({})".format(key, build_job.subarchives)
matrix_dictionary[key] = collections.OrderedDict(
[
('PYTHON_VERSION', python_version),
('SUBCOMMAND', build_job.command),
('QT_VERSION', build_job.qt_version),
('HOST', build_job.host),
('TARGET', build_job.target),
('ARCH', build_job.arch),
('ARCHDIR', build_job.archdir),
('MODULE', build_job.module if build_job.module else ''),
("QT_BASE_MIRROR", "http://mirrors.ocf.berkeley.edu/qt/" if platform_build_job.platform == "windows" else "")
]
("QT_BASE_MIRROR", build_job.mirror if build_job.mirror else ''),
("SUBARCHIVES", build_job.subarchives if build_job.subarchives else '')
]
)

matrices[platform_build_job.platform] = matrix_dictionary
Expand Down
Loading

0 comments on commit 337eb98

Please sign in to comment.