Skip to content

Introduce weekly build workflow to reduce load on nightly - #1418

Closed
Viswanath Kraleti (vkraleti) wants to merge 1 commit into
qualcomm-linux:masterfrom
vkraleti:weekly
Closed

Viswanath Kraleti (vkraleti) wants to merge 1 commit into
qualcomm-linux:masterfrom
vkraleti:weekly

Conversation

@vkraleti

@vkraleti Viswanath Kraleti (vkraleti) commented Jan 21, 2026

Copy link
Copy Markdown
Contributor

Currently, some of the builds produced by the nightly workflow are not
consumed on a daily basis. Introduce the weekly-build workflow to
handle builds that are needed less frequently, reducing the load on
nightly builds.

Comment thread .github/workflows/build-yocto-weekly.yml Outdated
@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 95ffb91be25a0aaaec4f5f5da1bb96a95a6fbb8e

@test-reporting-app

test-reporting-app Bot commented Jan 21, 2026

Copy link
Copy Markdown

Test Results

 14 files   14 suites   1h 12m 39s ⏱️
 13 tests   9 ✅ 0 💤 4 ❌
124 runs  120 ✅ 0 💤 4 ❌

For more details on these failures, see this check.

Results for commit 5b6aa24a.

♻️ This comment has been updated with latest results.

@vkraleti
Viswanath Kraleti (vkraleti) marked this pull request as draft January 21, 2026 15:47
@ricardosalveti

Copy link
Copy Markdown
Contributor

I agree with the general idea, and we should also move some of the pr builds into nightly as well, we're building way too many duplicated things at this stage.

For example, we don't need to build kvm and sota with both qcom-next and 6.18, just building the generic image with 6.18 should already be enough to catch most issues.

Then we also do a similar optimization for a weekly if needed.

@vkraleti

Copy link
Copy Markdown
Contributor Author

Nicolas Dechesne (@ndechesne) Ricardo Salveti (@ricardosalveti) Jose Quaresma (@quaresmajose) I cleanup the patch and made the implementation simpler. Please check once. I am yet to move jobs to weekly. If you agree with this approach I'll add one more commit to move some jobs to weekly.

Comment thread .github/workflows/build-yocto.yml
@vkraleti
Viswanath Kraleti (vkraleti) marked this pull request as ready for review January 29, 2026 09:20
@vkraleti Viswanath Kraleti (vkraleti) changed the title RFC: Introduce weekly build workflow to reduce load on nightly Introduce weekly build workflow to reduce load on nightly Jan 29, 2026
Comment thread .github/workflows/build-yocto.yml Outdated
Comment thread .github/workflows/build-yocto.yml
Comment thread .github/workflows/build-yocto.yml

@lumag Dmitry Baryshkov (lumag) 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.

I think the huge build yaml should be split into reusable parts. Then those parts should be selected via some rules (e.g. weekly, when the file changes, etc.). In the end, the SELinux jobs need to be executed when somebody changes the policy. Likewise 6.18 needs to be built (and tested) for PRs which touch 6.18.

Comment thread .github/workflows/build-yocto.yml Outdated
name: performance
yamlfile: ':ci/qcom-distro-prop-image.yml:ci/performance.yml'
kernel:
type: 6.18

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.

This part can't get in, we need to be testing 6.18 on PRs that change it.

- sm8750-mtp
distro:
- name: qcom-distro-selinux
yamlfile: ':ci/qcom-distro-selinux.yml'

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.

So... How do we make sure that SELinux doesn't regress? Especially on PRs.

@lumag

Copy link
Copy Markdown
Contributor

General comment: one of the options might be to rework separate build and test stages into a single action which builds the image and then tests it (on several hardware pieces). Then it would be easier to schedule build-test actions depending on the conditions.

@quaresmajose

Copy link
Copy Markdown
Contributor

I think the huge build yaml should be split into reusable parts. Then those parts should be selected via some rules (e.g. weekly, when the file changes, etc.). In the end, the SELinux jobs need to be executed when somebody changes the policy. Likewise 6.18 needs to be built (and tested) for PRs which touch 6.18.

I agree with something like this approach. We can move all the matrix to actions and specify some tables with the scheduling and condictons to be used:

distroA - daily
distroB - weekly
distroC - montly
distroX - <condicton>

machineX - <condicton>

configX - <condicton>

With that can check if all the condiction meets and run the actions or skip it. However, this adds a lot of complexity that we don't currently have.

Comment thread .github/workflows/weekly-build.yml Outdated

permissions:
checks: write
pull-requests: write

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.

These should ideally not be defined at workflow level. I assume this is needed for publish-results only.

Perhaps something that should be done in a separate PR. I can send this once all workflow PRs are merged.

@ricardosalveti

Copy link
Copy Markdown
Contributor

Viswanath Kraleti (@vkraleti) can we revisit this one? I would like to spread some of our builds into nightly / weekly.

@vkraleti

Copy link
Copy Markdown
Contributor Author

Viswanath Kraleti (@vkraleti) can we revisit this one? I would like to spread some of our builds into nightly / weekly.

Sure, I am also feeling the pain of resetting almost every PR multiple times.

…kly jobs

Introduce a new `mode` input with `daily` or `weekly` as acceptable values
in the build-yocto workflow. Define individual warm-up and compile steps for
both modes.

Move SELinux, SOTA, performance and RT kernel builds from the daily to the
weekly job. This helps reduce load on daily CI runs while still ensuring
periodic validation of less frequently used configurations.

Update nightly, PR, and push workflows to invoke build-yocto with
`mode: "daily"` to preserve existing behavior.

Signed-off-by: Viswanath Kraleti <viswanath.kraleti@oss.qualcomm.com>
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