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