Skip to content

Commit

Permalink
CI: Do Zephyr build tests on known good and latest versions
Browse files Browse the repository at this point in the history
Allow Zephyr testing to either use locked known good values
or the very latest versions.

The known good versions are best for PR checking as if the build fails
it is almost always the PR itself that broke it.

The latest version is good for periodically checking compatibility with
the very latest Zephyr changes.

For now we run both on pushes and PRs.

We also run main against the latest zephyr check weekly as a look ahead.

Signed-off-by: Bill Mills <bill.mills@linaro.org>
  • Loading branch information
wmamills committed Aug 17, 2024
1 parent 5c36d6b commit ac346a3
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 6 deletions.
16 changes: 13 additions & 3 deletions .github/actions/build_ci/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@

readonly TARGET="$1"

# Known good version for PR testing
ZEPHYR_SDK_VERSION=v0.16.5-1
ZEPHYR_VERSION=v3.6.0

ZEPHYR_TOOLCHAIN_VARIANT=zephyr
ZEPHYR_SDK_API_FOLDER=https://api.github.com/repos/zephyrproject-rtos/sdk-ng/releases/latest
ZEPHYR_SDK_API_FOLDER=https://api.github.com/repos/zephyrproject-rtos/sdk-ng/releases
ZEPHYR_SDK_VER_SELECT="tags/$ZEPHYR_SDK_VERSION"
ZEPHYR_SDK_SETUP_TAR=zephyr-sdk-.*linux-x86_64.tar.xz

FREERTOS_ZIP_URL=https://sourceforge.net/projects/freertos/files/FreeRTOS/V10.0.1/FreeRTOSv10.0.1.zip
Expand Down Expand Up @@ -61,7 +66,7 @@ build_freertos(){
}

build_zephyr(){
ZEPHYR_SDK_DOWNLOAD_URL=`curl -s ${ZEPHYR_SDK_API_FOLDER} | \
ZEPHYR_SDK_DOWNLOAD_URL=`curl -s ${ZEPHYR_SDK_API_FOLDER}/${ZEPHYR_SDK_VER_SELECT} | \
grep -e "browser_download_url.*${ZEPHYR_SDK_SETUP_TAR}"| cut -d : -f 2,3 | tr -d \"`
ZEPHYR_SDK_TAR=`basename $ZEPHYR_SDK_DOWNLOAD_URL`
ZEPHYR_SDK_SETUP_DIR=`echo $ZEPHYR_SDK_TAR | cut -d_ -f1`
Expand All @@ -82,7 +87,7 @@ build_zephyr(){
pv $ZEPHYR_SDK_TAR -i 3 -ptebr -f | tar xJ || exit 1
rm -rf $ZEPHYR_SDK_TAR || exit 1
yes | ./$ZEPHYR_SDK_SETUP_DIR/setup.sh || exit 1
west init ./zephyrproject || exit 1
west init --mr $ZEPHYR_VERSION ./zephyrproject || exit 1
cd ./zephyrproject || exit 1
west update --narrow || exit 1
west zephyr-export || exit 1
Expand Down Expand Up @@ -141,6 +146,11 @@ main(){
if [[ "$TARGET" == "zephyr" ]]; then
build_zephyr
fi
if [[ "$TARGET" == "zephyr-latest" ]]; then
ZEPHYR_SDK_VER_SELECT=latest
ZEPHYR_VERSION=main
build_zephyr
fi
}

main
15 changes: 12 additions & 3 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
name: check builds on different platforms
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: build for Linux
id: build_linux
uses: ./.github/actions/build_ci
Expand All @@ -38,7 +38,16 @@ jobs:
uses: ./.github/actions/build_ci
with:
target: freertos
- name: build for Zephyr

# Break the zephyr builds into their own job as the common runner was
# running out of space when runs were together
# Also, as the longest running jobs, this allows them to run in ||
zephyr_build_known_good:
name: Zephyr known good build check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build for Zephyr (Known Good)
id: build_Zephyr
uses: ./.github/actions/build_ci
with:
Expand All @@ -48,7 +57,7 @@ jobs:
name: nonreg tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: configure
run: |
sudo apt-get update && sudo apt-get install libsysfs-dev
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/heathcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2024 Linaro Limited.

name: libmetal Heath Check

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
paths-ignore:
- docs/**

# Allows you to run this workflow manually from the Actions tab or gh API
workflow_dispatch:

# run weekly on Sunday at 5:10 AM UTC (9:10 PM US western)
schedule:
- cron: '10 5 * * 0'

jobs:
zephyr_build_latest:
name: check Zephyr build against the latest upstream versions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build for Zephyr (Latest)
id: build_Zephyr_latest
uses: ./.github/actions/build_ci
with:
target: zephyr-latest

0 comments on commit ac346a3

Please sign in to comment.