Skip to content

Split compile matrix into two batches - #3000

Draft
Viswanath Kraleti (vkraleti) wants to merge 1 commit into
qualcomm-linux:masterfrom
vkraleti:split-build-yocto
Draft

Split compile matrix into two batches#3000
Viswanath Kraleti (vkraleti) wants to merge 1 commit into
qualcomm-linux:masterfrom
vkraleti:split-build-yocto

Conversation

@vkraleti

Copy link
Copy Markdown
Contributor

The compile job's reusable-workflow strategy now produces more configurations than the 256-configuration limit for a single matrix. Split it into compile_batch1 and compile_batch2 by machine, since every exclude/include entry pins to one machine, so partitioning preserves exact build coverage across both batches.

The compile job's reusable-workflow strategy now produces more
configurations than the 256-configuration limit for a single matrix.
Split it into compile_batch1 and compile_batch2 by machine, since every
exclude/include entry pins to one machine, so partitioning preserves
exact build coverage across both batches.

Signed-off-by: Viswanath Kraleti <[email protected]>
Comment on lines 227 to +368
@@ -237,14 +241,6 @@ jobs:
- iq-x7181-evk
- kaanapali-mtp
- qcm6490-idp
- qcom-armv8a
- qcs615-ride
- qcs8300-ride-sx
- qcs9100-ride-sx
- rb1-core-kit
- rb3gen2-core-kit
- shikra-evk
- sm8750-mtp
distro:
- name: nodistro
yamlfile: ""
@@ -278,44 +274,8 @@ jobs:
name: qcom-distro
kernel:
type: default
- machine: qcom-armv8a
distro:
name: nodistro
kernel:
type: default
- machine: qcom-armv8a
distro:
name: qcom-distro
kernel:
type: default
- machine: rb3gen2-core-kit
distro:
name: nodistro
kernel:
type: default
- machine: rb3gen2-core-kit
distro:
name: qcom-distro
kernel:
type: default
include:
# Additional builds for specific machines
- machine: qcom-armv8a
distro:
name: nodistro-nogl
yamlfile: ':ci/test-oe-nogl.yml'
kernel:
type: default
dirname: ""
yamlfile: ""
- machine: qcom-armv8a
distro:
name: qcom-distro
yamlfile: ':ci/qcom-distro.yml'
kernel:
type: additional
dirname: "_linux-yocto-dev"
yamlfile: ":ci/linux-yocto-dev.yml"
- machine: iq-9075-evk
distro:
name: qcom-distro
@@ -332,14 +292,6 @@ jobs:
type: default
dirname: ""
yamlfile: ""
- machine: rb3gen2-core-kit
distro:
name: qcom-distro-kvm
yamlfile: ':ci/qcom-distro-kvm.yml'
kernel:
type: default
dirname: ""
yamlfile: ""
- machine: qcom-armv7a
distro:
name: nodistro
@@ -356,47 +308,168 @@ jobs:
type: default
dirname: ""
yamlfile: ""
- machine: qcs615-ride
- machine: iq-9075-evk
distro:
name: qcom-distro
yamlfile: ':ci/qcom-distro.yml'
kernel:
type: u-boot-qcom-6.18
dirname: "_linux-qcom-6.18_u-boot-qcom"
yamlfile: ":ci/linux-qcom-6.18.yml:ci/u-boot-qcom.yml"
- machine: rb3gen2-core-kit
- machine: iq-615-evk
distro:
name: qcom-distro
yamlfile: ':ci/qcom-distro.yml'
kernel:
type: u-boot-qcom-6.18
dirname: "_linux-qcom-6.18_u-boot-qcom"
yamlfile: ":ci/linux-qcom-6.18.yml:ci/u-boot-qcom.yml"
- machine: iq-9075-evk
- machine: iq-8275-evk
distro:
name: qcom-distro
yamlfile: ':ci/qcom-distro.yml'
kernel:
type: u-boot-qcom-6.18
dirname: "_linux-qcom-6.18_u-boot-qcom"
yamlfile: ":ci/linux-qcom-6.18.yml:ci/u-boot-qcom.yml"
- machine: iq-615-evk
- machine: iq-9075-evk-open-fw
distro:
name: qcom-distro-kvm
yamlfile: ':ci/qcom-distro-kvm.yml'
kernel:
type: default
dirname: ""
yamlfile: ""
- machine: sdx75-idp
distro:
name: nodistro
yamlfile: ""
kernel:
type: default
dirname: ""
yamlfile: ""
uses: ./.github/workflows/compile.yml
with:
name: ${{ matrix.machine }}/${{ matrix.distro.name }}${{ matrix.kernel.dirname }}
enabled: ${{inputs.profile != 'pr' || (matrix.distro.name != 'debug' && matrix.distro.name != 'performance')}}
# One world build per machine and distro family is enough for compile
# coverage: nodistro (including the nogl variant) covers the plain OE
# configuration and qcom-distro-catchall enables a superset of the
# qcom-distro DISTRO_FEATURES, so the remaining distro and kernel
# combinations only repeat already-covered world builds. qcom-armv7a has
# no qcom-distro-catchall variant, so its qcom-distro build is the
# distro-family world build for that machine.
world: ${{ (startsWith(matrix.distro.name, 'nodistro') || matrix.distro.name == 'qcom-distro-catchall' || (matrix.machine == 'qcom-armv7a' && matrix.distro.name == 'qcom-distro')) && matrix.kernel.type == 'default' }}
machine: ${{matrix.machine}}
distro_yaml: ${{matrix.distro.yamlfile}}
distro_name: ${{matrix.distro.name}}
kernel_yaml: ${{matrix.kernel.yamlfile}}
kernel_dirname: ${{matrix.kernel.dirname}}
cache_dir: ${{ needs.compile-env.outputs.CACHE_DIR }}

compile_batch2:
needs: [github-cache-check, compile_warm_up, compile-env]
if: |
github.repository_owner == 'qualcomm-linux' &&
(inputs.skip_if_github_cached != true || needs.github-cache-check.outputs.cache_hit != 'true')
strategy:
fail-fast: false
matrix:
machine:
- qcom-armv8a
- qcs615-ride
- qcs8300-ride-sx
- qcs9100-ride-sx
- rb1-core-kit
- rb3gen2-core-kit
- shikra-evk
- sm8750-mtp
distro:
- name: nodistro
yamlfile: ""
- name: qcom-distro
yamlfile: ':ci/qcom-distro.yml'
- name: qcom-distro-catchall
yamlfile: ':ci/qcom-distro-catchall.yml'
- name: debug
yamlfile: ':ci/qcom-distro-catchall.yml:ci/debug.yml'
- name: performance
yamlfile: ':ci/qcom-distro-catchall.yml:ci/performance.yml'
kernel:
- type: default
dirname: ""
yamlfile: ""
- type: 6.18
dirname: "_linux-qcom-6.18"
yamlfile: ":ci/linux-qcom-6.18.yml"
- type: rt-6.18-distro-kvm
dirname: "_linux-qcom-rt-6.18_qcom-distro-kvm"
yamlfile: ":ci/linux-qcom-rt-6.18.yml:ci/qcom-distro-kvm.yml"
exclude:
# Exclude jobs from compile_warm_up
- machine: qcom-armv8a
distro:
name: nodistro
kernel:
type: default
- machine: qcom-armv8a
distro:
name: qcom-distro
kernel:
type: default
- machine: rb3gen2-core-kit
distro:
@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 608b7b6

qcom-distro
Pass: 289 | Fail: 15 | Total: 342
nodistro
Pass: 10 | Fail: 0 | Total: 10
qcom-distro_linux-qcom-6.18
Pass: 218 | Fail: 10 | Total: 259

@test-reporting-app

Copy link
Copy Markdown

Test Results

  117 files    698 suites   9h 29m 24s ⏱️
  162 tests   131 ✅  0 💤 31 ❌
4 498 runs  4 376 ✅ 69 💤 53 ❌

For more details on these failures, see this check.

Results for commit 608b7b6.

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit 608b7b6

  • qcomdistro: multimedia image-prop
    Pass: 41 | Fail: 0 | Total: 41
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

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.

3 participants