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

feat(ci)_: build on windows and macos #5840

Merged
merged 1 commit into from
Oct 25, 2024
Merged

Conversation

mendelskiv93
Copy link
Contributor

@mendelskiv93 mendelskiv93 commented Sep 16, 2024

This PR:

  • Creates a common Jenkinsfile for Unix systems (Linux and macOS) and introduces changes to the Linux build path by utilizing the getAgentLabel() function.
  • Adds support for Windows builds, where we override the default shell to avoid using Nix Shell.
  • Resolved macOS SDK version compatibility for darwin-x86_64

Key Changes:

  • Unified Jenkinsfile for desktop builds.
  • Adjusted Linux Jenkins pipeline build path to use the getAgentLabel() function.
  • Windows build support added with overridden SHELL to bypass Nix Shell.
  • Use of overrideSDK to pinpoint to newer SDK for x86_64-darwin

Due to build errors on x86_64-darwin:

Configuring Nix shell for target 'default'...
# github.com/status-im/status-go/build/bin/statusgo-lib
/nix/store/3l7m8vni45h2inv7fcifvp6izxm243an-go-1.21.10/share/go/pkg/tool/darwin_amd64/link: running clang++ failed: exit status 1
Undefined symbols for architecture x86_64:
  "_SecTrustEvaluateWithError", referenced from:
      _crypto/x509/internal/macos.x509_SecTrustEvaluateWithError_trampoline.abi0 in go.o
ld: symbol(s) not found for architecture x86_64
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)

make: *** [Makefile:250: statusgo-shared-library] Error 1

the mkShell override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

Pinpointing apple_sdk to a newer version in shell.nix or overlay.nix did not help because there's an additional flag managed by overrideSDK. This mechanism adds the SDK version to the stdenv as a new darwin.apple_sdk.sdkRoot package through a hook that includes -isysroot with a path to a stub SDK defining version information (based on xcbuild.sdk).

This is essential because clang requires -platform_version <deployment target> <sdk version> to be passed to the linker, and without the proper sdkRoot, it assumes the SDK version matches the deployment target, leading to build issues. This ensures that binaries linked with the 11.0 SDK behave correctly on macOS, unlike a direct apple_sdk override.

Closes: status-go #4486

@mendelskiv93 mendelskiv93 requested a review from a team September 16, 2024 18:39
Copy link

Hey @mendelskiv93, and thank you so much for making your first pull request in status-go! ❤️ Please help us make your experience better by filling out this brief questionnaire https://goo.gl/forms/uWqNcVpVz7OIopXg2

@status-im-auto
Copy link
Member

status-im-auto commented Sep 16, 2024

Jenkins Builds

Click to see older builds (374)
Commit #️⃣ Finished (UTC) Duration Platform Result
3e8b378 #1 2024-09-16 18:40:30 ~27 sec macos 📄log
✔️ 3e8b378 #1 2024-09-16 18:41:21 ~1 min tests-rpc 📄log
✖️ 3e8b378 #1 2024-09-16 18:41:27 ~1 min tests 📄log
✔️ 3e8b378 #1 2024-09-16 18:43:18 ~3 min windows 📦zip
✔️ 3e8b378 #1 2024-09-16 18:43:46 ~3 min linux 📦zip
✔️ 3e8b378 #1 2024-09-16 18:45:48 ~5 min android 📦aar
✔️ 3e8b378 #1 2024-09-16 18:47:15 ~7 min macos 📦zip
✔️ 3e8b378 #1 2024-09-16 18:49:41 ~9 min ios 📦zip
✖️ 88f369c #2 2024-09-23 07:45:54 ~1 min tests 📄log
✔️ 88f369c #2 2024-09-23 07:46:56 ~2 min tests-rpc 📄log
✔️ 88f369c #2 2024-09-23 07:48:47 ~4 min android 📦aar
✔️ 88f369c #2 2024-09-23 07:49:27 ~5 min ios 📦zip
✔️ 6dc7965 #3 2024-09-24 18:11:45 ~1 min tests-rpc 📄log
✖️ 6dc7965 #3 2024-09-24 18:11:53 ~1 min tests 📄log
✔️ 6dc7965 #3 2024-09-24 18:12:13 ~1 min android 📦aar
✔️ 6dc7965 #3 2024-09-24 18:15:09 ~4 min ios 📦zip
615c629 #4 2024-09-24 18:18:08 ~14 sec macos 📄log
615c629 #4 2024-09-24 18:18:08 ~16 sec macos 📄log
615c629 #4 2024-09-24 18:18:17 ~21 sec linux 📄log
615c629 #4 2024-09-24 18:18:25 ~27 sec windows 📄log
✖️ 615c629 #4 2024-09-24 18:19:18 ~1 min tests 📄log
✔️ 615c629 #4 2024-09-24 18:19:31 ~1 min android 📦aar
✔️ 615c629 #4 2024-09-24 18:21:08 ~3 min ios 📦zip
✔️ 615c629 #4 2024-09-24 18:21:10 ~3 min tests-rpc 📄log
b1ada8c #5 2024-09-24 18:27:52 ~12 sec macos 📄log
✖️ b1ada8c #5 2024-09-24 18:28:35 ~53 sec tests 📄log
✔️ b1ada8c #5 2024-09-24 18:29:17 ~1 min android 📦aar
✔️ b1ada8c #5 2024-09-24 18:30:07 ~2 min tests-rpc 📄log
b1ada8c #5 2024-09-24 18:30:14 ~2 min windows 📄log
✔️ b1ada8c #5 2024-09-24 18:30:26 ~2 min ios 📦zip
✔️ b1ada8c #5 2024-09-24 18:31:22 ~3 min linux 📦zip
✔️ b1ada8c #5 2024-09-24 18:33:20 ~5 min macos 📦zip
a15b5f2 #6 2024-09-26 15:06:54 ~16 sec macos 📄log
a15b5f2 #6 2024-09-26 15:07:40 ~58 sec windows 📄log
✖️ a15b5f2 #6 2024-09-26 15:07:48 ~1 min tests 📄log
✔️ a15b5f2 #6 2024-09-26 15:07:52 ~1 min tests-rpc 📄log
✔️ a15b5f2 #6 2024-09-26 15:09:58 ~3 min ios 📦zip
✔️ a15b5f2 #6 2024-09-26 15:10:29 ~3 min linux 📦zip
✔️ a15b5f2 #6 2024-09-26 15:11:58 ~5 min android 📦aar
✔️ a15b5f2 #6 2024-09-26 15:13:40 ~7 min macos 📦zip
a15b5f2 #1 2024-09-26 17:55:33 ~30 sec null 📄log
1e8b012 #7 2024-09-26 18:21:52 ~11 sec macos 📄log
✔️ 1e8b012 #7 2024-09-26 18:22:44 ~59 sec windows 📦zip
✖️ 1e8b012 #7 2024-09-26 18:23:05 ~1 min tests 📄log
✔️ 1e8b012 #7 2024-09-26 18:23:24 ~1 min android 📦aar
✔️ 1e8b012 #7 2024-09-26 18:23:43 ~2 min linux 📦zip
✔️ 1e8b012 #7 2024-09-26 18:23:51 ~2 min tests-rpc 📄log
✔️ 1e8b012 #7 2024-09-26 18:24:47 ~3 min macos 📦zip
✔️ 1e8b012 #7 2024-09-26 18:24:58 ~3 min ios 📦zip
1e8b012 #8 2024-09-27 06:07:42 ~2 min macos 📄log
✔️ 1e8b012 #8 2024-09-27 18:25:11 ~3 min ios 📦zip
1e8b012 #16 2024-09-29 20:02:41 ~11 sec macos 📄log
1e8b012 #14 2024-09-29 20:02:41 ~12 sec macos 📄log
✔️ 1e8b012 #14 2024-09-29 20:03:33 ~1 min tests-rpc 📄log
✔️ 1e8b012 #14 2024-09-29 20:03:39 ~1 min windows 📦zip
✖️ 1e8b012 #14 2024-09-29 20:03:45 ~1 min tests 📄log
✔️ 1e8b012 #14 2024-09-29 20:03:50 ~1 min android 📦aar
✔️ 1e8b012 #14 2024-09-29 20:04:21 ~1 min linux 📦zip
✔️ 1e8b012 #15 2024-09-29 20:05:55 ~3 min ios 📦zip
1e8b012 #17 2024-09-30 06:27:57 ~50 sec macos 📄log
6cae3e7 #9 2024-09-29 18:45:41 ~51 sec macos 📄log
✖️ 6cae3e7 #8 2024-09-29 18:45:51 ~57 sec tests 📄log
✔️ 6cae3e7 #8 2024-09-29 18:46:10 ~1 min windows 📦zip
✔️ 6cae3e7 #8 2024-09-29 18:46:29 ~1 min android 📦aar
✔️ 6cae3e7 #8 2024-09-29 18:46:35 ~1 min macos 📦zip
✔️ 6cae3e7 #8 2024-09-29 18:46:51 ~2 min linux 📦zip
✔️ 6cae3e7 #8 2024-09-29 18:47:02 ~2 min tests-rpc 📄log
✔️ 6cae3e7 #9 2024-09-29 18:47:55 ~3 min ios 📦zip
6cae3e7 #10 2024-09-29 18:58:24 ~46 sec macos 📄log
664a743 #9 2024-09-29 19:24:06 ~14 sec android 📄log
664a743 #9 2024-09-29 19:24:07 ~13 sec linux 📄log
664a743 #10 2024-09-29 19:24:08 ~14 sec ios 📄log
664a743 #11 2024-09-29 19:24:17 ~12 sec macos 📄log
664a743 #9 2024-09-29 19:24:17 ~14 sec macos 📄log
✖️ 664a743 #9 2024-09-29 19:24:17 ~13 sec tests 📄log
✔️ 664a743 #9 2024-09-29 19:25:01 ~59 sec windows 📦zip
✔️ 664a743 #9 2024-09-29 19:26:04 ~2 min tests-rpc 📄log
bb80325 #10 2024-09-29 19:34:56 ~11 sec android 📄log
bb80325 #12 2024-09-29 19:35:08 ~10 sec macos 📄log
bb80325 #10 2024-09-29 19:35:08 ~12 sec linux 📄log
bb80325 #11 2024-09-29 19:35:08 ~13 sec ios 📄log
bb80325 #10 2024-09-29 19:35:08 ~12 sec macos 📄log
✖️ bb80325 #10 2024-09-29 19:35:08 ~13 sec tests 📄log
✔️ bb80325 #10 2024-09-29 19:35:57 ~1 min windows 📦zip
✔️ bb80325 #10 2024-09-29 19:36:52 ~2 min tests-rpc 📄log
3d708d9 #11 2024-09-29 19:39:55 ~12 sec android 📄log
3d708d9 #11 2024-09-29 19:39:55 ~10 sec linux 📄log
3d708d9 #13 2024-09-29 19:40:02 ~10 sec macos 📄log
3d708d9 #12 2024-09-29 19:40:02 ~13 sec ios 📄log
3d708d9 #11 2024-09-29 19:40:03 ~10 sec macos 📄log
✖️ 3d708d9 #11 2024-09-29 19:40:05 ~14 sec tests 📄log
✔️ 3d708d9 #11 2024-09-29 19:40:46 ~58 sec tests-rpc 📄log
✔️ 3d708d9 #11 2024-09-29 19:40:51 ~59 sec windows 📦zip
ec52a6c #12 2024-09-29 19:44:17 ~12 sec android 📄log
ec52a6c #12 2024-09-29 19:44:18 ~12 sec linux 📄log
ec52a6c #13 2024-09-29 19:44:18 ~13 sec ios 📄log
ec52a6c #14 2024-09-29 19:44:26 ~11 sec macos 📄log
ec52a6c #12 2024-09-29 19:44:27 ~14 sec macos 📄log
✖️ ec52a6c #12 2024-09-29 19:44:27 ~12 sec tests 📄log
ec52a6c #12 2024-09-29 19:44:27 ~12 sec windows 📄log
✔️ ec52a6c #12 2024-09-29 19:45:12 ~58 sec tests-rpc 📄log
ee73bec #13 2024-09-29 19:53:49 ~11 sec android 📄log
ee73bec #14 2024-09-29 19:53:54 ~13 sec ios 📄log
✖️ ee73bec #13 2024-09-29 19:53:55 ~10 sec tests 📄log
ee73bec #13 2024-09-29 19:54:05 ~22 sec linux 📄log
ee73bec #13 2024-09-29 19:54:05 ~22 sec macos 📄log
ee73bec #15 2024-09-29 19:54:06 ~23 sec macos 📄log
✔️ ee73bec #13 2024-09-29 19:54:43 ~59 sec tests-rpc 📄log
✔️ ee73bec #13 2024-09-29 19:55:02 ~1 min windows 📦zip
5ffdbe9 #15 2024-09-30 07:16:47 ~13 sec android 📄log
5ffdbe9 #15 2024-09-30 07:17:02 ~13 sec linux 📄log
✖️ 5ffdbe9 #15 2024-09-30 07:17:04 ~13 sec tests 📄log
5ffdbe9 #18 2024-09-30 07:17:26 ~47 sec macos 📄log
✔️ 5ffdbe9 #15 2024-09-30 07:17:58 ~1 min windows 📦zip
✔️ 5ffdbe9 #15 2024-09-30 07:18:28 ~1 min macos 📦zip
✔️ 5ffdbe9 #15 2024-09-30 07:18:44 ~2 min tests-rpc 📄log
✔️ 5ffdbe9 #16 2024-09-30 07:20:14 ~3 min ios 📦zip
e18c381 #19 2024-09-30 09:20:11 ~50 sec macos 📄log
✖️ e18c381 #16 2024-09-30 09:20:26 ~56 sec tests 📄log
✔️ e18c381 #16 2024-09-30 09:20:28 ~1 min windows 📦zip
✔️ e18c381 #16 2024-09-30 09:20:53 ~1 min android 📦aar
✔️ e18c381 #16 2024-09-30 09:21:05 ~1 min macos 📦zip
✔️ e18c381 #16 2024-09-30 09:21:22 ~2 min linux 📦zip
✔️ e18c381 #16 2024-09-30 09:21:29 ~2 min tests-rpc 📄log
✔️ e18c381 #17 2024-09-30 09:22:30 ~3 min ios 📦zip
✖️ 88337c4 #17 2024-10-10 13:56:51 ~1 min tests 📄log
✔️ 88337c4 #17 2024-10-10 13:58:06 ~2 min tests-rpc 📄log
✔️ 88337c4 #17 2024-10-10 13:58:53 ~3 min macos 📦zip
✔️ 88337c4 #17 2024-10-10 13:59:01 ~3 min windows 📦zip
✔️ 88337c4 #17 2024-10-10 13:59:26 ~3 min linux 📦zip
✔️ 88337c4 #18 2024-10-10 13:59:31 ~3 min ios 📦zip
✔️ 88337c4 #17 2024-10-10 14:00:55 ~5 min android 📦aar
88337c4 #20 2024-10-10 14:01:01 ~5 min macos 📄log
88337c4 #21 2024-10-10 15:26:59 ~2 min macos 📄log
✔️ 22ac6a3 #18 2024-10-11 08:28:11 ~2 min macos 📦zip
✔️ 22ac6a3 #18 2024-10-11 08:28:19 ~2 min tests-rpc 📄log
✔️ 22ac6a3 #18 2024-10-11 08:28:31 ~2 min windows 📦zip
22ac6a3 #22 2024-10-11 08:29:06 ~3 min macos 📄log
✔️ 22ac6a3 #18 2024-10-11 08:29:50 ~3 min linux 📦zip
✔️ 22ac6a3 #19 2024-10-11 08:30:08 ~4 min ios 📦zip
✔️ 22ac6a3 #18 2024-10-11 08:30:38 ~4 min android 📦aar
✔️ 22ac6a3 #18 2024-10-11 08:58:06 ~31 min tests 📄log
f1601e1 #23 2024-10-11 09:51:19 ~53 sec macos 📄log
✔️ f1601e1 #19 2024-10-11 09:51:38 ~1 min windows 📦zip
✔️ f1601e1 #19 2024-10-11 09:52:50 ~2 min tests-rpc 📄log
✔️ f1601e1 #20 2024-10-11 09:54:05 ~3 min ios 📦zip
✔️ f1601e1 #19 2024-10-11 09:54:20 ~3 min linux 📦zip
✔️ f1601e1 #19 2024-10-11 09:55:13 ~4 min macos 📦zip
✔️ f1601e1 #19 2024-10-11 09:55:19 ~4 min android 📦aar
✔️ f1601e1 #19 2024-10-11 10:22:50 ~32 min tests 📄log
f1601e1 #24 2024-10-11 10:27:21 ~42 sec macos 📄log
✔️ f1601e1 #25 2024-10-15 09:11:42 ~2 min macos 📦zip
✔️ db7c634 #20 2024-10-15 18:36:40 ~1 min windows 📦zip
✔️ db7c634 #20 2024-10-15 18:37:04 ~1 min android 📦aar
✔️ db7c634 #20 2024-10-15 18:37:12 ~1 min macos 📦zip
✔️ db7c634 #20 2024-10-15 18:37:36 ~2 min linux 📦zip
✔️ db7c634 #20 2024-10-15 18:37:37 ~2 min tests-rpc 📄log
✔️ db7c634 #26 2024-10-15 18:38:01 ~2 min macos 📦zip
✔️ db7c634 #21 2024-10-15 18:38:45 ~3 min ios 📦zip
✔️ db7c634 #20 2024-10-15 19:05:54 ~30 min tests 📄log
✔️ a4cfd92 #21 2024-10-17 09:48:46 ~1 min windows 📦zip
✔️ a4cfd92 #21 2024-10-17 09:49:18 ~1 min android 📦aar
✔️ a4cfd92 #21 2024-10-17 09:49:28 ~1 min macos 📦zip
✔️ a4cfd92 #21 2024-10-17 09:49:57 ~2 min tests-rpc 📄log
✔️ a4cfd92 #27 2024-10-17 09:50:23 ~2 min macos 📦zip
✔️ a4cfd92 #22 2024-10-17 09:50:38 ~2 min ios 📦zip
✔️ a4cfd92 #21 2024-10-17 09:51:12 ~3 min linux 📦zip
✔️ a4cfd92 #21 2024-10-17 10:20:34 ~32 min tests 📄log
✔️ ea829f5 #22 2024-10-17 17:48:20 ~56 sec windows 📦zip
✔️ ea829f5 #22 2024-10-17 17:48:26 ~1 min tests-rpc 📄log
✔️ ea829f5 #22 2024-10-17 17:48:58 ~1 min android 📦aar
✔️ ea829f5 #22 2024-10-17 17:49:05 ~1 min linux 📦zip
✔️ ea829f5 #22 2024-10-17 17:49:10 ~1 min macos 📦zip
✔️ ea829f5 #23 2024-10-17 17:50:07 ~2 min ios 📦zip
✔️ ea829f5 #28 2024-10-17 17:50:45 ~3 min macos 📦zip
✔️ ea829f5 #22 2024-10-17 18:17:56 ~30 min tests 📄log
23861d5 #23 2024-10-18 07:56:06 ~12 sec linux 📄log
23861d5 #23 2024-10-18 07:56:16 ~18 sec windows 📄log
23861d5 #29 2024-10-18 07:59:08 ~3 min macos 📄log
✔️ 23861d5 #23 2024-10-18 07:59:14 ~3 min macos 📦zip
✔️ 23861d5 #24 2024-10-18 08:00:52 ~5 min ios 📦zip
✔️ 23861d5 #23 2024-10-18 08:01:03 ~5 min android 📦aar
✔️ 23861d5 #23 2024-10-18 08:01:16 ~5 min tests-rpc 📄log
✔️ 23861d5 #23 2024-10-18 08:29:12 ~33 min tests 📄log
6c20330 #24 2024-10-18 09:10:26 ~16 sec windows 📄log
6c20330 #30 2024-10-18 09:11:23 ~1 min macos 📄log
✔️ 6c20330 #24 2024-10-18 09:11:58 ~1 min macos 📦zip
✔️ 6c20330 #24 2024-10-18 09:12:05 ~2 min android 📦aar
✔️ 6c20330 #25 2024-10-18 09:12:46 ~2 min ios 📦zip
✔️ 6c20330 #24 2024-10-18 09:14:46 ~4 min linux 📦zip
✔️ 6c20330 #24 2024-10-18 09:15:28 ~5 min tests-rpc 📄log
✖️ 6c20330 #24 2024-10-18 09:41:58 ~31 min tests 📄log
4f82810 #25 2024-10-21 14:53:15 ~12 sec linux 📄log
4f82810 #25 2024-10-21 14:53:51 ~40 sec windows 📄log
✔️ 4f82810 #25 2024-10-21 14:54:54 ~1 min android 📦aar
✔️ 4f82810 #25 2024-10-21 14:55:12 ~2 min macos 📦zip
4f82810 #31 2024-10-21 14:55:19 ~2 min macos 📄log
✔️ 4f82810 #26 2024-10-21 14:56:35 ~3 min ios 📦zip
✖️ 4f82810 #25 2024-10-21 15:01:47 ~8 min tests-rpc 📄log
✔️ 4f82810 #26 2024-10-21 15:15:39 ~5 min linux 📦zip
✔️ 4f82810 #25 2024-10-21 15:26:31 ~33 min tests 📄log
4f82810 #26 2024-10-21 17:32:25 ~42 sec windows 📄log
✔️ 4f82810 #27 2024-10-21 17:43:17 ~3 min windows 📦zip
4f82810 #32 2024-10-21 17:51:50 ~7 min macos 📄log
✔️ 45b1bde #26 2024-10-21 18:49:57 ~1 min android 📦aar
✔️ 45b1bde #26 2024-10-21 18:50:19 ~2 min macos 📦zip
✔️ 45b1bde #27 2024-10-21 18:50:41 ~2 min linux 📦zip
✔️ 45b1bde #28 2024-10-21 18:50:48 ~2 min windows 📦zip
✔️ 45b1bde #27 2024-10-21 18:51:11 ~3 min ios 📦zip
✔️ 45b1bde #26 2024-10-21 18:53:28 ~5 min tests-rpc 📄log
45b1bde #33 2024-10-21 18:54:25 ~6 min macos 📄log
45b1bde #34 2024-10-21 19:00:49 ~4 min macos 📄log
✔️ 45b1bde #26 2024-10-21 19:22:19 ~34 min tests 📄log
3c34fb2 #35 2024-10-21 19:44:18 ~1 min macos 📄log
✔️ 3c34fb2 #27 2024-10-21 19:44:21 ~1 min android 📦aar
✔️ 3c34fb2 #28 2024-10-21 19:45:24 ~2 min linux 📦zip
✔️ 3c34fb2 #29 2024-10-21 19:45:24 ~2 min windows 📦zip
✔️ 3c34fb2 #28 2024-10-21 19:45:31 ~2 min ios 📦zip
✔️ 3c34fb2 #27 2024-10-21 19:46:22 ~3 min macos 📦zip
✖️ 3c34fb2 #27 2024-10-21 19:48:13 ~5 min tests-rpc 📄log
✔️ 3c34fb2 #27 2024-10-21 20:16:22 ~33 min tests 📄log
✔️ 47d1b40 #30 2024-10-22 10:41:19 ~2 min windows 📦zip
✔️ 47d1b40 #28 2024-10-22 10:41:26 ~2 min macos 📦zip
✔️ 47d1b40 #29 2024-10-22 10:43:00 ~4 min ios 📦zip
✔️ 47d1b40 #29 2024-10-22 10:44:19 ~5 min linux 📦zip
✔️ 47d1b40 #28 2024-10-22 10:44:50 ~6 min android 📦aar
47d1b40 #36 2024-10-22 10:45:34 ~7 min macos 📄log
✖️ 47d1b40 #28 2024-10-22 10:46:00 ~7 min tests-rpc 📄log
47d1b40 #37 2024-10-22 11:02:30 ~5 min macos 📄log
✔️ 47d1b40 #28 2024-10-22 11:11:13 ~32 min tests 📄log
✔️ ab633eb #29 2024-10-22 13:23:03 ~2 min android 📦aar
✔️ ab633eb #29 2024-10-22 13:23:28 ~2 min macos 📦zip
✔️ ab633eb #31 2024-10-22 13:23:39 ~2 min windows 📦zip
✔️ ab633eb #30 2024-10-22 13:23:53 ~3 min linux 📦zip
✔️ ab633eb #30 2024-10-22 13:24:07 ~3 min ios 📦zip
ab633eb #38 2024-10-22 13:25:45 ~4 min macos 📄log
✖️ ab633eb #29 2024-10-22 13:27:16 ~6 min tests-rpc 📄log
✔️ ab633eb #29 2024-10-22 13:54:40 ~33 min tests 📄log
✔️ 53464d2 #30 2024-10-22 13:48:14 ~2 min android 📦aar
✔️ 53464d2 #30 2024-10-22 13:48:19 ~2 min macos 📦zip
✔️ 53464d2 #32 2024-10-22 13:48:35 ~2 min windows 📦zip
✔️ 53464d2 #31 2024-10-22 13:48:45 ~2 min ios 📦zip
✔️ 53464d2 #31 2024-10-22 13:49:01 ~3 min linux 📦zip
53464d2 #39 2024-10-22 13:51:02 ~4 min macos 📄log
✖️ 53464d2 #30 2024-10-22 13:52:09 ~6 min tests-rpc 📄log
✔️ 53464d2 #30 2024-10-22 14:29:12 ~34 min tests 📄log
0072887 #32 2024-10-22 17:17:05 ~15 sec linux 📄log
✔️ 0072887 #33 2024-10-22 17:19:30 ~2 min windows 📦zip
✔️ 0072887 #32 2024-10-22 17:19:48 ~2 min ios 📦zip
✔️ 0072887 #31 2024-10-22 17:21:13 ~4 min macos 📦zip
✔️ 0072887 #31 2024-10-22 17:22:18 ~5 min android 📦aar
✔️ 0072887 #31 2024-10-22 17:22:43 ~5 min tests-rpc 📄log
✔️ 0072887 #33 2024-10-22 17:27:33 ~2 min linux 📦zip
✔️ 0072887 #41 2024-10-22 17:35:32 ~5 min macos 📦zip
✔️ 0072887 #31 2024-10-22 17:49:08 ~32 min tests 📄log
5b2ab95 #34 2024-10-23 08:11:12 ~28 sec windows 📄log
✔️ 5b2ab95 #32 2024-10-23 08:12:49 ~2 min android 📦aar
✔️ 5b2ab95 #32 2024-10-23 08:13:07 ~2 min macos 📦zip
✔️ 5b2ab95 #34 2024-10-23 08:13:28 ~2 min linux 📦zip
✔️ 5b2ab95 #33 2024-10-23 08:13:47 ~3 min ios 📦zip
✖️ 5b2ab95 #32 2024-10-23 08:16:08 ~5 min tests-rpc 📄log
✔️ 5b2ab95 #42 2024-10-23 08:16:46 ~6 min macos 📦zip
✔️ 5b2ab95 #32 2024-10-23 08:41:55 ~31 min tests 📄log
✖️ 2ccf248 #33 2024-10-23 08:21:14 ~2 min tests-rpc 📄log
✔️ 2ccf248 #33 2024-10-23 08:21:19 ~2 min macos 📦zip
✔️ 2ccf248 #33 2024-10-23 08:21:27 ~2 min android 📦aar
✔️ 2ccf248 #35 2024-10-23 08:21:52 ~2 min windows 📦zip
✔️ 2ccf248 #35 2024-10-23 08:21:56 ~2 min linux 📦zip
✔️ 2ccf248 #34 2024-10-23 08:22:02 ~2 min ios 📦zip
✔️ 2ccf248 #44 2024-10-23 08:38:19 ~5 min macos 📦zip
✔️ 2ccf248 #33 2024-10-23 09:14:17 ~32 min tests 📄log
✖️ 2ccf248 #34 2024-10-23 09:31:22 ~5 min tests-rpc 📄log
377aeb1 #34 2024-10-23 13:48:12 ~14 sec android 📄log
377aeb1 #35 2024-10-23 13:48:16 ~17 sec ios 📄log
377aeb1 #34 2024-10-23 13:48:20 ~16 sec macos 📄log
✖️ 377aeb1 #34 2024-10-23 13:48:21 ~14 sec tests 📄log
✖️ 377aeb1 #35 2024-10-23 13:48:28 ~23 sec tests-rpc 📄log
377aeb1 #36 2024-10-23 13:48:30 ~28 sec linux 📄log
377aeb1 #45 2024-10-23 13:48:37 ~32 sec macos 📄log
✔️ 377aeb1 #36 2024-10-23 13:51:18 ~3 min windows 📦zip
f7c3509 #35 2024-10-23 13:51:20 ~14 sec macos 📄log
✔️ f7c3509 #35 2024-10-23 13:53:25 ~2 min android 📦aar
✔️ f7c3509 #36 2024-10-23 13:53:52 ~2 min ios 📦zip
✔️ f7c3509 #37 2024-10-23 13:54:21 ~2 min windows 📦zip
✔️ f7c3509 #46 2024-10-23 13:55:21 ~4 min macos 📦zip
✔️ f7c3509 #37 2024-10-23 13:56:05 ~5 min linux 📦zip
✖️ f7c3509 #36 2024-10-23 13:56:42 ~5 min tests-rpc 📄log
✔️ f7c3509 #35 2024-10-23 14:22:28 ~31 min tests 📄log
✔️ f7c3509 #36 2024-10-23 14:25:34 ~2 min macos 📦zip
✔️ 2dbf270 #37 2024-10-23 18:11:40 ~2 min macos 📦zip
✔️ 2dbf270 #36 2024-10-23 18:12:00 ~2 min android 📦aar
✔️ 2dbf270 #38 2024-10-23 18:12:06 ~2 min windows 📦zip
✔️ 2dbf270 #37 2024-10-23 18:12:16 ~2 min ios 📦zip
✔️ 2dbf270 #38 2024-10-23 18:14:17 ~4 min linux 📦zip
✔️ 2dbf270 #37 2024-10-23 18:15:15 ~5 min tests-rpc 📄log
✔️ 2dbf270 #36 2024-10-23 18:40:55 ~31 min tests 📄log
✔️ ed8c6c5 #37 2024-10-23 19:00:25 ~1 min android 📦aar
✔️ ed8c6c5 #38 2024-10-23 19:00:54 ~2 min tests-rpc 📄log
✔️ ed8c6c5 #38 2024-10-23 19:01:50 ~3 min ios 📦zip
✔️ ed8c6c5 #37 2024-10-23 19:32:48 ~34 min tests 📄log
835ef42 #40 2024-10-24 07:17:57 ~29 sec windows 📄log
✔️ 835ef42 #38 2024-10-24 07:19:42 ~2 min android 📦aar
✔️ 835ef42 #40 2024-10-24 07:20:31 ~3 min linux 📦zip
✔️ 835ef42 #39 2024-10-24 07:21:19 ~3 min macos 📦zip
✔️ 835ef42 #39 2024-10-24 07:22:03 ~4 min ios 📦zip
✖️ 835ef42 #39 2024-10-24 07:23:10 ~5 min tests-rpc 📄log
✔️ 835ef42 #49 2024-10-24 07:25:11 ~7 min macos 📦zip
✔️ 835ef42 #38 2024-10-24 07:49:30 ~32 min tests 📄log
✔️ 6bb00aa #39 2024-10-24 07:35:35 ~2 min android 📦aar
✖️ 6bb00aa #40 2024-10-24 07:35:36 ~2 min tests-rpc 📄log
✔️ 6bb00aa #40 2024-10-24 07:35:47 ~2 min macos 📦zip
✔️ 6bb00aa #41 2024-10-24 07:36:25 ~2 min linux 📦zip
✔️ 6bb00aa #41 2024-10-24 07:37:52 ~4 min windows 📦zip
✔️ 6bb00aa #40 2024-10-24 07:38:11 ~4 min ios 📦zip
✔️ 6bb00aa #50 2024-10-24 07:38:59 ~5 min macos 📦zip
✔️ 6bb00aa #39 2024-10-24 08:21:45 ~32 min tests 📄log
✔️ bcdb17c #40 2024-10-24 08:27:18 ~2 min android 📦aar
✖️ bcdb17c #41 2024-10-24 08:27:23 ~2 min tests-rpc 📄log
✔️ bcdb17c #41 2024-10-24 08:29:00 ~3 min macos 📦zip
✔️ bcdb17c #42 2024-10-24 08:29:28 ~4 min windows 📦zip
✔️ bcdb17c #41 2024-10-24 08:29:37 ~4 min ios 📦zip
✔️ bcdb17c #42 2024-10-24 08:30:27 ~5 min linux 📦zip
✔️ bcdb17c #51 2024-10-24 08:37:00 ~11 min macos 📦zip
✔️ bcdb17c #40 2024-10-24 08:57:29 ~32 min tests 📄log
4552288 #43 2024-10-24 08:38:56 ~43 sec windows 📄log
✖️ 4552288 #42 2024-10-24 08:40:19 ~2 min tests-rpc 📄log
✔️ 4552288 #41 2024-10-24 08:40:25 ~2 min android 📦aar
✔️ 4552288 #42 2024-10-24 08:42:31 ~4 min ios 📦zip
✔️ 4552288 #43 2024-10-24 08:43:22 ~5 min linux 📦zip
✔️ 4552288 #44 2024-10-24 08:44:43 ~4 min windows 📦zip
✔️ 4552288 #42 2024-10-24 08:44:43 ~6 min macos 📦zip
✔️ 4552288 #52 2024-10-24 08:49:54 ~11 min macos 📦zip
✔️ 4552288 #41 2024-10-24 09:29:38 ~31 min tests 📄log
✔️ d4cebe2 #43 2024-10-24 09:13:55 ~1 min tests-rpc 📄log
✔️ d4cebe2 #42 2024-10-24 09:14:26 ~2 min android 📦aar
✔️ d4cebe2 #43 2024-10-24 09:15:05 ~3 min macos 📦zip
✔️ d4cebe2 #45 2024-10-24 09:16:33 ~4 min windows 📦zip
✔️ d4cebe2 #43 2024-10-24 09:16:41 ~4 min ios 📦zip
✔️ d4cebe2 #44 2024-10-24 09:18:28 ~6 min linux 📦zip
✔️ d4cebe2 #53 2024-10-24 09:20:35 ~8 min macos 📦zip
✔️ 5e345dc #44 2024-10-24 09:23:06 ~2 min tests-rpc 📄log
✔️ 5e345dc #43 2024-10-24 09:23:23 ~2 min android 📦aar
✔️ 5e345dc #44 2024-10-24 09:24:53 ~3 min macos 📦zip
✔️ 5e345dc #46 2024-10-24 09:25:23 ~4 min windows 📦zip
✔️ 5e345dc #44 2024-10-24 09:25:52 ~4 min ios 📦zip
✔️ 5e345dc #45 2024-10-24 09:26:13 ~5 min linux 📦zip
✔️ 5e345dc #54 2024-10-24 09:29:23 ~8 min macos 📦zip
✔️ 419c4e6 #45 2024-10-24 09:29:24 ~2 min tests-rpc 📄log
✔️ 419c4e6 #44 2024-10-24 09:29:32 ~2 min android 📦aar
✔️ 419c4e6 #45 2024-10-24 09:29:52 ~2 min ios 📦zip
✔️ 419c4e6 #47 2024-10-24 09:30:26 ~3 min windows 📦zip
✔️ 419c4e6 #46 2024-10-24 09:32:03 ~4 min linux 📦zip
✔️ 419c4e6 #45 2024-10-24 09:32:30 ~5 min macos 📦zip
✔️ 419c4e6 #55 2024-10-24 09:42:03 ~12 min macos 📦zip
✔️ 419c4e6 #42 2024-10-24 10:01:58 ~32 min tests 📄log
✔️ c4fe8e0 #46 2024-10-24 09:58:33 ~1 min tests-rpc 📄log
✔️ c4fe8e0 #45 2024-10-24 09:58:49 ~2 min android 📦aar
✔️ c4fe8e0 #46 2024-10-24 10:01:07 ~4 min ios 📦zip
✔️ c4fe8e0 #43 2024-10-24 10:34:06 ~31 min tests 📄log
✔️ efd70db #46 2024-10-24 10:14:07 ~2 min android 📦aar
✖️ efd70db #47 2024-10-24 10:14:29 ~2 min macos 📦zip
✖️ efd70db #49 2024-10-24 10:14:50 ~2 min windows 📦zip
✔️ efd70db #47 2024-10-24 10:14:59 ~3 min ios 📦zip
✖️ efd70db #48 2024-10-24 10:15:07 ~3 min linux 📦zip
✖️ efd70db #47 2024-10-24 10:17:30 ~5 min tests-rpc 📄log
✖️ efd70db #57 2024-10-24 10:20:25 ~8 min macos 📦zip
✖️ 5f1444a #48 2024-10-24 10:45:58 ~2 min tests-rpc 📄log
✔️ 5f1444a #47 2024-10-24 10:46:10 ~2 min android 📦aar
✖️ 5f1444a #50 2024-10-24 10:46:39 ~2 min windows 📦zip
✖️ 5f1444a #49 2024-10-24 10:46:46 ~2 min linux 📦zip
✔️ 5f1444a #48 2024-10-24 10:46:47 ~2 min ios 📦zip
✖️ 5f1444a #48 2024-10-24 10:48:10 ~4 min macos 📦zip
✖️ 5f1444a #58 2024-10-24 10:49:11 ~5 min macos 📦zip
✔️ 5f1444a #45 2024-10-24 11:22:36 ~31 min tests 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ c677c6b #48 2024-10-24 10:54:33 ~2 min android 📦aar
✔️ c677c6b #51 2024-10-24 10:55:03 ~2 min windows 📦zip
✔️ c677c6b #49 2024-10-24 10:56:00 ~3 min ios 📦zip
✔️ c677c6b #49 2024-10-24 10:56:40 ~4 min macos 📦zip
✔️ c677c6b #50 2024-10-24 10:56:57 ~4 min linux 📦zip
✔️ c677c6b #59 2024-10-24 10:57:30 ~5 min macos 📦zip
✖️ c677c6b #49 2024-10-24 10:57:53 ~5 min tests-rpc 📄log
✔️ c677c6b #46 2024-10-24 11:54:57 ~32 min tests 📄log
✔️ 80fbdba #50 2024-10-24 19:36:23 ~2 min macos 📦zip
✔️ 80fbdba #49 2024-10-24 19:36:35 ~3 min android 📦aar
✔️ 80fbdba #52 2024-10-24 19:36:44 ~3 min windows 📦zip
✔️ 80fbdba #50 2024-10-24 19:36:57 ~3 min ios 📦zip
✔️ 80fbdba #51 2024-10-24 19:37:17 ~3 min linux 📦zip
✔️ 80fbdba #50 2024-10-24 19:39:47 ~6 min tests-rpc 📄log
✔️ 80fbdba #60 2024-10-24 19:41:26 ~7 min macos 📦zip
✔️ 80fbdba #47 2024-10-24 20:06:58 ~33 min tests 📄log

Copy link
Member

@jakubgs jakubgs left a comment

Choose a reason for hiding this comment

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

Seems like the only difference here is whether we use sh or nix.shell() right?

Why not just make a wrapper shell function that uses one or the other depending on platform?

_assets/ci/Jenkinsfile.windows Outdated Show resolved Hide resolved
Copy link
Member

@jakubgs jakubgs left a comment

Choose a reason for hiding this comment

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

Looking good.

_assets/ci/Jenkinsfile.desktop Outdated Show resolved Hide resolved
@mendelskiv93 mendelskiv93 force-pushed the ci/desktop-build branch 3 times, most recently from 615c629 to b1ada8c Compare September 24, 2024 18:27
Copy link
Member

@jakubgs jakubgs left a comment

Choose a reason for hiding this comment

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

Good stuff.

@jakubgs
Copy link
Member

jakubgs commented Sep 27, 2024

This build error on MacOS x86_64:

In file included from /nix/store/rc2mfzjdfnhfm8grc4zi0p85m4k7rj7k-apple-framework-CoreServices-11.0.0/Library/Frameworks/CoreServices.framework/Frameworks/OSServices.framework/Headers/CSIdentity.h:43:
In file included from /nix/store/ggzvbag576nnphvr1y5869yx26m0kr82-apple-framework-Security-11.0.0/Library/Frameworks/Security.framework/Headers/Security.h:87:
/nix/store/ggzvbag576nnphvr1y5869yx26m0kr82-apple-framework-Security-11.0.0/Library/Frameworks/Security.framework/Headers/SecCode.h:35:10: fatal error: 'xpc/xpc.h' file not found
#include <xpc/xpc.h>
         ^~~~~~~~~~~
1 error generated.
make: *** [Makefile:215: statusgo-library] Error 1

Is most probably caused by missing component of Apple SDK, which actually does exist under darwin.apple_sdk.libs.xpc:
https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/os-specific/darwin/apple-sdk/default.nix

We can see an example of pulling an Apple SDK framework in nim-waku:
https://github.com/waku-org/nwaku/blob/dc9725b98a30db457028cef57da8c0691c6d3589/shell.nix#L16

@jakubgs
Copy link
Member

jakubgs commented Sep 27, 2024

We could pull in only darwin.apple_sdk.libs.xpc to limit size, but we could also pull in whole darwin.apple_sdk to avoid future issues with missing libraries like this.

@jakubgs
Copy link
Member

jakubgs commented Sep 27, 2024

One possible fix would be to override the Apple SDK version since it's different depending on architecture:

  # Pick an SDK
  apple_sdk = if stdenv.hostPlatform.isAarch64 then apple_sdk_11_0 else apple_sdk_10_12;

https://github.com/NixOS/nixpkgs/blob/e9ee548d90ff586a6471b4ae80ae9cfcbceb3420/pkgs/top-level/darwin-packages.nix#L50-L51

So we could just override that in the nix/overlay.nix:

  drawin.apple_sdk = prev.darwin.apple_sdk_11_0;

Since Apple SDK is probably already include in some form in the stdenv for MacOS.

@mendelskiv93 mendelskiv93 force-pushed the ci/desktop-build branch 6 times, most recently from ee73bec to 1e8b012 Compare September 29, 2024 20:02
Copy link
Member

@yakimant yakimant left a comment

Choose a reason for hiding this comment

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

LGTM

@mendelskiv93
Copy link
Contributor Author

so the question is, are we properly overriding the apple_sdk?

good question. And the answear was no due to overrideSDK.

Adding proper override:

  appleSdk11Stdenv = pkgs.overrideSDK pkgs.stdenv "11.0";
  sdk11mkShell = pkgs.mkShell.override { stdenv = appleSdk11Stdenv; };
  mkShell = if stdenv.isDarwin then sdk11mkShell else pkgs.mkShell;

fixed all errors and we don't need to include any additional libs or frameworks now that we are using apple_sdk_11_0 for both darwin platforms.

Good read: NixOS/nixpkgs#287609

@mendelskiv93 mendelskiv93 force-pushed the ci/desktop-build branch 2 times, most recently from 5b2ab95 to 2ccf248 Compare October 23, 2024 08:18
Copy link
Member

@jakubgs jakubgs left a comment

Choose a reason for hiding this comment

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

Looks good to me. Just remember to squash this stuff and add explanation on why we need to override mkShell to the commit and PR descriptions. Including the build error might also be a good idea.

nix/shell.nix Outdated Show resolved Hide resolved
@mendelskiv93 mendelskiv93 force-pushed the ci/desktop-build branch 15 times, most recently from 5f1444a to c677c6b Compare October 24, 2024 10:51
- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).
@mendelskiv93 mendelskiv93 merged commit 6ee6206 into develop Oct 25, 2024
22 checks passed
@mendelskiv93 mendelskiv93 deleted the ci/desktop-build branch October 25, 2024 07:40
shashankshampi added a commit that referenced this pull request Oct 30, 2024
fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

fix(ci)_: remove workspace and tmp dir

This ensures we do not encounter weird errors like:
```
+ ln -s /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907 /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go
ln: failed to create symbolic link '/home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go': File exists
script returned exit code 1
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

cleanup

added logger and cleanup

review comments changes
shashankshampi added a commit that referenced this pull request Oct 30, 2024
author shashankshampi <shashank.sanket1995@gmail.com> 1729780155 +0530
committer shashankshampi <shashank.sanket1995@gmail.com> 1730274350 +0530

test: Code Migration from status-cli-tests
fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

fix(ci)_: remove workspace and tmp dir

This ensures we do not encounter weird errors like:
```
+ ln -s /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907 /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go
ln: failed to create symbolic link '/home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go': File exists
script returned exit code 1
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

cleanup

added logger and cleanup

review comments changes

fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

test_: remove port bind

chore(wallet)_: move route execution code to separate module

chore_: replace geth logger with zap logger (#5962)

closes: #6002

feat(telemetry)_: add metrics for message reliability (#5899)

* feat(telemetry)_: track message reliability

Add metrics for dial errors, missed messages,
missed relevant messages, and confirmed delivery.

* fix_: handle error from json marshal

chore_: use zap logger as request logger

iterates: status-im/status-desktop#16536

test_: unique project per run

test_: use docker compose v2, more concrete project name

fix(codecov)_: ignore folders without tests

Otherwise Codecov reports incorrect numbers when making changes.
https://docs.codecov.com/docs/ignoring-paths

Signed-off-by: Jakub Sokołowski <jakub@status.im>

test_: verify schema of signals during init; fix schema verification warnings (#5947)

fix_: update defaultGorushURL (#6011)

fix(tests)_: use non-standard port to avoid conflicts

We have observed `nimbus-eth2` build failures reporting this port:
```json
{
  "lvl": "NTC",
  "ts": "2024-10-28 13:51:32.308+00:00",
  "msg": "REST HTTP server could not be started",
  "topics": "beacnde",
  "address": "127.0.0.1:5432",
  "reason": "(98) Address already in use"
}
```
https://ci.status.im/job/nimbus-eth2/job/platforms/job/linux/job/x86_64/job/main/job/PR-6683/3/

Signed-off-by: Jakub Sokołowski <jakub@status.im>

fix_: create request logger ad-hoc in tests

Fixes `TestCall` failing when run concurrently.

chore_: configure codecov (#6005)

* chore_: configure codecov

* fix_: after_n_builds
shashankshampi added a commit that referenced this pull request Oct 30, 2024
author shashankshampi <shashank.sanket1995@gmail.com> 1729780155 +0530
committer shashankshampi <shashank.sanket1995@gmail.com> 1730274350 +0530

test: Code Migration from status-cli-tests
fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

fix(ci)_: remove workspace and tmp dir

This ensures we do not encounter weird errors like:
```
+ ln -s /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907 /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go
ln: failed to create symbolic link '/home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go': File exists
script returned exit code 1
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

cleanup

added logger and cleanup

review comments changes

fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

test_: remove port bind

chore(wallet)_: move route execution code to separate module

chore_: replace geth logger with zap logger (#5962)

closes: #6002

feat(telemetry)_: add metrics for message reliability (#5899)

* feat(telemetry)_: track message reliability

Add metrics for dial errors, missed messages,
missed relevant messages, and confirmed delivery.

* fix_: handle error from json marshal

chore_: use zap logger as request logger

iterates: status-im/status-desktop#16536

test_: unique project per run

test_: use docker compose v2, more concrete project name

fix(codecov)_: ignore folders without tests

Otherwise Codecov reports incorrect numbers when making changes.
https://docs.codecov.com/docs/ignoring-paths

Signed-off-by: Jakub Sokołowski <jakub@status.im>

test_: verify schema of signals during init; fix schema verification warnings (#5947)

fix_: update defaultGorushURL (#6011)

fix(tests)_: use non-standard port to avoid conflicts

We have observed `nimbus-eth2` build failures reporting this port:
```json
{
  "lvl": "NTC",
  "ts": "2024-10-28 13:51:32.308+00:00",
  "msg": "REST HTTP server could not be started",
  "topics": "beacnde",
  "address": "127.0.0.1:5432",
  "reason": "(98) Address already in use"
}
```
https://ci.status.im/job/nimbus-eth2/job/platforms/job/linux/job/x86_64/job/main/job/PR-6683/3/

Signed-off-by: Jakub Sokołowski <jakub@status.im>

fix_: create request logger ad-hoc in tests

Fixes `TestCall` failing when run concurrently.

chore_: configure codecov (#6005)

* chore_: configure codecov

* fix_: after_n_builds
fbarbu15 pushed a commit that referenced this pull request Nov 9, 2024
author shashankshampi <shashank.sanket1995@gmail.com> 1729780155 +0530
committer shashankshampi <shashank.sanket1995@gmail.com> 1730274350 +0530

test: Code Migration from status-cli-tests
fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

fix(ci)_: remove workspace and tmp dir

This ensures we do not encounter weird errors like:
```
+ ln -s /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907 /home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go
ln: failed to create symbolic link '/home/jenkins/workspace/go_prs_linux_x86_64_main_PR-5907@tmp/go/src/github.com/status-im/status-go': File exists
script returned exit code 1
```

Signed-off-by: Jakub Sokołowski <jakub@status.im>

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

cleanup

added logger and cleanup

review comments changes

fix_: functional tests (#5979)

* fix_: generate on test-functional

* chore(test)_: fix functional test assertion

---------

Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>

feat(accounts)_: cherry-pick Persist acceptance of Terms of Use & Privacy policy (#5766) (#5977)

* feat(accounts)_: Persist acceptance of Terms of Use & Privacy policy (#5766)

The original GH issue status-im/status-mobile#21113
came from a request from the Legal team. We must show to Status v1 users the new
terms (Terms of Use & Privacy Policy) right after they upgrade to Status v2
from the stores.

The solution we use is to create a flag in the accounts table, named
hasAcceptedTerms. The flag will be set to true on the first account ever
created in v2 and we provide a native call in mobile/status.go#AcceptTerms,
which allows the client to persist the user's choice in case they are upgrading
(from v1 -> v2, or from a v2 older than this PR).

This solution is not the best because we should store the setting in a separate
table, not in the accounts table.

Related Mobile PR status-im/status-mobile#21124

* fix(test)_: Compare addresses using uppercased strings

---------

Co-authored-by: Icaro Motta <icaro.ldm@gmail.com>

test_: restore account (#5960)

feat_: `LogOnPanic` linter (#5969)

* feat_: LogOnPanic linter

* fix_: add missing defer LogOnPanic

* chore_: make vendor

* fix_: tests, address pr comments

* fix_: address pr comments

chore_: enable windows and macos CI build (#5840)

- Added support for Windows and macOS in CI pipelines
- Added missing dependencies for Windows and x86-64-darwin
- Resolved macOS SDK version compatibility for darwin-x86_64

The `mkShell` override was necessary to ensure compatibility with the newer
macOS SDK (version 11.0) for x86_64. The default SDK (10.12) was causing build failures
because of the missing libs and frameworks. OverrideSDK creates a mapping from
the default SDK in all package categories to the requested SDK (11.0).

fix(contacts)_: fix trust status not being saved to cache when changed (#5965)

Fixes status-im/status-desktop#16392

test_: remove port bind

chore(wallet)_: move route execution code to separate module

chore_: replace geth logger with zap logger (#5962)

closes: #6002

feat(telemetry)_: add metrics for message reliability (#5899)

* feat(telemetry)_: track message reliability

Add metrics for dial errors, missed messages,
missed relevant messages, and confirmed delivery.

* fix_: handle error from json marshal

chore_: use zap logger as request logger

iterates: status-im/status-desktop#16536

test_: unique project per run

test_: use docker compose v2, more concrete project name

fix(codecov)_: ignore folders without tests

Otherwise Codecov reports incorrect numbers when making changes.
https://docs.codecov.com/docs/ignoring-paths

Signed-off-by: Jakub Sokołowski <jakub@status.im>

test_: verify schema of signals during init; fix schema verification warnings (#5947)

fix_: update defaultGorushURL (#6011)

fix(tests)_: use non-standard port to avoid conflicts

We have observed `nimbus-eth2` build failures reporting this port:
```json
{
  "lvl": "NTC",
  "ts": "2024-10-28 13:51:32.308+00:00",
  "msg": "REST HTTP server could not be started",
  "topics": "beacnde",
  "address": "127.0.0.1:5432",
  "reason": "(98) Address already in use"
}
```
https://ci.status.im/job/nimbus-eth2/job/platforms/job/linux/job/x86_64/job/main/job/PR-6683/3/

Signed-off-by: Jakub Sokołowski <jakub@status.im>

fix_: create request logger ad-hoc in tests

Fixes `TestCall` failing when run concurrently.

chore_: configure codecov (#6005)

* chore_: configure codecov

* fix_: after_n_builds
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.

Build status-go on windows and macos
5 participants