From bf06bb10817ac8b4b193a3e18da1cb9406572d2a Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 22 Mar 2020 16:01:23 -0700 Subject: Try installing binaries instead of building from source --- .circleci/config.yml | 23 ++++-------- .circleci/qt-installer-script.js | 75 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 17 deletions(-) create mode 100644 .circleci/qt-installer-script.js (limited to '.circleci') diff --git a/.circleci/config.yml b/.circleci/config.yml index 32199aff..1a3ab7d0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,27 +20,16 @@ jobs: steps: - checkout - # https://wiki.qt.io/Building_Qt_5_from_Git - run: - name: build Qt5 from source + name: Install Qt5 binaries command: | - sudo sh -c 'echo "deb-src http://deb.debian.org/debian buster main" >> /etc/apt/sources.list' - sudo apt-get update - sudo apt-get build-dep qt5-default -y - sudo apt-get install -y libxcb-xinerama0-dev - sudo apt-get install -y build-essential perl python git - sudo apt-get install -y '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev - git clone git://code.qt.io/qt/qt5.git ~/qt5 - cd ~/qt5 - git checkout 5.14.0 - perl init-repository - export LLVM_INSTALL_DIR=/usr/llvm - ./configure -developer-build -opensource -confirm-license -nomake examples -nomake tests - make -j$(nproc) - make install + cd ~/ + wget https://download.qt.io/official_releases/qt/5.14/5.14.0/qt-opensource-linux-x64-5.14.0.run + chmod +x qt-opensource-linux-x64-5.14.0.run + ./qt-opensource-linux-x64-5.14.0.run --script ~/repo/.circleci/qt-installer-script.js --platform minimal --verbose - run: - name: install dependencies + name: Install dependencies command: | sudo apt-get update sudo apt-get install -y python3-pip xvfb diff --git a/.circleci/qt-installer-script.js b/.circleci/qt-installer-script.js new file mode 100644 index 00000000..d5860b68 --- /dev/null +++ b/.circleci/qt-installer-script.js @@ -0,0 +1,75 @@ +function Controller() { + installer.installationFinished.connect(proceed) +} + +function logCurrentPage() { + var pageName = page().objectName + var pagePrettyTitle = page().title + console.log("At page: " + pageName + " ('" + pagePrettyTitle + "')") +} + +function page() { + return gui.currentPageWidget() +} + +function proceed(button, delay) { + gui.clickButton(button || buttons.NextButton, delay) +} + +Controller.prototype.WelcomePageCallback = function() { + logCurrentPage() + proceed(buttons.NextButton, 2000) +} + +Controller.prototype.CredentialsPageCallback = function() { + logCurrentPage() + page().loginWidget.EmailLineEdit.text = installer.environmentVariable("QT_EMAIL"); + page().loginWidget.PasswordLineEdit.text = installer.environmentVariable("QT_PASSWORD"); + proceed() +} + +Controller.prototype.IntroductionPageCallback = function() { + logCurrentPage() + proceed() +} + +Controller.prototype.TargetDirectoryPageCallback = function() { + logCurrentPage() + proceed() +} + +Controller.prototype.ComponentSelectionPageCallback = function() { + logCurrentPage() + page().deselectAll() + page().selectComponent("qt.qt5.5140.gcc_64") + proceed() +} + +Controller.prototype.LicenseAgreementPageCallback = function() { + logCurrentPage() + page().AcceptLicenseRadioButton.checked = true + gui.clickButton(buttons.NextButton) +} + +Controller.prototype.ReadyForInstallationPageCallback = function() { + logCurrentPage() + proceed() +} + +Controller.prototype.PerformInstallationPageCallback = function() { + logCurrentPage() +} + +Controller.prototype.FinishedPageCallback = function() { + logCurrentPage() + page().LaunchQtCreatorCheckBoxForm.launchQtCreatorCheckBox.checked = false + proceed(buttons.FinishButton) +} + +Controller.prototype.DynamicTelemetryPluginFormCallback = function() { + logCurrentPage() + console.log(Object.keys(page().TelemetryPluginForm.statisticGroupBox)) + var radioButtons = page().TelemetryPluginForm.statisticGroupBox + radioButtons.disableStatisticRadioButton.checked = true + proceed() +} -- cgit v1.2.3-54-g00ecf