diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..8d1ab43 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,70 @@ +name: build + +on: + push: {} + pull_request: {} + # allow rebuilding without a push + workflow_dispatch: {} + +jobs: + build: + name: meta-labgrid Build + # run on self-hosted runner for the main repo or if vars.BUILD_RUNS_ON is set + runs-on: >- + ${{ + (vars.BUILD_RUNS_ON != '' && fromJSON(vars.BUILD_RUNS_ON)) || + (github.repository == 'labgrid-project/meta-labgrid' && fromJSON('["self-hosted", "forrest", "build"]')) || + 'ubuntu-22.04' + }} + # abort if it seems that we're rebuilding too much + timeout-minutes: 120 + steps: + - name: Install required packages + run: | + sudo apt-get -q -y --no-install-recommends install diffstat chrpath python3-distutils + - name: Checkout + uses: actions/checkout@v4 + with: + path: meta-labgrid + - name: Clone poky + run: git clone --shared --reference-if-able /srv/shared-git/poky.git -b kirkstone https://github.com/yoctoproject/poky.git + - name: Clone meta-openembedded + run: git clone --shared --reference-if-able /srv/shared-git/meta-openembedded.git -b kirkstone https://github.com/openembedded/meta-openembedded.git + - name: Initialize build directory + run: | + source poky/oe-init-build-env build + bitbake-layers add-layer ../meta-openembedded/meta-oe + bitbake-layers add-layer ../meta-openembedded/meta-python + bitbake-layers add-layer ../meta-labgrid + if [ -f ~/.yocto/auto.conf ]; then + cp ~/.yocto/auto.conf conf/ + else + echo 'SSTATE_MIRRORS = "file://.* https://github-runner.pengutronix.de/sstate-cache/PATH"' >> conf/auto.conf + echo 'BB_SIGNATURE_HANDLER = "OEBasicHash"' >> conf/auto.conf + echo 'BB_HASHSERVE = ""' >> conf/auto.conf + echo 'OPKGBUILDCMD = "opkg-build -Z gzip -a -1n"' >> conf/auto.conf + echo 'INHERIT += "rm_work"' >> conf/auto.conf + fi + echo 'DISTRO_FEATURES:remove = "alsa bluetooth usbgadget usbhost wifi nfs zeroconf pci 3g nfc x11 opengl ptest wayland vulkan"' >> conf/local.conf + - name: Build autobahn + run: | + source poky/oe-init-build-env build + bitbake python3-autobahn + - name: Build labgrid + run: | + source poky/oe-init-build-env build + bitbake python3-labgrid + - name: Build tools + run: | + source poky/oe-init-build-env build + bitbake python3-pyserial sispmctl + - name: Cache Data + env: + CACHE_KEY: ${{ secrets.YOCTO_CACHE_KEY }} + if: ${{ env.CACHE_KEY }} + run: | + mkdir -p ~/.ssh + echo "$CACHE_KEY" >> ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + rsync -rvx --ignore-existing build/downloads yocto-cache: || true + rsync -rvx --ignore-existing build/sstate-cache yocto-cache: || true diff --git a/.github/workflows/meta-labgrid.yml b/.github/workflows/meta-labgrid.yml deleted file mode 100644 index f8da888..0000000 --- a/.github/workflows/meta-labgrid.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: meta-labgrid CI - -on: - # Trigger the workflow on push or pull request, - # but only for the master branch - push: - branches: - - master - pull_request: - branches: - - master -jobs: - build: - name: meta-labgrid Build - runs-on: ubuntu-20.04 - timeout-minutes: 720 - steps: - - name: Install required packages - run: | - sudo apt-get install diffstat - - name: Checkout - uses: actions/checkout@v2 - with: - path: meta-labgrid - - name: Clone poky - run: git clone -b master git://git.yoctoproject.org/poky - - name: Clone meta-openembedded - run: git clone -b master https://github.com/openembedded/meta-openembedded.git - - name: Initialize build directory - run: | - source poky/oe-init-build-env build - bitbake-layers add-layer ../meta-openembedded/meta-oe - bitbake-layers add-layer ../meta-openembedded/meta-python - bitbake-layers add-layer ../meta-labgrid - echo 'INHERIT += "rm_work"' >> conf/local.conf - echo 'DISTRO_FEATURES:remove = "alsa bluetooth usbgadget usbhost wifi nfs zeroconf pci 3g nfc x11 opengl ptest wayland vulkan"' >> conf/local.conf - echo 'SSTATE_MIRRORS = "file://.* http://195.201.147.117/sstate-cache/PATH"' >> conf/local.conf - - name: Build autobahn - run: | - source poky/oe-init-build-env build - bitbake python3-autobahn - - name: Build labgrid - run: | - source poky/oe-init-build-env build - bitbake python3-labgrid - - name: Build tools - run: | - source poky/oe-init-build-env build - bitbake python3-pyserial sispmctl