-
Notifications
You must be signed in to change notification settings - Fork 27
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
Run TF-PSA-Crypto components without cloning Mbed TLS #190
base: main
Are you sure you want to change the base?
Conversation
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.
Just making myself familiar with the code.
Note: we'll want a test run showing that if a tf-psa-crypto component tries to reference an Mbed TLS file, it fails. (We'll probably want to create a faulty PR for that purpose.)
vars/gen_jobs.groovy
Outdated
@@ -245,7 +245,7 @@ echo >&2 'Note: "clang" will run /usr/bin/clang -Wno-error=c11-extensions' | |||
''' | |||
} | |||
|
|||
if (info.has_min_requirements) { | |||
if (repo == 'tls' && info.has_min_requirements) { |
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'm not sure I understand why we need the repo == 'tls'
part: currently tf-psa-crypto
doesn't have scripts/min_requirements.py
but I'd guess info.has_min_requirements
should reflect that?
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.
Also, it seems to me we'll need to get scripts/min_requirements.py
(and supporting files) in tf-psa-crypto (or the framework) before moving python scripts that have requirements beyond what happens to be already installed by apt. @ronald-cron-arm not sure if that dependency was already on your radar?
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.
No that was not on my radar. I can see that @valeriosetti has started working on Mbed-TLS/mbedtls-framework#86. Does this issue fully cover the dependency?
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 think it should.
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 can see that @valeriosetti has started working on Mbed-TLS/mbedtls-framework#86.
Yes, PRs Mbed-TLS/mbedtls-framework#105 and related ones (Mbed-TLS/mbedtls#9863 Mbed-TLS/mbedtls#9864) are ready for review. There's only the usual framework
confict on development
and mbedtls-3.6
, but that can easily be fixed once Mbed-TLS/mbedtls-framework#105 is merged.
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.
@mpg Currently the code only checks if min_requirements.py
exists in the MbedTLS branch we are testing, and this is what's represented by has_min_requirements
. Since we're planning to add such a script, I'll add a separate variable to track this for the framework.
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 the records, I created Mbed-TLS/TF-PSA-Crypto#148 to add min_requirements.py
to TF-PSA-Crypto
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.
Since we're planning to add such a script, I'll add a separate variable to track this for the framework.
Not sure if this was a typo, but just to be sure: I was talking about tf-psa-crypto, not the framework. Currently the plan is for scripts/min_requirements.py
to exist only in the two "top-level" repos (mbedtls, tf-psa-crypto).
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.
Ah, yes sorry, that was a typo - I meant tf-psa-crypto.
7b358ca
to
15000e9
Compare
@mpg I think I've addressed all the feedback. |
All the test runs completed successfully. |
vars/gen_jobs.groovy
Outdated
if (env.RUN_ALL_SH == "true") { | ||
info.all_all_sh_components.each({component, platform -> | ||
info.all_sh_components.each({ component, platform -> |
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.
info.all_sh_components.each({ component, platform -> | |
info.all_sh_components.each({component, platform -> |
29a641a
to
b745c14
Compare
@bensze01 have you run new tests with the last version? |
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 left a couple of remarks inline.
Also, commit "Test tf-psa-crypto components without Mbed TLS" a lot of things are happening:
- Adds a function for unified handling of repo checkout
- Adds another level of loop for dealing with multiple repos when collecting branch information
- Restricts non-all.sh jobs to the tls repo (with the exception of analyse outcomes which follows in the next commit)
- Extends prefix handling to handle multiple repos
I am not asking for any changes here, just for future reference, in similar cases breaking something like this down into more commits helps review and future development.
Overall I didn't find any blockers, the only reason I am not approving yet because I have a question about the test runs:
The reason for failure seems unrelated to this PR, still it makes me wonder if we understand what is going on there and why we don't want to get a green CI?
def jobs = infos.collectEntries { info -> | ||
String prefix = branches.size() > 1 ? "$info.branch-" : '' | ||
String prefix = '' |
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.
minor: This prefix calculation is repeated at least 4 times, maybe it would worth extracting it into a function.
} | ||
Map<String, Collection<String>> repos = ['tls': tls_branches, 'tf-psa-crypto': tf_psa_crypto_branches] | ||
// Filter out repos with no branches | ||
repos = repos.findAll({repo, branches -> branches}) |
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.
nitpick:
The explanation is there in the comment, but for my untrained eyes something like this would give a useful hint:
repos = repos.findAll{repo, branches -> branches != null}
(I would find the lack of brackets and the explicit instruction helpful pointers to parse the contents as a closure and not as a parameter list. The ->
operator is already there, and should be enough, but for some reason it takes time end effort for me to pick up on that.)
On the other hand, since we have the comment there already, we could go for idiomatic groovy, something like this should work I believe:
repos = repos.findAll{it}
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.
the only reason I am not approving yet because I have a question about the test runs
Oh, never mind, it is the ongoing CI incident.
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
Signed-off-by: Bence Szépkúti <[email protected]>
The Groovy CPS transformer doesn't support the use of the spread-dot operator on methods. Signed-off-by: Bence Szépkúti <[email protected]>
All Jenkins parameters are strings, which are not implicitly parsed when considering Groovy truthiness. Signed-off-by: Bence Szépkúti <[email protected]>
8687a61
to
1cfc68d
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.
Did the rebase and arrived at the same result.
Fixes Mbed-TLS/TF-PSA-Crypto#116
Older runs: