Skip to content

meta-openrc CI

meta-openrc CI #280

Workflow file for this run

name: meta-openrc CI
on:
push:
branches:
- master
- kirkstone
- mickledore
- nanbield
- scarthgap
- styhead
pull_request:
branches:
- master
- kirkstone
- mickledore
- nanbield
- scarthgap
- styhead
schedule:
- cron: 11 2 * * 0
jobs:
build:
name: build openrc-image
runs-on: ubuntu-24.04
timeout-minutes: 720
steps:
- name: Configure Environment [branch]
if: ${{ github.event_name != 'pull_request' }}
run: |
echo 'OE_BRANCH='${{ github.ref_name }} >> $GITHUB_ENV
- name: Configure Environment [pull_request]
if: ${{ github.event_name == 'pull_request' }}
run: |
if [ ${{ github.base_ref }} = "kirkstone" ]; then
echo 'OE_BRANCH=kirkstone' >> $GITHUB_ENV
else
echo 'OE_BRANCH='${{ github.base_ref}} >> $GITHUB_ENV
fi
- name: Configure Host
run: |
sudo apt-get install chrpath diffstat python3-websockets
echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns
- name: Checkout
uses: actions/checkout@v4
with:
path: meta-openrc
- name: Restore Shared-State Cache
uses: actions/cache/restore@v4
with:
path: build/sstate-cache
key: sstate-openrc-${{ env.OE_BRANCH }}-${{ github.sha }}
restore-keys: |
sstate-openrc-${{ env.OE_BRANCH }}
sstate-openrc-
sstate-
- name: Clone Poky
run: git clone -b ${{ env.OE_BRANCH }} https://git.yoctoproject.org/poky
- name: Initialize build directory
run: |
source poky/oe-init-build-env build
bitbake-layers add-layer ../meta-openrc
echo 'INHERIT += "rm_work_and_downloads"' >> conf/local.conf
echo 'DISTRO_FEATURES:remove = "alsa bluetooth usbgadget zeroconf 3g nfc x11 opengl ptest wayland vulkan gobject-introspection-data"' >> conf/local.conf
echo 'BB_SIGNATURE_HANDLER = "OEEquivHash"' >> conf/local.conf
echo 'SSTATE_MIRRORS += "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"' >> conf/local.conf
echo 'BB_HASHSERVE = "auto"' >> conf/local.conf
echo 'BB_HASHSERVE_UPSTREAM = "wss://hashserv.yoctoproject.org/ws"' >> conf/local.conf
echo 'BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},100M,10K HALT,${TMPDIR},50M,5k"' >> conf/local.conf
if [ ${{ env.OE_BRANCH }} != "kirkstone" ]; then
echo 'INIT_MANAGER = "openrc"' >> conf/local.conf
else
echo 'DISTRO_FEATURES += "openrc"' >> conf/local.conf
fi
- name: Build openrc image
run: |
source poky/oe-init-build-env build
# Build in stages so we can wipe tmp in between to stay under the
# 14Gb of disk Github gives us. rm_work isn't sufficient.
bitbake openrc
rm -rf tmp/
bitbake openrc-image
- name: Prune Shared-State Cache and tmpdir
if: always()
run: |
source poky/oe-init-build-env build
du -sh sstate-cache
sstate-cache-management.py --yes --cache-dir=sstate-cache --remove-duplicated
sstate-cache-management.py --yes --cache-dir=sstate-cache --stamps-dir=tmp/stamps
du -sh sstate-cache
rm -r tmp/
- name: Save Shared-State Cache
if: always()
uses: actions/cache/save@v4
with:
path: build/sstate-cache
key: sstate-openrc-${{ env.OE_BRANCH }}-${{ github.sha }}
yocto-check-layer:
name: yocto-check-layer
runs-on: ubuntu-20.04
timeout-minutes: 720
steps:
- name: Configure Environment [branch]
if: ${{ github.event_name != 'pull_request' }}
run: |
echo 'OE_BRANCH='${{ github.ref_name }} >> $GITHUB_ENV
- name: Configure Environment [pull_request]
if: ${{ github.event_name == 'pull_request' }}
run: |
echo 'OE_BRANCH='${{ github.base_ref}} >> $GITHUB_ENV
- name: Install required packages
run: |
sudo apt-get install diffstat
- name: Checkout
uses: actions/checkout@v4
with:
path: meta-openrc
- name: Clone Poky
run: git clone -b ${{ env.OE_BRANCH }} git://git.yoctoproject.org/poky
- name: Check layer
run: |
source poky/oe-init-build-env build
yocto-check-layer --without-software-layer-signature-check ../meta-openrc