Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 20 additions & 8 deletions .github/actions/compile/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,32 @@ inputs:
required: true
cache_dir:
required: true
kas:
required: true
outputs:
url:
description: Location of the published binaries
value: ${{ steps.upload_artifacts.outputs.url }}
runs:
using: "composite"
steps:
- uses: actions/download-artifact@v6
- name: Download kas lockfile
uses: actions/download-artifact@v6
with:
name: kas-lock
name: kas-lockfile
path: ci/

- name: Download kas-container
Copy link
Contributor

Choose a reason for hiding this comment

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

is that needed here? we should download the artifact in build-yocto.yml instead, and leave that outside of the action file. it would be slightly nicer, no?

Copy link
Contributor Author

@quaresmajose quaresmajose Oct 3, 2025

Choose a reason for hiding this comment

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

If it is done in the action, it only needs to be done in a single location, which is what is currently implemented. If it is done in build-yocto.yml, it will have to be done every time a new worker is created. Then in build-yocto.yml it will have to be implemented in compile_warm_up and compile.

uses: actions/download-artifact@v6
with:
name: kas-container
path: ${{runner.temp}}

- name: Setting up kas-container
shell: bash
run: |
KAS_CONTAINER=$RUNNER_TEMP/kas-container
echo "KAS_CONTAINER=$KAS_CONTAINER" >> $GITHUB_ENV
chmod +x $KAS_CONTAINER

- name: Setup build variables and sstate-cache
shell: bash
run: |
Expand All @@ -38,25 +50,25 @@ runs:
shell: bash
run: |
mkdir $KAS_WORK_DIR
${{inputs.kas}} dump --resolve-env --resolve-local --resolve-refs \
$KAS_CONTAINER dump --resolve-env --resolve-local --resolve-refs \
ci/mirror.yml:ci/${{ inputs.machine }}.yml${{ inputs.distro_yaml }}${{ inputs.kernel_yaml }} > kas-build.yml

- name: Kas qcom world build
shell: bash
run: |
${{inputs.kas}} build ci/mirror.yml:ci/${{ inputs.machine }}.yml${{ inputs.distro_yaml }}${{ inputs.kernel_yaml }}:ci/world.yml
$KAS_CONTAINER build ci/mirror.yml:ci/${{ inputs.machine }}.yml${{ inputs.distro_yaml }}${{ inputs.kernel_yaml }}:ci/world.yml
ci/kas-container-shell-helper.sh ci/yocto-pybootchartgui.sh
mv $KAS_WORK_DIR/build/buildchart.svg buildchart-world.svg

- name: Kas build images
shell: bash
run: |
${{inputs.kas}} build ci/mirror.yml:ci/${{ inputs.machine }}.yml${{ inputs.distro_yaml }}${{ inputs.kernel_yaml }}
$KAS_CONTAINER build ci/mirror.yml:ci/${{ inputs.machine }}.yml${{ inputs.distro_yaml }}${{ inputs.kernel_yaml }}
ci/kas-container-shell-helper.sh ci/yocto-pybootchartgui.sh
mv $KAS_WORK_DIR/build/buildchart.svg .

if [ "${{ inputs.machine }}" = "qcom-armv8a" ]; then
${{inputs.kas}} build ci/mirror.yml:ci/${{ inputs.machine }}.yml${{ inputs.distro_yaml }}${{ inputs.kernel_yaml }}:ci/initramfs-test.yml
$KAS_CONTAINER build ci/mirror.yml:ci/${{ inputs.machine }}.yml${{ inputs.distro_yaml }}${{ inputs.kernel_yaml }}:ci/initramfs-test.yml
fi

- uses: actions/upload-artifact@v4
Expand Down
37 changes: 28 additions & 9 deletions .github/workflows/build-yocto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@ on:
env:
CACHE_DIR: /efs/qli/meta-qcom
KAS_REPO_REF_DIR: /efs/qli/meta-qcom/kas-mirrors
KAS_CONTAINER: /efs/qli/meta-qcom/kas-mirrors/kas-container

jobs:
kas-setup:
if: github.repository == 'qualcomm-linux/meta-qcom'
runs-on: [self-hosted, qcom-u2404, amd64-ssd]
steps:
- name: Update kas-container
- name: Setting up kas-container
run: |
KAS_CONTAINER=$RUNNER_TEMP/kas-container
echo "KAS_CONTAINER=$KAS_CONTAINER" >> $GITHUB_ENV
LATEST=$(git ls-remote --tags --refs --sort="v:refname" https://github.com/siemens/kas | tail -n1 | sed 's/.*\///')
wget -qO ${KAS_CONTAINER} https://raw.githubusercontent.com/siemens/kas/refs/tags/$LATEST/kas-container
chmod +x ${KAS_CONTAINER}
Expand All @@ -36,22 +37,42 @@ jobs:
run: |
${KAS_CONTAINER} lock --update ci/base.yml:ci/qcom-distro.yml

- uses: actions/upload-artifact@v4
- name: Upload kas lockfile
uses: actions/upload-artifact@v4
with:
name: kas-lock
name: kas-lockfile
path: ci/*.lock.yml

- name: Upload kas-container
uses: actions/upload-artifact@v4
with:
name: kas-container
path: ${{ env.KAS_CONTAINER }}

yocto-run-checks:
needs: kas-setup
if: github.repository == 'qualcomm-linux/meta-qcom'
runs-on: [self-hosted, qcom-u2404, amd64-ssd]
steps:
- uses: actions/checkout@v4

- uses: actions/download-artifact@v6
- name: Download kas lockfile
uses: actions/download-artifact@v6
with:
name: kas-lockfile
path: ci

- name: Download kas-container
uses: actions/download-artifact@v6
with:
name: kas-lock
path: ci/
name: kas-container
path: ${{ runner.temp }}

- name: Setting up kas-container
run: |
KAS_CONTAINER=$RUNNER_TEMP/kas-container
echo "KAS_CONTAINER=$KAS_CONTAINER" >> $GITHUB_ENV
chmod +x $KAS_CONTAINER

- name: Run yocto-check-layer
run: |
Expand Down Expand Up @@ -100,7 +121,6 @@ jobs:
kernel_yaml: ${{matrix.kernel.yamlfile}}
kernel_dirname: ${{matrix.kernel.dirname}}
cache_dir: ${CACHE_DIR}
kas: ${KAS_CONTAINER}

compile:
needs: compile_warm_up
Expand Down Expand Up @@ -181,7 +201,6 @@ jobs:
kernel_yaml: ${{matrix.kernel.yamlfile}}
kernel_dirname: ${{matrix.kernel.dirname}}
cache_dir: ${CACHE_DIR}
kas: ${KAS_CONTAINER}

publish_summary:
needs: compile
Expand Down
Loading