Skip to content
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

chore(CPP/CI): basic CI setup for linux cmake build #6011

Merged
merged 1 commit into from
Jul 1, 2022
Merged

Conversation

stefandunca
Copy link
Contributor

@stefandunca stefandunca commented Jun 7, 2022

Minimal CI setup

Beware that this branch is rebased on top of #5754, and used as a merge target for more clarity in reviewing.

  • Linux dockerized build and AppDir generation for compilation errors reporting. Anything more advanced will be done
  • Also added AppImage follow up requirements, a basic setup for MacOS and Windows (they still need work to have at least validation running)
  • Extra: add build configuration fixes for rest of the platforms

All the remaining work will be done in a follow up PR

Closes: #5998

@stefandunca stefandunca marked this pull request as draft June 7, 2022 11:05
@stefandunca stefandunca changed the base branch from master to cpp-5676 June 7, 2022 11:05
@status-im-auto
Copy link
Member

status-im-auto commented Jun 7, 2022

Jenkins Builds

Click to see older builds (126)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 12a2d4d #1 2022-06-07 11:16:56 ~11 min linux 📦tgz
✔️ 12a2d4d #2 2022-06-07 11:19:09 ~13 min linux 📦tgz
✔️ 12a2d4d #1 2022-06-07 11:22:39 ~17 min macos 📦dmg
✔️ 12a2d4d #1 2022-06-07 11:28:12 ~22 min windows 📦exe
✔️ 12a2d4d #2 2022-06-07 11:30:34 ~24 min macos 📦dmg
✔️ 12a2d4d #2 2022-06-07 11:31:03 ~25 min windows 📦exe
✔️ ff089de #3 2022-06-08 09:25:44 ~9 min linux 📦tgz
✔️ ff089de #3 2022-06-08 09:26:09 ~10 min macos 📦dmg
✔️ ff089de #3 2022-06-08 09:37:36 ~21 min windows 📦exe
✔️ 2ba6291 #4 2022-06-08 10:16:41 ~9 min macos 📦dmg
✔️ 2ba6291 #4 2022-06-08 10:17:11 ~10 min linux 📦tgz
✔️ 2ba6291 #4 2022-06-08 10:28:26 ~21 min windows 📦exe
✔️ 457eded #5 2022-06-08 10:18:01 ~8 min macos 📦dmg
✔️ 457eded #5 2022-06-08 10:19:37 ~10 min linux 📦tgz
✔️ 457eded #5 2022-06-08 10:31:04 ~21 min windows 📦exe
1974160 #6 2022-06-08 10:37:00 ~2 min linux 📄log
✔️ 1974160 #8 2022-06-08 10:43:02 ~8 min macos 📦dmg
✔️ 1974160 #8 2022-06-08 10:44:38 ~10 min linux 📦tgz
✔️ 1974160 #8 2022-06-08 10:56:57 ~22 min windows 📦exe
✔️ 6de72c2 #6 2022-06-08 10:38:23 ~9 min macos 📦dmg
✔️ 6de72c2 #6 2022-06-08 10:39:01 ~10 min linux 📦tgz
✔️ 6de72c2 #6 2022-06-08 10:50:38 ~22 min windows 📦exe
✔️ 81f1c82 #7 2022-06-08 10:39:46 ~8 min macos 📦dmg
✔️ 81f1c82 #7 2022-06-08 10:41:38 ~10 min linux 📦tgz
✔️ 81f1c82 #7 2022-06-08 10:53:20 ~21 min windows 📦exe
ba3d8aa #8 2022-06-08 10:45:23 ~19 sec linux 📄log
✔️ ba3d8aa #10 2022-06-08 10:52:48 ~7 min macos 📦dmg
✔️ ba3d8aa #10 2022-06-08 10:55:11 ~10 min linux 📦tgz
✔️ ba3d8aa #10 2022-06-08 11:11:48 ~26 min windows 📦exe
✔️ ae293d0 #9 2022-06-08 10:49:40 ~9 min macos 📦dmg
✔️ ae293d0 #9 2022-06-08 10:50:06 ~10 min linux 📦tgz
517444b #9 2022-06-08 10:57:58 ~1 min linux 📄log
✔️ 517444b #11 2022-06-08 11:06:03 ~9 min macos 📦dmg
✔️ 517444b #11 2022-06-08 11:08:34 ~12 min linux 📦tgz
✔️ 517444b #11 2022-06-08 11:17:02 ~20 min windows 📦exe
2e92540 #10 2022-06-08 10:59:09 ~2 min linux 📄log
✔️ 2e92540 #12 2022-06-08 11:04:41 ~8 min macos 📦dmg
✔️ 2e92540 #12 2022-06-08 11:08:37 ~11 min linux 📦tgz
✔️ 2e92540 #12 2022-06-08 11:18:14 ~21 min windows 📦exe
✔️ 884d051 #13 2022-06-08 11:13:06 ~7 min macos 📦dmg
✔️ 884d051 #13 2022-06-08 11:16:11 ~10 min linux 📦tgz
✔️ 884d051 #13 2022-06-08 11:27:34 ~22 min windows 📦exe
✔️ 61308d5 #14 2022-06-08 11:26:34 ~10 min linux 📦tgz
✔️ 61308d5 #14 2022-06-08 11:27:03 ~10 min macos 📦dmg
✔️ 61308d5 #14 2022-06-08 11:39:37 ~23 min windows 📦exe
✔️ a81afa6 #15 2022-06-08 12:03:21 ~10 min macos 📦dmg
✔️ a81afa6 #15 2022-06-08 12:03:36 ~10 min linux 📦tgz
✔️ a81afa6 #15 2022-06-08 12:13:52 ~20 min windows 📦exe
✔️ fa6f893 #16 2022-06-08 12:07:55 ~8 min macos 📦dmg
✔️ fa6f893 #16 2022-06-08 12:10:37 ~11 min linux 📦tgz
✔️ fa6f893 #16 2022-06-08 12:20:52 ~21 min windows 📦exe
✔️ 655b3ab #17 2022-06-08 12:07:56 ~7 min macos 📦dmg
✔️ 655b3ab #17 2022-06-08 12:11:19 ~11 min linux 📦tgz
✔️ 655b3ab #17 2022-06-08 12:23:08 ~22 min windows 📦exe
✔️ 3559804 #18 2022-06-08 12:10:02 ~8 min macos 📦dmg
✔️ 3559804 #18 2022-06-08 12:11:25 ~10 min linux 📦tgz
✔️ 3559804 #18 2022-06-08 12:25:26 ~24 min windows 📦exe
8234eb7 #20 2022-06-08 12:14:23 ~18 sec linux 📄log
✔️ 8234eb7 #22 2022-06-08 12:23:25 ~9 min macos 📦dmg
✔️ 8234eb7 #22 2022-06-08 12:24:13 ~10 min linux 📦tgz
✔️ 0e4d30d #20 2022-06-08 12:15:28 ~12 min macos 📦dmg
✔️ 0e4d30d #19 2022-06-08 12:15:55 ~13 min macos 📦dmg
✔️ 0e4d30d #19 2022-06-08 12:17:46 ~15 min linux 📦tgz
✔️ 0e4d30d #20 2022-06-08 12:23:20 ~20 min linux 📦tgz
✔️ 650abb3 #21 2022-06-08 12:23:26 ~10 min linux 📦tgz
✔️ 650abb3 #21 2022-06-08 12:23:31 ~10 min macos 📦dmg
✔️ 9e27538 #23 2022-06-08 12:30:06 ~10 min linux 📦tgz
✔️ 9e27538 #23 2022-06-08 12:30:47 ~10 min macos 📦dmg
✔️ 9e27538 #22 2022-06-08 12:41:24 ~21 min windows 📦exe
✔️ e05b585 #24 2022-06-08 13:00:01 ~10 min macos 📦dmg
✔️ e05b585 #24 2022-06-08 13:00:12 ~10 min linux 📦tgz
✔️ e05b585 #23 2022-06-08 13:11:58 ~21 min windows 📦exe
✔️ c1f9858 #25 2022-06-08 13:19:20 ~9 min macos 📦dmg
✔️ c1f9858 #25 2022-06-08 13:19:59 ~10 min linux 📦tgz
✔️ c1f9858 #24 2022-06-08 13:29:05 ~19 min windows 📦exe
0cf95ae #25 2022-06-08 13:20:48 ~21 sec linux 📄log
✔️ 0cf95ae #27 2022-06-08 13:30:17 ~9 min macos 📦dmg
✔️ 0cf95ae #27 2022-06-08 13:31:20 ~10 min linux 📦tgz
✔️ 0cf95ae #26 2022-06-08 13:41:18 ~20 min windows 📦exe
✔️ d3eb13f #26 2022-06-08 13:23:15 ~8 min macos 📦dmg
✔️ d3eb13f #26 2022-06-08 13:26:23 ~11 min linux 📦tgz
✔️ d3eb13f #25 2022-06-08 13:34:48 ~19 min windows 📦exe
⁉️ aa15dd3 #27 2022-06-08 13:45:49 ~50 sec linux 📄log
✔️ aa15dd3 #29 2022-06-08 13:53:54 ~8 min macos 📦dmg
✔️ aa15dd3 #29 2022-06-08 13:55:39 ~10 min linux 📦tgz
✔️ aa15dd3 #28 2022-06-08 14:10:34 ~25 min windows 📦exe
✔️ f18e35a #28 2022-06-08 13:50:53 ~9 min macos 📦dmg
✔️ f18e35a #28 2022-06-08 13:52:09 ~10 min linux 📦tgz
77e4bfd #28 2022-06-08 15:17:44 ~6 min linux-cpp 📄log
77e4bfd #2 2022-06-08 15:18:37 ~7 min windows-cpp 📄log
✔️ 77e4bfd #30 2022-06-08 15:20:45 ~9 min macos 📦dmg
✔️ 77e4bfd #30 2022-06-08 15:25:18 ~14 min linux 📦tgz
✔️ 77e4bfd #29 2022-06-08 15:32:55 ~21 min windows 📦exe
✔️ 77e4bfd #1 2022-06-08 21:36:38 ~16 min linux 📦tgz
0864d59 #29 2022-06-09 08:28:37 ~2 min linux-cpp 📄log
0864d59 #3 2022-06-09 08:28:44 ~2 min windows-cpp 📄log
0864d59 #2 2022-06-09 08:29:24 ~3 min macos-cpp 📄log
✔️ 0864d59 #31 2022-06-09 08:37:05 ~10 min linux 📦tgz
✔️ 0864d59 #31 2022-06-09 08:42:42 ~16 min macos 📦dmg
✔️ 0864d59 #30 2022-06-09 08:47:49 ~21 min windows 📦exe
2067917 #30 2022-06-09 08:44:14 ~2 min linux-cpp 📄log
2067917 #3 2022-06-09 08:44:53 ~3 min macos-cpp 📄log
✔️ 2067917 #32 2022-06-09 08:52:10 ~10 min linux 📦tgz
✔️ 2067917 #32 2022-06-09 08:58:31 ~16 min macos 📦dmg
✔️ 2067917 #31 2022-06-09 09:04:21 ~22 min windows 📦exe
b5872b8 #5 2022-06-09 08:52:51 ~2 min windows-cpp 📄log
b5872b8 #31 2022-06-09 08:53:14 ~2 min linux-cpp 📄log
b5872b8 #4 2022-06-09 08:54:06 ~3 min macos-cpp 📄log
✔️ b5872b8 #33 2022-06-09 08:58:44 ~8 min macos 📦dmg
✔️ b5872b8 #33 2022-06-09 09:01:23 ~10 min linux 📦tgz
✔️ b5872b8 #32 2022-06-09 09:24:29 ~33 min windows 📦exe
99d7266 #33 2022-06-27 09:06:30 ~1 min linux-cpp 📄log
a9347fc #34 2022-06-28 10:55:43 ~2 min linux-cpp 📄log
3354d12 #35 2022-06-28 16:52:31 ~3 min linux-cpp 📄log
973b91b #36 2022-06-28 17:16:42 ~5 min linux-cpp 📄log
11fb736 #37 2022-06-28 17:26:32 ~2 min linux-cpp 📄log
✔️ 11fb736 #1 2022-06-28 17:34:05 ~10 min linux 📦tgz
✔️ 11fb736 #1 2022-06-28 17:40:48 ~16 min macos 📦dmg
✔️ 11fb736 #1 2022-06-28 17:46:51 ~22 min windows 📦exe
⁉️ feaab54 #38 2022-06-28 17:52:50 ~20 min linux-cpp 📄log
✔️ feaab54 #2 2022-06-28 18:00:37 ~28 min linux 📦tgz
✔️ feaab54 #2 2022-06-28 18:13:37 ~41 min macos 📦dmg
✔️ feaab54 #2 2022-06-28 18:38:35 ~1 hr 6 min windows 📦exe
⁉️ feaab54 #39 2022-06-30 10:19:22 ~2 min linux-cpp 📄log
✔️ feaab54 #3 2022-06-30 10:26:36 ~9 min macos 📦dmg
✔️ feaab54 #3 2022-06-30 10:27:20 ~10 min linux 📦tgz
Commit #️⃣ Finished (UTC) Duration Platform Result
⁉️ 4029a39 #40 2022-06-30 10:28:14 ~2 min linux-cpp 📄log
✔️ 4029a39 #4 2022-06-30 10:34:10 ~8 min macos 📦dmg
✔️ 4029a39 #4 2022-06-30 10:38:15 ~12 min linux 📦tgz
✔️ 4029a39 #4 2022-06-30 11:02:12 ~36 min windows 📦exe
⁉️ 37442d8 #41 2022-06-30 13:35:10 ~4 min linux-cpp 📄log
✔️ 37442d8 #5 2022-06-30 13:44:52 ~13 min linux 📦tgz
✔️ 37442d8 #5 2022-06-30 13:47:54 ~16 min macos 📦dmg
✔️ 37442d8 #5 2022-06-30 14:01:48 ~30 min windows 📦exe

@stefandunca stefandunca force-pushed the cpp-ci-5998 branch 27 times, most recently from 0cf95ae to f18e35a Compare June 8, 2022 13:41
@stefandunca stefandunca marked this pull request as ready for review June 28, 2022 17:25
@stefandunca stefandunca requested review from a team, richard-ramos, 0x-r4bbit and saledjenic and removed request for a team June 28, 2022 17:25
Base automatically changed from cpp-5676 to master June 30, 2022 10:16
status.desktop Outdated Show resolved Hide resolved
Linux dockerized build and AppDir generation for compilation errors

Also added AppImage TODOs, basic setup for MacOS and Windows but they
still need work to have at least validation running

Temporary disable CPP windows/mac until limitations are
addressed in a follow up commit

Extra: add build configuration fixes for rest of the platforms

closes: #5998
Copy link
Contributor

@igor-sirotin igor-sirotin left a comment

Choose a reason for hiding this comment

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

I didn't check jenkins/docker changes, but the CMake changes LGTM.
2 questions though:

  • There's no newline at most of cmake files, should we fix this?
  • Should we call something like windeployqt on windows during install step?

@stefandunca
Copy link
Contributor Author

  • There's no newline at most of cmake files, should we fix this?

I had no issue but if there is no real problem I would like not to enforce yet another thing to be minded and maintained

  • Should we call something like windeployqt on windows during install step?

Didn't address this yet. Spent too much time already compiling on Linux. Will come in a later task; see #5745.
However, I was thinking of not mixing packaging with build configuration. One should be able to build, install and run the app without having the packaging dependencies

@stefandunca stefandunca merged commit 37ab1a5 into master Jul 1, 2022
@stefandunca stefandunca deleted the cpp-ci-5998 branch July 1, 2022 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

C++ - CI - build and run unit tests
7 participants