1name: Yoe Distro CI 2 3on: 4 # Trigger the workflow on push or pull request, 5 # but only for the master branch 6 push: 7 branches: 8 - master 9 pull_request: 10 branches: 11 - master 12jobs: 13 build: 14 name: Yoe Build 15 runs-on: [self-hosted, Linux] 16 timeout-minutes: 720 17 steps: 18 - name: Fetch Repo Name 19 id: repo-name 20 run: echo "::set-output name=value::$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')" 21 - name: Checkout 22 uses: actions/checkout@v2 23 with: 24 fetch-depth: 0 25 submodules: recursive 26 - name: checkout yoe 27 run: | 28 git clone --recurse-submodules -j8 -b master https://github.com/YoeDistro/yoe-distro.git yoe 29 cd yoe 30 git checkout master 31 git pull 32 git submodule update --recursive --init 33 rm -rf sources/${{ steps.repo-name.outputs.value }}/* 34 rsync -av --progress --exclude="yoe" --exclude=".git" `pwd`/../ sources/${{ steps.repo-name.outputs.value }}/ 35 - name: Setup 36 run: | 37 cd yoe 38 export DOCKER_REPO=none 39 export LANG=en_US.UTF-8 40 export SSTATE_CACHE_DIR=/scratch/sstate-cache 41 echo export DOCKER_REPO=none > local.sh 42 echo export LANG=en_US.UTF-8 >> local.sh 43 echo export SSTATE_CACHE_DIR=/scratch/sstate-cache >> local.sh 44 cp conf/local.conf.sample conf/local.conf 45 echo SSTATE_DIR = \"$SSTATE_CACHE_DIR\" >> conf/local.conf 46 echo IMAGE_CLASSES += \"testimage testsdk\" >> conf/local.conf 47 echo INHERIT += \"report-error rm_work\" >> conf/local.conf 48 echo ERR_REPORT_SERVER = \"errors.yoctoproject.org\" >> conf/local.conf 49 echo ERR_REPORT_PORT = \"80\" >> conf/local.conf 50 echo ERR_REPORT_USERNAME = \"Yoe Distro CI\" >> conf/local.conf 51 echo ERR_REPORT_EMAIL = \"info@yoedistro.org\" >> conf/local.conf 52 echo TOOLCHAIN = \"clang\" >> conf/local.conf 53 echo BB_NUMBER_THREADS = \"16\" >> conf/local.conf 54 echo PARALLEL_MAKE = \"-j 32\" >> conf/local.conf 55 echo CLANGSDK = \"1\" >> conf/local.conf 56 echo IMAGE_INSTALL:append = \" clang \" >> conf/local.conf 57 echo XZ_DEFAULTS = \"--threads=8\" >> conf/local.conf 58 echo SDKMACHINE = \"aarch64\" >> conf/local.conf 59 /bin/bash -c "sed -i -e 's/PACKAGE_FEED_URI.*$//' conf/site.conf" 60 /bin/bash -c "sed -i -e 's/SDK_UPDATE_URL.*$//' conf/site.conf" 61 - name: Build Image 62 run: | 63 cd yoe 64 /bin/bash -c ". ./qemuarm64-envsetup.sh && bitbake yoe-qt5-image yoe-sdk-image yoe-debug-image" 65 - name: Build SDK 66 run: | 67 cd yoe 68 /bin/bash -c ". ./qemuarm64-envsetup.sh && bitbake yoe-debug-image -cpopulate_sdk_ext" 69 - name: Test Image 70 run: | 71 cd yoe 72 export DISPLAY=":0" 73 echo TESTIMAGE_AUTO:qemuall = \"1\" >> conf/local.conf 74 /bin/bash -c ". ./qemuarm64-envsetup.sh && bitbake yoe-sdk-image" 75 - name: Prepare results 76 run: | 77 cd yoe 78 /bin/bash -c ". ./qemuarm64-envsetup.sh && resulttool report build/tmp/log/oeqa" 79 - name: Clean shared state 80 run: | 81 cd yoe 82 /bin/bash -c ". ./qemuarm64-envsetup.sh && ./sources/openembedded-core/scripts/sstate-cache-management.sh -d -y" 83