Merge pull request #271 from DynamicDevices/ajl/dotnet10-default-version #854
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |