From b477c56e9a528db9bf9fa30c1be41be08011da32 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Wed, 17 Feb 2021 13:54:48 +0200 Subject: Add installer generation to make_instructions.yaml Change-Id: Ief0885c94e7497de834e6f6de14bd485244e8ab0 Reviewed-by: Arttu Tarkiainen --- coin/create_ifw_installer.py | 2 +- coin/instructions/common_environment.yaml | 5 ++ coin/instructions/make_instructions.yaml | 80 ++++++++++++++++++++++++++++++- coin/instructions/qmake_module_build.yaml | 10 ++++ coin/qt-installer-package-config.json | 8 ++++ 5 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 coin/qt-installer-package-config.json diff --git a/coin/create_ifw_installer.py b/coin/create_ifw_installer.py index aacb6adeb..6da4f1d16 100755 --- a/coin/create_ifw_installer.py +++ b/coin/create_ifw_installer.py @@ -76,7 +76,7 @@ def create_installer_package(src_dir: str, bld_dir: str, target_dir: str, target check_call(["strip", os.path.join(package_dir, 'bin/repogen')]) # Copy remaining payload to package dir - shutil.copytree(os.path.join(bld_dir, 'doc'), os.path.join(package_dir, 'doc')) + shutil.copytree(os.path.join(bld_dir, 'doc/html'), os.path.join(package_dir, 'doc/html')) shutil.copytree(os.path.join(src_dir, 'examples'), os.path.join(package_dir, 'examples')) shutil.copy(os.path.join(src_dir, 'README'), package_dir) diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml index 4bef13a71..c3fd59f15 100644 --- a/coin/instructions/common_environment.yaml +++ b/coin/instructions/common_environment.yaml @@ -62,3 +62,8 @@ instructions: condition: property property: host.os equals_value: Linux + - type: Group + instructions: + - type: EnvironmentVariable + variableName: PACKAGING_KEYS_CONFIG_URL + variableValue: "http://ci-files01-hki.intra.qt.io/input/semisecure/packaging/packaging_secure.ini" diff --git a/coin/instructions/make_instructions.yaml b/coin/instructions/make_instructions.yaml index f9f1dd406..003e9d746 100644 --- a/coin/instructions/make_instructions.yaml +++ b/coin/instructions/make_instructions.yaml @@ -81,8 +81,77 @@ instructions: property: target.compiler in_values: [MSVC2013, MSVC2015, MSVC2017, MSVC2019] + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" + - type: ExecuteCommand + command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}} --target-name QtInstallerFramework-linux-x64-4.1.0.run" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to create ifw installer." + - type: Rename + sourcePath: "{{.SourceDir}}/QtInstallerFramework-linux-x64-4.1.0.run" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-linux-x64-4.1.0.run" + userMessageOnFailure: "Failed to copy installer." + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Linux + + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" + - type: ExecuteCommand + command: "python3 {{.SourceDir}}/coin/create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir {{.SourceDir}} --target-name QtInstallerFramework-macOS-x86_64-4.1.0.app" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to create ifw installer." + - type: EnvironmentVariable + variableName: QT_CODESIGN_IDENTITY_KEY + variableValue: "A5GTH44LYL" + - type: ExecuteCommand + command: "{{.AgentWorkingDir}}/qtsdk/qtsdk/packaging-tools/sign_installer.py mac --file={{.SourceDir}}/QtInstallerFramework-macOS-x86_64-4.1.0.app" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to sign the ifw installer" + - type: ExecuteCommand + command: "{{.AgentWorkingDir}}/qtsdk/qtsdk/packaging-tools/notarize.py --dmg={{.SourceDir}}/QtInstallerFramework-macOS-x86_64-4.1.0.dmg" + maxTimeInSeconds: 36000 + maxTimeBetweenOutput: 3600 + userMessageOnFailure: "Failed to notarize the ifw installer" + - type: Rename + sourcePath: "{{.SourceDir}}/QtInstallerFramework-macOS-x86_64-4.1.0.dmg" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-macOS-x86_64-4.1.0.dmg" + userMessageOnFailure: "Failed to copy installer." + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: MacOS + + - type: Group + instructions: + - type: ChangeDirectory + directory: "{{.SourceDir}}" + - type: ExecuteCommand + command: "{{.Env.PYTHON3_PATH}}\\python {{.SourceDir}}\\coin\\create_ifw_installer.py --src-dir {{.SourceDir}} --bld-dir {{.SourceDir}} --target-dir C:\\{{.SourceDir}} --target-name QtInstallerFramework-windows-x86-4.1.0" + maxTimeInSeconds: 1200 + maxTimeBetweenOutput: 1200 + userMessageOnFailure: "Failed to create ifw installer." + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - type: SignPackage - directory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" + directory: "{{.SourceDir}}" maxTimeInSeconds: 1200 maxTimeBetweenOutput: 1200 enable_if: @@ -90,6 +159,15 @@ instructions: property: host.os equals_value: Windows + - type: Rename + sourcePath: "{{.SourceDir}}/QtInstallerFramework-windows-x86-4.1.0.exe" + targetPath: "{{.InstallRoot}}/{{.AgentWorkingDir}}/QtInstallerFramework-windows-x86-4.1.0.exe" + userMessageOnFailure: "Failed to copy installer." + enable_if: + condition: property + property: host.os + equals_value: Windows + - type: UploadArtifact archiveDirectory: "{{.InstallRoot}}/{{.AgentWorkingDir}}" transferType: UploadModuleBuildArtifact diff --git a/coin/instructions/qmake_module_build.yaml b/coin/instructions/qmake_module_build.yaml index 120a7745f..37ff0f396 100644 --- a/coin/instructions/qmake_module_build.yaml +++ b/coin/instructions/qmake_module_build.yaml @@ -3,6 +3,16 @@ instructions: - type: MakeDirectory directory: ".git" + - type: Group + instructions: + - type: InstallSourceArchive + maxTimeInSeconds: 600 + maxTimeBetweenOutput: 600 + project: qtsdk/qtsdk + ref: master + directory: qtsdk/qtsdk + userMessageOnFailure: "Could not install qtsdk/qtsdk source archive. Please investigate why." + - type: SetBuildDirectory directory: "{{.SourceDir}}" disable_if: diff --git a/coin/qt-installer-package-config.json b/coin/qt-installer-package-config.json new file mode 100644 index 000000000..563110519 --- /dev/null +++ b/coin/qt-installer-package-config.json @@ -0,0 +1,8 @@ +{ + "version": "1", + "module-split": { + "__extract__": [ + "**/*QtInstallerFramework-*" + ] + } +} -- cgit v1.2.3