New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI build by github actions #42
base: community
Are you sure you want to change the base?
Conversation
Thanks! Did it work on your pipeline? I see 6 failing checks here. :-) |
@misery As written above the builds which are mentioned as NOK (Not OK) also fail on my side. I would consider this PR as a starting point if this is of interest and start with adding the working once and further work on the failing ones. |
5a774c3
to
4289bfd
Compare
22e729e
to
d964e74
Compare
91762f3
to
d226849
Compare
What do you think about commenting the currently not working ones, then pull this in and have a separate PR for each of the failing ones? Currently there are none of those CI builds, so the ones that work are already much better than nothing and concentrating on enabling a single one is likely more productive, too. |
I will add any working action. :-) |
Thanks for the update. Two failing actions left, which miss some qt6 dependencies and should afterwards pass. |
aa50f64
to
2271e1b
Compare
@GitMensch |
So sudo apt update and all is fine?
|
253891e
to
b4d9a4c
Compare
b44a7ce
to
640f70c
Compare
@misery Adapted the workflow configs to run just the working ones. Additionally fixed the CodeQl action by using now apt QT 6.5.3 installation. |
@GovernikusAusweisApp2 @misery Please review / merge. |
0b9135b
to
5488742
Compare
3aa4ba9
to
057bddf
Compare
- name: Install Qt | ||
uses: jurplel/install-qt-action@v3 | ||
with: | ||
version: '6.5.*' | ||
modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity' | ||
setup-python: 'false' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it possible to use the built libs from below as another matrix job?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@misery I added another workflow which combines the build of the libs and the direct use of it for the app. I think with that the extra workflow of the lib build is obsolete. What do you think?
The build of the app with pre build QT installations might be still of some interest for testing of newer QT versions..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I used unix makefiles for android and ios as with ninja build the error:
Run cmake --build _build_libs --config Release
ninja: error: build.ninja:313: multiple rules generate download/qt-everywhere-src-6.6.1.tar.xz [-w dupbuild=err]
appears.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, if we use a combined build there is no need for a separate lib build job.
Strange error. Did you just Multi-Config Ninja Genereator somewhere? Maybe you could remove --config Release as it is needed for Multi-Config only.
Did you try to use ccache with github action caching? That should speed up the builds a lot. |
I haven't tested that. As builds are currently just occasionally I think the build time is not as crucial as for projects with plenty commits/PRs a day. |
90cee74
to
cbc9355
Compare
5564188
to
e6868df
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After that... please squash the commits
.github/workflows/CI_build_libs.yml
Outdated
|
||
- name: Install packages via apt | ||
run: | | ||
sudo apt-get update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev libdbus-1-dev libclang-15-dev libclang-13-dev ninja-build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev shouldn't be needed for an Android build. Also libclang-15/13 ... that should be in Android NDK.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For compilation of the QT host tools I think they are needed. Regarding Clang 13/14/15 see below.
.github/workflows/CI_build_libs.yml
Outdated
|
||
- name: Install packages via apt | ||
run: | | ||
sudo apt-get update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev libdbus-1-dev libclang-15-dev libclang-13-dev ninja-build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why libclang15 and 13?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md. Clang 13, 14 and 15 is available and it seems it is not always stable which one is found by the QT build.
Needed to avoid issue similar to:
CMake Warning (dev) at /home/runner/work/AusweisApp/AusweisApp/_build/b/src/qt-build/qtbase/lib/cmake/Qt6Qml/Qt6QmlBuildInternals.cmake:404 (message):
INSTALL_SOURCE_QMLTYPES option is deprecated and should not be used.
Please port your module to use declarative type registration.
Call Stack (most recent call first):
qtwebsockets/src/imports/qmlwebsockets/CMakeLists.txt:4 (qt_internal_add_qml_module)
This warning is for project developers. Use -Wno-dev to suppress it.-- Configuring submodule 'qtscxml'
-- Configuring submodule 'qtactiveqt'
-- Configuring submodule 'qttools'
CMake Error at /usr/lib/llvm-14/lib/cmake/clang/ClangTargets.cmake:750 (message):
The imported target "clangBasic" references the file"/usr/lib/llvm-14/lib/libclangBasic.a"
but this file does not exist. Possible reasons include:
The file was deleted, renamed, or moved to another location.
An install or uninstall procedure did not complete successfully.
The installation package was faulty and contained
"/usr/lib/llvm-14/lib/cmake/clang/ClangTargets.cmake"
but not all the files it references.
Call Stack (most recent call first):
/usr/lib/cmake/clang-14/ClangConfig.cmake:19 (include)
qttools/cmake/FindWrapLibClang.cmake:17 (find_package)
qtbase/cmake/QtFindPackageHelpers.cmake:147 (find_package)
qttools/configure.cmake:20 (qt_find_package)
qtbase/cmake/QtFeature.cmake:592 (include)
qttools/src/CMakeLists.txt:18 (qt_feature_evaluate_features)-- Configuring incomplete, errors occurred!
run: | | ||
cmake --build ${{ env.BUILD_DIR_LIBS }} --config ${{ matrix.build_configuration }} | ||
|
||
# - name: generate cmake |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment please... let's create a PR after this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@misery Did I get you right that the known failing parts should be active to see the problems or should I remove that parts for the PR and create a new one? I think you mean the second option.
run: | | ||
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_PREFIX_PATH=./_build_libs/dist -B ${{ env.BUILD_DIR_APP }} | ||
|
||
# due to https://bugreports.qt.io/browse/QTBUG-117765 QT 6.5.3 fails |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment please... let's create a PR after this
cmake --build ${{ env.BUILD_DIR_LIBS }} --config ${{ matrix.build_configuration }} | ||
cmake --install ${{ env.BUILD_DIR_LIBS }} | ||
|
||
# - name: generate cmake |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment please... let's create a PR after this
|
||
- name: Install packages via apt | ||
run: | | ||
sudo apt-get update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev libdbus-1-dev libclang-15-dev libclang-13-dev ninja-build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see beneath
.github/workflows/CI_build.yml
Outdated
run: | | ||
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}" | ||
|
||
# build_ios: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove comment, please
.github/workflows/CI_build.yml
Outdated
run: | | ||
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}" | ||
|
||
# build_linux_android: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see beneath
- name: Install Qt | ||
uses: jurplel/install-qt-action@v3 | ||
with: | ||
version: '6.5.*' | ||
modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity' | ||
setup-python: 'false' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, if we use a combined build there is no need for a separate lib build job.
Strange error. Did you just Multi-Config Ninja Genereator somewhere? Maybe you could remove --config Release as it is needed for Multi-Config only.
2a9ff8f
to
3730290
Compare
first thanks for the docker container. Very usefull for end2end testing. Are you aware of issues with docker tag We noticed that our CI builds are failing with SAML checks with 2.1.0, but with 2.0.0 they work |
Do you mean the official Container SDK? If you have an issue please report this to |
no, we using the docker image for verifying our login process for the identity card. |
If you mean this: https://hub.docker.com/r/governikus/ausweisapp2 ... please report to the mail address above. |
FYI: With latest 2.1.1 docker image it's working again |
- requested changes to use -B <builddir> and avoid mkdir, cd - requested changes to use cmake --install - added first example of a combined action with lib and app build Fixed codeql.yml apt failure and update to v3 CI builds of desktop versions (against prebuild QT packages): - windows msvc x64 (NOK, qt build issue, commented out) - linux gcc x64 - macos clang CI builds of smartphone versions: - linux android (NOK, cmake config issue, commented out) - macos ios (NOK, cmake config issue, commented out) CI builds of openssl, qt libs: - windows msvc x64 - linux gcc x64 - macos clang CI builds of smartphone versions: - linux android - macos ios
Please comment what is of interest from your point of view, so I could modify the PR to the relevant once (comment out or remove).
Just used release builds. For debug builds also the ctests are running but for no target they are completely working and therefore not added here.
CI builds of desktop versions (against prebuild QT packages):
CI builds of smartphone versions:
CI builds of openssl, qt libs + ausweisapp with this libs:
CI builds of smartphone versions: