Skip to content

Add CI workflows by copy/pasting the meta-qcom ones#118

Closed
koenkooi wants to merge 18 commits intoqualcomm-linux:mainfrom
koenkooi:ci-copy/paste
Closed

Add CI workflows by copy/pasting the meta-qcom ones#118
koenkooi wants to merge 18 commits intoqualcomm-linux:mainfrom
koenkooi:ci-copy/paste

Conversation

@koenkooi
Copy link
Contributor

To get CI going on meta-qcom-distro, copy over the meta-qcom workflows with minimal changes.

The changes are:

  • Drop poky
  • change 'meta-qcom' rules to list 'meta-qcom-distro'

@koenkooi koenkooi self-assigned this Dec 16, 2025
@koenkooi koenkooi marked this pull request as draft December 16, 2025 15:27
@koenkooi
Copy link
Contributor Author

Marking this as draft since:

  1. The commits need to get squashed
  2. The commits need better commit messages
  3. This is completely untested

steps:
- uses: actions/checkout@v4
with:
repository: qualcomm-linux/meta-qcom
Copy link
Contributor

Choose a reason for hiding this comment

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

don't you need to say master here? or is it the default? perhaps better to say it though, so that we have less chances to make a mistake when we branch for LTS!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

Copy link
Contributor

Choose a reason for hiding this comment

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

Should the branch name be extracted as a param? We can do that later, of course. Or maybe we should use GITHUB_BASE_REF / GITHUB_REF here.

@koenkooi
Copy link
Contributor Author

Since the nuts and bolts of this seem to be working, do we want to change the list of machines and images this builds?

cache_dir: ${CACHE_DIR}
kas: ${KAS_CONTAINER}

publish_summary:
Copy link
Contributor

Choose a reason for hiding this comment

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

not for this PR, but we need to figure out how not to duplicate this one, and turn it into a reusable action. can you make a note for it?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure

@@ -0,0 +1,31 @@
name: Build on push
Copy link
Contributor

Choose a reason for hiding this comment

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

please update README to show the status of HEAD.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done, not sure how to check that.


on:
workflow_run:
workflows: ["Build on PR"]
Copy link
Contributor

Choose a reason for hiding this comment

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

the test-pr did not run in your branch. probably because it needs to be merged in master to get the event.. not blocking, but we will need to make sure tests are run when we merge.

Copy link
Contributor

@lumag lumag left a comment

Choose a reason for hiding this comment

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

I somewhat dislike the dropping of the build matrix change. It makes this CI to be a downstream of the meta-qcom one. In my opinion, we should be doing exactly the opposite: the meta-qcom should be validated against poky-altcfg (possibly +meta-oe), while this repo should validate the final product: meta-qcom, all our meta-layer-dependencies, etc.

Think about meta-virt breaking one of the recipes. With the proposed workflow it will still affect our meta-qcom builds (which it should not). Instead, meta-virt (again, pure example) issues should only be affecting meta-qcom-distro builds.

steps:
- uses: actions/checkout@v4
with:
repository: qualcomm-linux/meta-qcom
Copy link
Contributor

Choose a reason for hiding this comment

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

Should the branch name be extracted as a param? We can do that later, of course. Or maybe we should use GITHUB_BASE_REF / GITHUB_REF here.

@ndechesne
Copy link
Contributor

I somewhat dislike the dropping of the build matrix change. It makes this CI to be a downstream of the meta-qcom one. In my opinion, we should be doing exactly the opposite: the meta-qcom should be validated against poky-altcfg (possibly +meta-oe), while this repo should validate the final product: meta-qcom, all our meta-layer-dependencies, etc.

Think about meta-virt breaking one of the recipes. With the proposed workflow it will still affect our meta-qcom builds (which it should not). Instead, meta-virt (again, pure example) issues should only be affecting meta-qcom-distro builds.

I appreciate your comment and share most of it. However we've been procrastinating about meta-qcom-distro CI for months now, and nothing was merged. This PR , as mentioned in the initial log, is to 'get CI going'. We can (and will) optimize/rework the meta-qcom/meta-qcom-distro workflows once we have an initial CI in place (note that we need to think about meta-qcom-3rdparty too). would that work?

@lumag
Copy link
Contributor

lumag commented Jan 5, 2026

I somewhat dislike the dropping of the build matrix change. It makes this CI to be a downstream of the meta-qcom one. In my opinion, we should be doing exactly the opposite: the meta-qcom should be validated against poky-altcfg (possibly +meta-oe), while this repo should validate the final product: meta-qcom, all our meta-layer-dependencies, etc.
Think about meta-virt breaking one of the recipes. With the proposed workflow it will still affect our meta-qcom builds (which it should not). Instead, meta-virt (again, pure example) issues should only be affecting meta-qcom-distro builds.

I appreciate your comment and share most of it. However we've been procrastinating about meta-qcom-distro CI for months now, and nothing was merged. This PR , as mentioned in the initial log, is to 'get CI going'. We can (and will) optimize/rework the meta-qcom/meta-qcom-distro workflows once we have an initial CI in place (note that we need to think about meta-qcom-3rdparty too). would that work?

I'd prefer to keep the full matrix here, inside meta-qcom-distro and then drop all meta-qcom-distro jobs from meta-qcom layer.

@ndechesne
Copy link
Contributor

I somewhat dislike the dropping of the build matrix change. It makes this CI to be a downstream of the meta-qcom one. In my opinion, we should be doing exactly the opposite: the meta-qcom should be validated against poky-altcfg (possibly +meta-oe), while this repo should validate the final product: meta-qcom, all our meta-layer-dependencies, etc.
Think about meta-virt breaking one of the recipes. With the proposed workflow it will still affect our meta-qcom builds (which it should not). Instead, meta-virt (again, pure example) issues should only be affecting meta-qcom-distro builds.

I appreciate your comment and share most of it. However we've been procrastinating about meta-qcom-distro CI for months now, and nothing was merged. This PR , as mentioned in the initial log, is to 'get CI going'. We can (and will) optimize/rework the meta-qcom/meta-qcom-distro workflows once we have an initial CI in place (note that we need to think about meta-qcom-3rdparty too). would that work?

I'd prefer to keep the full matrix here, inside meta-qcom-distro and then drop all meta-qcom-distro jobs from meta-qcom layer.

me too. but:

  1. this is a drastic change which impact all CI (LAVA tests) and downstream users who are used to get images from meta-qcom, so this might take time to agree/merge
  2. if we make this change, we no longer test meta-qcom-distro as part of meta-qcom CI, which I think we should do one way or the other
    So we are back at procrastinating again if we go on that path i think. hence the idea to have a first temporary CI, and then take the time to decide what else we want to do.

@lumag
Copy link
Contributor

lumag commented Jan 5, 2026

2. if we make this change, we no longer test meta-qcom-distro as part of meta-qcom CI, which I think we should do one way or the other

I think, it is a proper thing to do. meta-qcom is not dependent on meta-qcom-distro, so issues in meta-qcom-distro (or its dependencies) should not affect meta-qcom.

I would propose to enable full matrix of builds here (as a way to end up procrastination too). Then we can start pointing out people to meta-qcom-distro builds, etc.

@ricardosalveti
Copy link
Contributor

  1. if we make this change, we no longer test meta-qcom-distro as part of meta-qcom CI, which I think we should do one way or the other

I think, it is a proper thing to do. meta-qcom is not dependent on meta-qcom-distro, so issues in meta-qcom-distro (or its dependencies) should not affect meta-qcom.

I would propose to enable full matrix of builds here (as a way to end up procrastination too). Then we can start pointing out people to meta-qcom-distro builds, etc.

Yeah, let's duplicate the matrix here and work on moving people to start fetching the jobs (and related testing / lava changes) from this repo instead. We can have the duplicated CI for a few weeks, decide on a date and remove the extra CI from meta-qcom.

We had quite a few build failures over the past few weeks that are really qcom-distro related, so it is good to reduce the CI complexity from meta-qcom soon.

@koenkooi
Copy link
Contributor Author

koenkooi commented Jan 8, 2026

The yocto-check-layer.sh script turns out to hardcode meta-qcom a lot, so that has to get fixed/duplicated.

This repo needs CI, as a first step copy over the workflow from
qualcomm-linux/meta-com.git with the folllowing changes:

 * Change repository name checks to repo owner checks
   This should be propagated to all repos using this style of workflows
   to make sharing of the same code snippets easier.
 * Change 'meta-qcom' to 'meta-qcom-distro' where approriate
   And the reverse, specify 'meta-qcom' where things like KAS config files
   are referenced.
 * Reuse 'compile' action from meta-qcom.git instead of duplicating it

The KAS configuration files and CI helper scripts present in meta-qcom.git/ci/
are being pulled from there for each CI run, they are not being copied
or modified.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
The CI only needs to test if the DISTROs work, not the BSPs itself,
so restrict the build to the following 3 machines:
 * qcom-armv7a
 * qcom-armv8a
 * rb3gen2-core-kit

Restrict the KVM build to qcom-armv8a, it is not supported on armv7a
machines.

As a consequence: drop the warmup task, it isn't needed with the much
reduced scope.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Since we share sstate with meta-qcom, the monthly reaper covers us as
well, so drop it from here.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
The CI build here is a subset of meta-qcom.git, so this can be dropped.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
…per repo

Checkout meta-qcom-distro and run the layer and patch checker helpers
against that, not meta-qcom.git.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
…eta-qcom CI

Meta-qcom-distro CI should test all the combinations it supports and not
depend on CI from other reps like meta-qcom to accomplish this.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Removing the 'compile_warmpup' step also removed the dependencies the
compile step needs. Reinstated those.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
…m and explicity chdir into it

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
…cto-lts KAS configs

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
This now hardcodes 'meta-qcom-distro' and removes the BSP checks, since
this isn't a BSP layer.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
@ricardosalveti
Copy link
Contributor

As we discussed on slack, closing this one in favor of #139

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.

4 participants

Comments