Skip to content

Merge pull request #271 from DynamicDevices/ajl/dotnet10-default-version #854

Merge pull request #271 from DynamicDevices/ajl/dotnet10-default-version

Merge pull request #271 from DynamicDevices/ajl/dotnet10-default-version #854

Workflow file for this run

name: meta-mono
on:
push:
branches:
- master
- feature/yocto-layer-compliance
pull_request:
branches:
- master
- feature/yocto-layer-compliance
paths-ignore:
- "**.md"
jobs:
build-and-test:
runs-on: [self-hosted, linux, X64]
timeout-minutes: 960
container:
image: dynamicdevices/yocto-ci-build:latest
options: --privileged --platform linux/amd64 -v /dev/net/tun:/dev/net/tun -v /dev/kvm:/dev/kvm
strategy:
max-parallel: 1
matrix:
dotnet_version: [10.0.100, 8.0.406, 6.0.428]
mono_version: [6.12.0.206]
branch: [styhead]
arch: [x86-64, arm, arm64]
exclude:
# styhead GCC build broken for ARM32 - see README "Removal of support for ARM32" and discussions/234
- branch: styhead
arch: arm
env:
name: build-and-test
MONO_VERSION: ${{ matrix.mono_version }}
DOTNET_VERSION: ${{ matrix.dotnet_version }}
ARCH: ${{ matrix.arch }}
BRANCH: ${{ matrix.branch }}
steps:
- name: Checkout meta-mono
uses: actions/checkout@v4
with:
clean: false
path: ${{ matrix.branch }}/meta-mono
- name: Update repo poky
run: |
if [ ! -d ${BRANCH}/poky ]; then
git clone git://git.yoctoproject.org/poky -b ${BRANCH} ${BRANCH}/poky
else
cd ${BRANCH}/poky
git pull origin ${BRANCH}
cd ../..
fi
- name: Update repo meta-openembedded
run: |
if [ ! -d ${BRANCH}/meta-openembedded ]; then
git clone https://github.com/openembedded/meta-openembedded.git -b ${BRANCH} ${BRANCH}/meta-openembedded
else
cd ${BRANCH}/meta-openembedded
git pull origin ${BRANCH}
cd ../..
fi
- name: Configuring
run: |
rm -f ${BRANCH}/build/conf/local.conf
rm -f ${BRANCH}/build/conf/bblayers.conf
. ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build
# Append custom variables for regenerated local.conf and bblayers.conf samples
echo "### Starting to configure local.conf and bblayers.conf ###"
echo "mono version: $MONO_VERSION"
echo "dotnet version: $DOTNET_VERSION"
echo "BBLAYERS += '$GITHUB_WORKSPACE/${BRANCH}/meta-mono'" >> conf/bblayers.conf
echo "BBLAYERS += '$GITHUB_WORKSPACE/${BRANCH}/meta-openembedded/meta-oe'" >> conf/bblayers.conf
echo "BBLAYERS += '$GITHUB_WORKSPACE/${BRANCH}/meta-openembedded/meta-python'" >> conf/bblayers.conf
echo "BB_DEFAULT_EVENTLOG = \"\"" >> conf/local.conf
echo "MACHINE = \"qemu${ARCH}\"" >> conf/local.conf
echo "DL_DIR = \"$GITHUB_WORKSPACE/downloads\"" >> conf/local.conf
echo "SSTATE_DIR = \"$GITHUB_WORKSPACE/sstate\"" >> conf/local.conf
echo "PREFERRED_VERSION_mono = \"${MONO_VERSION}\"" >> conf/local.conf
echo "PREFERRED_VERSION_mono-native = \"${MONO_VERSION}\"" >> conf/local.conf
echo "PREFERRED_VERSION_dotnet = \"${DOTNET_VERSION}\"" >> conf/local.conf
echo "PREFERRED_VERSION_dotnet-native = \"${DOTNET_VERSION}\"" >> conf/local.conf
echo "INHERIT += \" create-spdx cve-check rm_work \"" >> conf/local.conf
sed -i 's/#IMAGE_CLASSES += "testimage testsdk"/IMAGE_CLASSES += "testimage "/' conf/local.conf
echo "SPDX_PRETTY = \"1\"" >> conf/local.conf
echo "BB_NUMBER_THREADS ?= \"\${@oe.utils.cpu_count()}\"" >> conf/local.conf
echo "PARALLEL_MAKE ?= \"-j \${@oe.utils.cpu_count()} -l \${@oe.utils.cpu_count()*2}\"" >> conf/local.conf
# Flush stale sstate/sysroot to ensure fresh builds with corrected
# host/fxr layout and dotnet wrapper.
# TODO: remove this step once all matrix jobs have rebuilt successfully.
- name: Clean stale sstate
run: |
. ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build
bitbake -c cleansstate dotnet dotnet-native python3-clr-loader python3-clr-loader-native dotnet-helloworld python3-pythonnet
- name: Building Mono Test Image
run: |
. ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build
bitbake test-image-mono
- name: CVE Check Mono / dotNet
run: |
. ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build
export TERM=linux
bitbake mono -c cve_check
mv $GITHUB_WORKSPACE/${BRANCH}/build/tmp/log/cve/cve-summary.json $GITHUB_WORKSPACE/${BRANCH}/build/tmp/log/cve/cve-summary-mono.json
bitbake dotnet -c cve_check
mv $GITHUB_WORKSPACE/${BRANCH}/build/tmp/log/cve/cve-summary.json $GITHUB_WORKSPACE/${BRANCH}/build/tmp/log/cve/cve-summary-dotnet.json
- name: Testing
run: |
. ./${BRANCH}/poky/oe-init-build-env ${BRANCH}/build
export TERM=linux
bitbake test-image-mono -c testimage
- name: Store artifacts
uses: actions/upload-artifact@v4
with:
name: test-image-mono-${{ matrix.branch }}-${{ matrix.mono_version }}-${{ matrix.dotnet_version }}-${{ github.sha }}-${{ matrix.arch }}
path: ./${{ matrix.branch }}/build/tmp/deploy/images/qemu${{ matrix.arch }}/
- name: Store CVEs
uses: actions/upload-artifact@v4
with:
name: cve-summary-${{ matrix.branch }}-${{ matrix.mono_version }}-${{ matrix.dotnet_version }}-${{ github.sha }}-${{ matrix.arch }}
path: ./${{ matrix.branch }}/build/tmp/log/cve/*.json