- Implements DigiCert Keylocker, a cloud-based HSM solution, for signing release binaries.
- Development builds continue to use self-signed certificates for code signing.
- Bump status-jenkins-lib to configure environment variables for DigiCert credentials.
- Update signing script to conditionally use either DigiCert (for releases) or development certificate.
Tested on Windows with this PR:
- https://github.com/status-im/status-desktop/pull/17862
Closes [#183](https://github.com/status-im/infra-ci/issues/183)
- Windows signatures failing with error:
Error information: "Error: SignerSign() failed." (-2146869243/0x80096005)
SignTool Error: An unexpected internal error has occurred.
This commit:
- updates status-go to point to https://github.com/status-im/status-go/pull/6258
- updates nix derivation to switch to go 1.22
- swaps `sc3md` for `sc5md`
- updates docker image used by jenkins for linux jobs to image built with go 1.22.
- updates, linux, windows and MacOS build scripts to use go 1.22
* chore: identify version numbers using a git tag
- remove VERSION file
- expose the `GIT_COMMIT`so that we can properly construct the web links
when the user clicks the version number in Settings/About
- some smaller cleanups and warning fixes
Fixes#12349
* fix_: ci artifact version and use version scripts
---------
Co-authored-by: Igor Sirotin <sirotin@status.im>
Implement a prototype of integrating [WalletConnect Web SDK]()
- integrate WalletConnect Web SDK using Node.js and packing it using
[webpack](https://webpack.js.org/guides/getting-started/)
- this way, we achieve the same versioning strategy for the SDK
- add WalletConnectSDK view
- it is used to load the web SDK via a WebView (validated working on
Mac and Windows)
- add new app dependency of WebView QT
- also update vendor packages `Dotherside` and `nimqml` to add
required WebView::initialize API used to initialize the WebView
integration at the app start
- add WalletConnectPage to Storybook for quick prototyping
- Also add dependency for WebView Qt lib
- index.js is the wrapper used to provide a simple stateful interface
with the WC SDK
- Entry in ui/generate-rcc.go ensures the node_modules cache is excluded
from the resource file
Notes:
- Added `com.apple.security.cs.allow-jit` entitlement when signing the
app package. This allows Execution of JIT-compiled Code Entitlement
required by the fast-path of the JavaScriptCore framework on MacOS
platforms.
- Keep some debugging entries expected to help debugging Linux package
- Removed outdated `DerivationPathInputRegressionTests` qml test
Closes#12301
This now fails when the app is signed with a new certificate
create from our new Apple organization but is not notarized:
```
tmp/macos/dist/Status.app: rejected
source=Unnotarized Developer ID
```
I actually have absolutely no idea why this verification worked
with the old certificate, but it did.
For that reason I'm moving it to after notarization.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Fixes this failure:
```
error MSB8020: The build tools for Visual Studio 2017 (Platform Toolset = 'v141') cannot be found.
To build using the v141 build tools, please install Visual Studio 2017 build tools.
```
Signed-off-by: Jakub Sokołowski <jakub@status.im>
If we don't installe Go separately this is what happens:
```
PS C:\Users\jenkins> scoop install --global 7zip git dos2unix findutils wget rcedit inno-setup make cmake gcc go@1.20.4
Couldn't find manifest for 'C:\Users\admin\scoop\buckets\main\bucket\go.json7zip git dos2unix findutils wget rcedit inno-setup make cmake gc
```
Seems like some kind of parsing issue with providing a version.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Otherwise we get failures like:
```
parse error: Invalid numeric literal at line 1, column 11
```
Which results in `stderr` logs being included in `$OUT`.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Currently the `nimbus-build-system` exists twice in each checked out
`status-desktop` reposity, and each contains the `Nim-csources-v1`
submodule, which weights close to 900MB each:
https://github.com/nim-lang/csources_v1
Because of this each `status-destop` clone takes up 4 GB of disk space
after the cleanup has run, which is not okay.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Right now we don't see what's actually happening:
```
!!! Notariztion Error
{"tool-version":"5.4211.13411","tool-path":"\/Applications\/Xcode.app\/Contents\/SharedFrameworks\/ContentDeliveryServices.framework\/Versions\/A\/Frameworks\/AppStoreService.framework","os-version":"12.3.1","product-errors":[{"message":"You supplied an invalid RequestUUID: null","userInfo":{"NSLocalizedFailureReason":"Apple Services operation failed.","NSLocalizedRecoverySuggestion":"You supplied an invalid RequestUUID: null","NSLocalizedDescription":"You supplied an invalid RequestUUID: null"},"code":1515}],"warnings":[{"message":"altool has been deprecated for notarization and starting in late 2023 will no longer be supported by the Apple notary service. You should start using notarytool to notarize your software.","userInfo":{"NSLocalizedDescription":"altool has been deprecated for notarization and starting in late 2023 will no longer be supported by the Apple notary service. You should start using notarytool to notarize your software."},"code":-1030}]}
make: *** [notarize-macos] Error 1
```
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Please do not run 20 different things in a single stage.
It makes debugging much harder than it needs to be, since now you can
see at a glance the startup of which container fails easily.
Changes:
- Starting of Ganache and Nim-Waku containers extracted to separate stages
- Cleanup of containers moved to `cleanup` step after tests are executed
- Many variables moved to `enrivonment` section for job and some stages
- The `throttle` effect narrowed down just to the `Tests` stage and not whole job
- RPC API is used to get the Multiaddress of Nim-Waku node instead of hardcoding key
- Removed no longer necessary `status-go` history node related files
- `Jenkinsfile.uitests` was renamed to `Jenkinsfile.e2e` to match CI job names
Signed-off-by: Jakub Sokołowski <jakub@status.im>