Skip to content

ci: trigger status-app build - #7480

Open
siddarthkay wants to merge 6 commits into
developfrom
fix-client-build
Open

ci: trigger status-app build#7480
siddarthkay wants to merge 6 commits into
developfrom
fix-client-build

Conversation

@siddarthkay

@siddarthkay siddarthkay commented May 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Trigger client (status-app) builds on status-go changes.
  • Default branch for status-app build is master but can be updated in _assets/ci/Jenkinsfile.status-app to point to branch if a status-go change needs a fix in status-app.
  • Would catch build failures introduced by status-go changes.
  • also nuke annoying conventional commit gh workflow, we had this for legacy reasons to catch breaking changes. this is no longer useful.

@siddarthkay siddarthkay self-assigned this May 27, 2026
@github-actions

Copy link
Copy Markdown

⚠️ Companion PR Required

Add a link to your status-app PR in this PR's description.

Example: https://github.com/status-im/status-app/pull/123

@status-im-auto

status-im-auto commented May 27, 2026

Copy link
Copy Markdown
Member

Jenkins Builds

Click to see older builds (94)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 0b3b407 1 2026-05-27 10:50:50 ~3 min linux/status-go 📦zip
✔️ 0b3b407 1 2026-05-27 10:53:57 ~6 min windows/status-go 📦zip
✖️ 0b3b407 1 2026-05-27 11:09:12 ~21 min tests-rpc 📄log
✔️ 0b3b407 1 2026-05-27 11:24:53 ~37 min tests 📄log
✔️ 39d30e8 2 2026-05-27 11:00:57 ~6 min windows/status-go 📦zip
✔️ 39d30e8 2 2026-05-27 11:01:31 ~4 min macos/status-go 📦zip
✖️ 39d30e8 2 2026-05-27 11:36:36 ~27 min tests-rpc 📄log
✔️ 39d30e8 2 2026-05-27 12:12:43 ~47 min tests 📄log
✖️ 2325a7c 3 2026-05-28 09:56:41 ~44 sec tests-rpc 📄log
2325a7c 3 2026-05-28 09:59:23 ~3 min linux/status-go 📄log
✖️ 2325a7c 3 2026-05-28 10:00:39 ~4 min tests 📄log
✔️ 2325a7c 3 2026-05-28 10:00:47 ~4 min macos/status-go 📦zip
✔️ 2325a7c 3 2026-05-28 10:01:33 ~5 min windows/status-go 📦zip
✔️ ab2a47d 4 2026-05-29 09:52:08 ~5 min windows/status-go 📦zip
✔️ ab2a47d 4 2026-05-29 09:55:09 ~9 min linux/status-go 📦zip
✔️ ab2a47d 4 2026-05-29 09:55:20 ~9 min macos/status-go 📦zip
✔️ ab2a47d 4 2026-05-29 10:24:32 ~38 min tests 📄log
818a49b 5 2026-07-30 16:30:48 ~36 sec windows/status-go 📄log
✔️ 818a49b 5 2026-07-30 16:35:54 ~5 min macos/status-go 📦zip
✔️ 818a49b 5 2026-07-30 17:15:42 ~45 min linux/status-go 📦zip
✔️ 818a49b 5 2026-07-30 17:35:14 ~1 hr 5 min tests 📄log
✔️ 818a49b 5 2026-07-30 17:36:58 ~1 hr 6 min tests-rpc 📄log
✔️ 818a49b 1 2026-07-30 17:58:42 ~1 hr 28 min tests-rpc-compat 📄log
69a1222 6 2026-07-31 04:03:16 ~37 sec windows/status-go 📄log
✔️ 69a1222 6 2026-07-31 04:07:57 ~5 min macos/status-go 📦zip
✔️ 69a1222 6 2026-07-31 04:15:28 ~13 min linux/status-go 📦zip
✔️ 69a1222 6 2026-07-31 04:24:32 ~21 min tests 📄log
✔️ 69a1222 6 2026-07-31 04:33:07 ~30 min tests-rpc 📄log
✔️ 69a1222 2 2026-07-31 05:03:20 ~1 hr 0 min tests-rpc-compat 📄log
⁉️ 69a1222 4 2026-07-31 05:09:12 ~1 hr 6 min unknown 📄log
69a1222 7 2026-07-31 07:08:40 ~8 min windows/status-go 📄log
✔️ 69a1222 8 2026-07-31 07:24:06 ~7 min windows/status-go 📦zip
4e03335 9 2026-08-02 12:05:53 ~36 sec windows/status-go 📄log
4e03335 10 2026-08-02 12:06:31 ~32 sec windows/status-go 📄log
✔️ 4e03335 8 2026-08-02 12:11:02 ~5 min macos/status-go 📦zip
✔️ 4e03335 11 2026-08-02 12:18:36 ~7 min windows/status-go 📦zip
✔️ 4e03335 8 2026-08-02 12:21:24 ~2 min linux/status-go 📦zip
✔️ 4e03335 8 2026-08-02 12:26:53 ~21 min tests 📄log
✔️ 4e03335 4 2026-08-02 12:32:28 ~26 min tests-rpc-compat 📄log
✔️ 4e03335 8 2026-08-02 12:37:25 ~31 min tests-rpc 📄log
4e03335 6 2026-08-02 12:53:09 ~47 min unknown 📄log
4e03335 7 2026-08-02 15:26:38 ~47 min unknown 📄log
4e03335 8 2026-08-02 17:41:19 ~1 hr 3 min unknown 📄log
✔️ c6c4837 7 2026-08-02 12:18:18 ~13 min linux/status-go 📦zip
9d88dc1 12 2026-08-04 06:25:58 ~2 min windows/status-go 📄log
✔️ 9d88dc1 9 2026-08-04 06:28:16 ~4 min macos/status-go 📦zip
✔️ 9d88dc1 13 2026-08-04 06:41:48 ~7 min windows/status-go 📦zip
✔️ 9d88dc1 9 2026-08-04 08:01:02 ~1 hr 37 min tests-rpc 📄log
✔️ 3118de5 14 2026-08-04 07:38:16 ~5 min windows/status-go 📦zip
✔️ 3118de5 10 2026-08-04 08:05:04 ~32 min macos/status-go 📦zip
✔️ 3118de5 10 2026-08-04 08:25:22 ~52 min linux/status-go 📦zip
✔️ 3118de5 10 2026-08-04 08:51:34 ~50 min tests-rpc 📄log
✖️ 3118de5 10 2026-08-04 09:57:48 ~1 hr 32 min tests 📄log
3118de5 10 2026-08-04 10:30:31 ~2 hr 58 min unknown 📄log
✔️ 3118de5 6 2026-08-04 10:47:49 ~1 hr 44 min tests-rpc-compat 📄log
✔️ 4b7d327 15 2026-08-04 12:45:25 ~28 min windows/status-go 📦zip
✔️ 4b7d327 11 2026-08-04 13:01:56 ~44 min macos/status-go 📦zip
✔️ 4b7d327 12 2026-08-04 13:07:17 ~5 min macos/status-go 📦zip
✔️ 4b7d327 11 2026-08-04 13:10:02 ~52 min linux/status-go 📦zip
✔️ 4b7d327 11 2026-08-04 13:24:07 ~1 hr 6 min tests 📄log
✔️ 4b7d327 11 2026-08-04 13:31:16 ~1 hr 14 min tests-rpc 📄log
✔️ 4b7d327 12 2026-08-04 13:42:20 ~32 min linux/status-go 📦zip
✔️ 4b7d327 7 2026-08-04 13:45:26 ~1 hr 28 min tests-rpc-compat 📄log
4b7d327 12 2026-08-04 15:31:06 ~3 hr 13 min unknown 📄log
✔️ 958aaf5 13 2026-08-05 03:08:28 ~6 min macos/status-go 📦zip
✔️ 958aaf5 16 2026-08-05 03:09:21 ~7 min windows/status-go 📦zip
✔️ 958aaf5 13 2026-08-05 03:15:12 ~13 min linux/status-go 📦zip
✔️ 958aaf5 12 2026-08-05 03:21:44 ~19 min tests 📄log
✖️ 958aaf5 12 2026-08-05 03:31:03 ~28 min tests-rpc 📄log
✔️ 958aaf5 8 2026-08-05 03:55:49 ~53 min tests-rpc-compat 📄log
958aaf5 13 2026-08-05 04:03:15 ~1 hr 1 min unknown 📄log
✔️ 24f110c 14 2026-08-05 09:23:42 ~28 min linux/status-go 📦zip
✖️ 24f110c 13 2026-08-05 09:23:53 ~28 min tests-rpc 📄log
✔️ 24f110c 13 2026-08-05 09:35:55 ~40 min tests 📄log
✔️ 24f110c 17 2026-08-05 09:37:20 ~41 min windows/status-go 📦zip
✔️ 24f110c 14 2026-08-05 09:43:08 ~47 min macos/status-go 📦zip
✔️ 24f110c 9 2026-08-05 09:51:48 ~56 min tests-rpc-compat 📄log
✔️ e83553a 15 2026-08-05 09:38:11 ~14 min linux/status-go 📦zip
✔️ e83553a 14 2026-08-05 09:51:32 ~27 min tests-rpc 📄log
✔️ e83553a 18 2026-08-05 09:58:09 ~20 min windows/status-go 📦zip
✔️ e83553a 14 2026-08-05 09:59:06 ~23 min tests 📄log
✔️ e83553a 15 2026-08-05 10:12:04 ~28 min macos/status-go 📦zip
✔️ e83553a 10 2026-08-05 10:27:48 ~35 min tests-rpc-compat 📄log
⁉️ e83553a 15 2026-08-05 12:05:38 ~3 hr 0 min unknown 📄log
✔️ 18f0d5b 16 2026-08-05 12:12:22 ~3 min linux/status-go 📦zip
✔️ 3bafdd3 17 2026-08-05 12:14:46 ~5 min macos/status-go 📦zip
✔️ 3bafdd3 17 2026-08-05 12:15:30 ~2 min linux/status-go 📦zip
✔️ 3bafdd3 19 2026-08-05 12:19:04 ~9 min windows/status-go 📦zip
✔️ 3bafdd3 15 2026-08-05 12:20:27 ~11 min tests 📄log
✔️ 3bafdd3 20 2026-08-05 12:29:23 ~9 min windows/status-go 📦zip
✔️ 3bafdd3 16 2026-08-05 12:31:09 ~10 min tests 📄log
✔️ 3bafdd3 16 2026-08-05 12:31:36 ~22 min tests-rpc 📄log
✔️ 3bafdd3 12 2026-08-05 12:53:26 ~43 min tests-rpc-compat 📄log
3bafdd3 17 2026-08-05 13:18:47 ~1 hr 9 min unknown 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ dc78a0d 18 2026-08-05 13:25:44 ~3 min linux/status-go 📦zip
✔️ dc78a0d 18 2026-08-05 13:27:25 ~4 min macos/status-go 📦zip
✔️ dc78a0d 21 2026-08-05 13:29:43 ~6 min windows/status-go 📦zip
✔️ dc78a0d 17 2026-08-05 13:33:29 ~10 min tests 📄log
✔️ dc78a0d 17 2026-08-05 13:41:05 ~18 min tests-rpc 📄log
✔️ dc78a0d 13 2026-08-05 13:55:15 ~32 min tests-rpc-compat 📄log
dc78a0d 18 2026-08-05 14:26:18 ~1 hr 3 min unknown 📄log
dc78a0d 19 2026-08-05 15:32:25 ~1 hr 5 min unknown 📄log
dc78a0d 20 2026-08-06 12:31:21 ~1 hr 0 min unknown 📄log

@codecov

codecov Bot commented May 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.47%. Comparing base (d99d2e1) to head (dc78a0d).

Additional details and impacted files
@@             Coverage Diff              @@
##           develop    #7480       +/-   ##
============================================
+ Coverage    42.34%   62.47%   +20.12%     
============================================
  Files          854      870       +16     
  Lines       117865   121044     +3179     
============================================
+ Hits         49911    75621    +25710     
+ Misses       61509    37720    -23789     
- Partials      6445     7703     +1258     
Flag Coverage Δ
functional 42.27% <ø> (-0.08%) ⬇️
unit 56.20% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 533 files with indirect coverage changes

@siddarthkay
siddarthkay force-pushed the fix-client-build branch 2 times, most recently from 2325a7c to ab2a47d Compare May 29, 2026 09:45
@siddarthkay
siddarthkay marked this pull request as ready for review July 31, 2026 04:04
@siddarthkay
siddarthkay requested review from a team and 0xM3R as code owners July 31, 2026 04:04

@alexjba alexjba 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.

Not sure how it would work. E.g. Changing a signature in status-go requires nim-statusgo update, statusapp bump + some code alignments.

I see the status-app companion PR most useful for quick testing - reviewers and QA can grab the build and do a quick check on it. So I'm not sure a status-app compilation job is a good replacement.

@siddarthkay

Copy link
Copy Markdown
Contributor Author

@alexjba : The point here is that the companion PR forced a dev to perform a task which this job automates.
The status-app job will build all client packages with the current version of status-go and catch build failures if any.

Screenshot 2026-07-31 at 12 31 33 PM

QA can still grab artefacts from here and test if they want to.

If change in status-go introduces a build failure in status-app then this job will force a dev to fix the relevant compatibility issue in status-app otherwise devs that do not introduce such changes can just merge their status-go PR without having to worry about opening companion PRs.

@alexjba

alexjba commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

@siddarthkay what would be the flow in this case:

I'm changing a signature in status-go. It needs a nim-status-go PR first and then a status-app PR, otherwise status-app will fail to link status-go.

@siddarthkay

Copy link
Copy Markdown
Contributor Author

hmm the nim-status-go repo if consumed only by status-app should not be a separate repo.
We didn't have this problem in status-legacy because the bindings or wrapper around status-go lived in status-legacy itself.

In this case the separate repo is complicating the workflow.

@alexjba

alexjba commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

true, there's no good reason to keep nim-status-go as a separate repo. Ideally all these bindings would be generated.
But even so, a change in the signature that's not backwards compatible would still get in the way here.

@jrainville jrainville left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This fixes #7667

I guess it will be up to us to enforce companion PRs in the case where APIs are changed, because then running the e2e suite would be good too.
but similar to the nim-status-go bindings, we cannot test it easily

@siddarthkay

siddarthkay commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

@alexjba: To make things easier I made status-im/status-app#21746 to bring in nim-status-go into status-app
Please review that change, now status-go signature change will only need a status-app PR to test.

@jrainville: I can run status-app E2E after status-app client builds are done here itself, so that would reduce friction?

@jakubgs

jakubgs commented Aug 3, 2026

Copy link
Copy Markdown
Member

a change in the signature that's not backwards compatible would still get in the way here

The hell does that even mean?

@alexjba

alexjba commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

a change in the signature that's not backwards compatible would still get in the way here

The hell does that even mean?

The new job would fail on a change like this because status-app expects a different signature for Login. Anyways, I don't mean to block this work, just making sure we're all on the same page about enforcing backwards compatibility on status-go since we didn't had it before.

--- a/pkg/backend/geth_backend.go
+++ b/pkg/backend/geth_backend.go
@@ -857,7 +857,7 @@ func (b *StatusBackend) GetEnsUsernames() ([]*ens.UsernameDetail, error) {
        return db.GetEnsUsernames(&removed)
 }
 
-func (b *StatusBackend) Login(keyUID, password string) error {
+func (b *StatusBackend) Login(password string) error {
        return b.startNodeWithAccount(multiaccounts.Account{KeyUID: keyUID}, password, nil, nil)
 }

@siddarthkay

Copy link
Copy Markdown
Contributor Author

Hmm fair enough, currently this job builds status-go PR against master of status-app. For such cases it would be beneficial to allow specifying a branch of status-app to build against... to verify compatibility.

Then the signature changes could be made in status-app, that should solve the problem?

@alexjba

alexjba commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Hmm fair enough, currently this job builds status-go PR against master of status-app. For such cases it would be beneficial to allow specifying a branch of status-app to build against... to verify compatibility.

Then the signature changes could be made in status-app, that should solve the problem?

Yes

@siddarthkay
siddarthkay force-pushed the fix-client-build branch 2 times, most recently from 4b7d327 to 958aaf5 Compare August 5, 2026 03:01
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Thank you for opening this pull request!

We require pull request titles and commits to follow the Conventional Commits specification and it looks like your PR needs to be adjusted.

Details:

According to the conventional-commits specification, some of the commit messages are not valid.

@siddarthkay

Copy link
Copy Markdown
Contributor Author

@alexjba : I added the support for building a branch of status-app here : 958aaf5

and this is an example of how to use it : 24f110c

@jakubgs jakubgs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks nice, way better than the separate PR check.

Comment thread _assets/ci/Jenkinsfile.status-app Outdated
Comment thread _assets/ci/Jenkinsfile.status-app Outdated

@jakubgs jakubgs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Much nicer. Though separate triggerE2E() could have kept things simpler.

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.

6 participants