Skip to content

Migration to GitHub actions #844

Merged
EndrII merged 37 commits into
mainfrom
CDCI
Jun 7, 2026
Merged

Migration to GitHub actions #844
EndrII merged 37 commits into
mainfrom
CDCI

Conversation

@EndrII

@EndrII EndrII commented Nov 26, 2025

Copy link
Copy Markdown
Member
  • Linux X86 build passed
  • Linux arm build passed
  • Windows build passed
  • Windows tests passed
  • Linux tests passed
  • snap autoupdate configured
  • Move to Native installer to get access installer framework.

@EndrII EndrII self-assigned this Nov 27, 2025
@EndrII EndrII moved this to In Progress in CQtDeployer Nov 27, 2025
@EndrII EndrII added this to the v1.7 milestone Nov 27, 2025
@EndrII EndrII changed the title test CDCI Migration to GitHub actions Nov 27, 2025
@pzhlkj6612

Copy link
Copy Markdown
Collaborator

There has been so long since we talk about GitHub Actions. It was several years ago. Time flies.

Are you planning to keep GHA only, or both GHA and buildbot?

@EndrII

EndrII commented Nov 27, 2025

Copy link
Copy Markdown
Member Author

@pzhlkj6612 hi, no - I will stop using buildbot after integration GitHub Actions.

@pzhlkj6612

Copy link
Copy Markdown
Collaborator

Okay. The "buildbot/WindowsCMakeBuilder" guy stuck at "Waiting for status to be reported".

@EndrII

EndrII commented Nov 27, 2025

Copy link
Copy Markdown
Member Author

Okay. The "buildbot/WindowsCMakeBuilder" guy stuck at "Waiting for status to be reported".

yes, i will stop them after merge this PR

@EndrII

EndrII commented Dec 25, 2025

Copy link
Copy Markdown
Member Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request migrates the project's CI/CD to GitHub Actions. The changes include modifications to CMake build scripts to integrate with the GitHub Actions environment, removal of an old Python-based dependency fetching script, and a codebase-wide refactoring to replace a custom logging utility with standard Qt logging macros (qDebug, qWarning, etc.). The changes are generally good and improve the project's build process and code quality. I've pointed out a few areas for improvement: decoupling the build scripts from the CI provider, correcting a log level, and fixing a typo in a variable name.

Comment thread CMakeLists.txt
Comment on lines +45 to +51
if(DEFINED ENV{GITHUB_ENV})
file(APPEND $ENV{GITHUB_ENV} "CQT_DEPLOYER_VERSION=${CQT_DEPLOYER_VERSION}\n")
file(APPEND $ENV{GITHUB_ENV} "CMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}\n")
file(APPEND $ENV{GITHUB_ENV} "CMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}\n")
file(APPEND $ENV{GITHUB_ENV} "INSTALLER_SUFIX=${INSTALLER_SUFIX}\n")

endif()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This block introduces a direct dependency on GitHub Actions by checking for ENV{GITHUB_ENV}. This couples your build script to a specific CI system. For better portability and separation of concerns, consider passing the necessary information from the CI environment to CMake via command-line arguments. For example, you could define a CMake variable like CI_EXPORT_FILE and set it in your GitHub Actions workflow: cmake -DCI_EXPORT_FILE=$GITHUB_ENV .... Then, your CMake script would check for if(CI_EXPORT_FILE). A similar pattern is used in src/CQtDeployer/CMakeLists.txt and should also be refactored.

QuasarAppUtils::Params::log("Get the recursive dependencies of " + lib.fullPath(),
QuasarAppUtils::Debug);

qWarning() << "Get the recursive dependencies of " + lib.fullPath();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The log level for this message was changed from Debug to Warning. However, this message seems to be for debugging purposes, indicating the start of a recursive dependency scan for a library. Changing it to a warning might generate a lot of noise in the logs, as it will be printed for every library being scanned. It would be more appropriate to use qDebug() here.

    qDebug() << "Get the recursive dependencies of " + lib.fullPath();

Comment thread src/Deploy/src/packing.cpp Outdated

void Packing::setDistribution(const QList<iDistribution*> &packages) {
_packages = packages;
_pakages = packages;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There's a typo in the member variable name: _pakages should be _packages. This typo is present in this line and other places in this file, as well as in the declaration in packing.h. Please correct it for consistency and readability.

Suggested change
_pakages = packages;
_packages = packages;

@EndrII

EndrII commented May 21, 2026

Copy link
Copy Markdown
Member Author

/gemini please make review of this pull request and make suggestion if you detect any issues.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates copyright years to 2026 across the project and transitions the logging system from a custom utility to standard Qt logging macros (qDebug, qInfo, qWarning, qCritical). It also enhances CI/CD integration by exporting build variables to GITHUB_ENV and refactors QIFW binary handling to copy local tools instead of using a Python script. Review feedback highlights several critical issues, including a misspelled member variable (_pakages) in packing.cpp that will cause compilation errors, and a broken log message in configparser.cpp where a placeholder is not properly formatted. Additionally, several typos and grammatical errors were identified in the newly added log strings, and one instance was noted where a debug message was incorrectly elevated to a warning level.

Comment thread src/Deploy/src/packing.cpp Outdated
Comment thread src/Deploy/src/packing.cpp Outdated
Comment thread src/Deploy/src/packing.cpp Outdated
Comment on lines +1250 to +1252
qInfo() << "The qmake was found in the RPATH variable. qmake : %0"
" If you want to disable search qmake executable in RPATH variable,"
" use the noCheckRPATH option";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The log message is missing the QString wrapper and the .arg(qmakeFromRPath) call. As a result, the %0 placeholder will be printed literally, and the path information will be lost in the output.

        qInfo() << QString("The qmake was found in the RPATH variable. qmake : %0"
                   " If you want to disable search qmake executable in RPATH variable,"
                   " use the noCheckRPATH option").arg(qmakeFromRPath);

QuasarAppUtils::Params::log("Get the recursive dependencies of " + lib.fullPath(),
QuasarAppUtils::Debug);

qWarning() << "Get the recursive dependencies of " + lib.fullPath();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The log level was changed from Debug to qWarning(). This message appears to be a trace/progress message and should remain at the debug level to avoid cluttering the output with unnecessary warnings during normal operation.

    qDebug() << "Get the recursive dependencies of " + lib.fullPath();

Comment on lines +114 to +115
qCritical() << QString("Failed parese list of option values, This option support only single leve list. "
" Example: use -Option val1,val2,val3 ");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This log message contains several typos: 'parese' should be 'parse', and 'leve' should be 'level'. Additionally, 'support' should be 'supports' for correct grammar.

            qCritical() << QString("Failed to parse list of option values. This option supports only a single level list. "
                                " Example: use -Option val1,val2,val3 ");

QuasarAppUtils::Info);
qInfo() << "'snap connect cqtdeployer:system-backup :system-backup'" <<
"GUI: Open the gnome system setting >> Applications >> CQtDeployer. "
"in menu rights and permisions enable system-backup.";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Typo: 'permisions' should be 'permissions'.

            "in menu rights and permissions enable system-backup.";

Comment thread src/Deploy/src/Distributions/deb.cpp Outdated
Comment on lines +90 to +91
qWarning() << QString("You try sets property for the not exits target."
" target: %0").arg(pair.value(0));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This warning message contains typos and grammatical errors: 'You try sets' should be 'You are trying to set', and 'not exits' should be 'non-existent'.

            qWarning() << QString("You are trying to set a property for a non-existent target."
                                  " target: %0").arg(pair.value(0));

QuasarAppUtils::Params::log("Show info is failed!",
QuasarAppUtils::Error);

qCritical() << "Show info is failed!";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Grammar: 'Show info is failed!' is awkward. 'Show info failed!' or 'Showing info failed!' is more idiomatic. This pattern repeats in several other log messages in this switch block.

            qCritical() << "Show info failed!";

EndrII and others added 6 commits May 21, 2026 14:36
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: Andrei Yankovich <EndrIIMail@gmail.com>
@EndrII EndrII merged commit cbb3ce6 into main Jun 7, 2026
3 checks passed
@EndrII EndrII deleted the CDCI branch June 7, 2026 10:14
@github-project-automation github-project-automation Bot moved this from In Progress to Done in CQtDeployer Jun 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants