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

Add support for using artifacts from another Job #185

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

fepitre
Copy link
Member

@fepitre fepitre commented Feb 26, 2025

Our usecase is for cross-compiling Windows tools

Copy link

codecov bot commented Feb 26, 2025

Codecov Report

Attention: Patch coverage is 58.33333% with 10 lines in your changes missing coverage. Please review.

Project coverage is 78.65%. Comparing base (541c141) to head (bbb0767).
Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
qubesbuilder/config.py 37.50% 10 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #185      +/-   ##
==========================================
- Coverage   78.74%   78.65%   -0.10%     
==========================================
  Files          47       47              
  Lines        5388     5412      +24     
==========================================
+ Hits         4243     4257      +14     
- Misses       1145     1155      +10     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Our usecase is for cross-compiling Windows tools
@@ -859,3 +859,34 @@ For the `fetch` stage, the Qubes executor with disposable template `qubes-builde
For the `build` stage of `vm-fc42`, the Podman executor with container image `fedoraimg` will be used.
For the `sign` stage, the Qubes executor with disposable template `signing-access-dvm` will be used for both `vm-fc42` and `vm-jammy`
For the `prep` stage of `vm-jammy`, the Local executor with base directory `/some/path` will be used.

### Cross-compile Build
Copy link
Member

Choose a reason for hiding this comment

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

Technically, cross-compile is something else, like building ARM binaries on X86. Better use different term, like cross-distribution dependencies


```yaml
components:
- installer-qubes-os:
Copy link
Member

Choose a reason for hiding this comment

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

installer-qubes-os-windows-tools? (and below too)

Comment on lines +625 to +628
if (
isinstance(stage, dict)
and next(iter(stage)) == stage_name
and isinstance(stage[stage_name], dict)
Copy link
Member

Choose a reason for hiding this comment

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

At least some of this not matching should show a warning or even error. Otherwise it will be hard to find why it doesn't work if you make a typo (like extra - making it a list instead of dict).

Comment on lines +631 to +637
if all(
[
need.get("component", None),
need.get("distribution", None),
need.get("stage", None),
need.get("build", None),
]
Copy link
Member

Choose a reason for hiding this comment

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

and same here - if some part is missing, at least log a warning why it's ignored

Comment on lines +334 to +336
copy_in.append(
(artifact, self.executor.get_dependencies_dir())
)
Copy link
Member

Choose a reason for hiding this comment

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

should they all be copied together, or maybe better in separate subdirs? what if file names conflict (for example you declare QWT use vm-win10 and vm-win11 if that would exist)?

@marmarek marmarek mentioned this pull request Feb 26, 2025
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.

2 participants