[PATCH rtems-source-builder 1/2] github: Enable CI

Christian Mauderer christian.mauderer at embedded-brains.de
Mon Jan 16 13:41:21 UTC 2023


Allow users to optionally use the GitHub CI.
---
 .github/workflows/toolchain.yml | 196 ++++++++++++++++++++++++++++++++
 1 file changed, 196 insertions(+)
 create mode 100644 .github/workflows/toolchain.yml

diff --git a/.github/workflows/toolchain.yml b/.github/workflows/toolchain.yml
new file mode 100644
index 0000000..f9fec95
--- /dev/null
+++ b/.github/workflows/toolchain.yml
@@ -0,0 +1,196 @@
+name: Toolchain
+
+on:
+  # Triggers the workflow on push or pull request for the given branch
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+  # Trigger manually from the Actions tab
+  workflow_dispatch:
+
+jobs:
+  devel:
+    strategy:
+      fail-fast: false
+      matrix:
+        tool:
+          - autotools-base
+          - autotools
+          - capstone
+          - dtc
+          - gnu-default-tools
+          - libtool
+          - libusb
+          - or1ksim
+          - qemu-couverture
+          - qemu-xilinx
+          - qemu
+          - sis
+          - spike
+          - swig
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout at v3
+        with:
+          path: rsb
+      - name: Install dependencies
+        run: |
+          sudo apt-get update
+          sudo apt-get install \
+            build-essential \
+            ninja-build \
+            libudev-dev
+      - name: Build ${{ matrix.tool }}
+        run: |
+          cd rsb/rtems
+          ../source-builder/sb-set-builder \
+            --log=l-${{ matrix.tool }} \
+            --prefix=/opt/rtems/6 \
+            --bset-tar-file \
+            devel/${{ matrix.tool }}
+      - name: Archive log on failure
+        if: ${{ failure() }}
+        uses: actions/upload-artifact at v3
+        with:
+          name: log-${{ matrix.tool }}
+          path: |
+            rsb/rtems/l-${{ matrix.tool }}
+            rsb/**/rsb-report-*.txt
+      - name: Archive artifacts
+        uses: actions/upload-artifact at v3
+        with:
+          name: devel-${{ matrix.tool }}
+          path: rsb/rtems/tar/*.tar*
+
+  build:
+    strategy:
+      fail-fast: false
+      matrix:
+        target:
+          - aarch64
+          - arm
+          - bfin
+          - i386
+          - lm32
+          - m68k
+          - microblaze
+          - mips
+          - moxie
+          - nios2
+          - or1k
+          - powerpc
+          - riscv
+          - sh
+          - sparc
+          - sparc64
+          - v850
+          - x86_64
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout at v3
+        with:
+          path: rsb
+      - uses: actions/checkout at v3
+        with:
+          path: rtems
+          ref: ci
+          repository: RTEMS/rtems
+      - name: Install dependencies
+        run: |
+          sudo apt-get update
+          sudo apt-get install \
+            build-essential \
+            flex \
+            bison \
+            cmake \
+            texinfo \
+            device-tree-compiler \
+            u-boot-tools \
+            lzop \
+            libusb-1.0-0-dev \
+            python3 \
+            python-is-python3 \
+            libpython3-dev \
+            python3-dev
+      - name: Build toolchain
+        run: |
+          cd rsb/rtems
+          ../source-builder/sb-set-builder \
+            --log=l-${{ matrix.target }} \
+            --prefix=/opt/rtems/6 \
+            --bset-tar-file \
+            6/rtems-${{ matrix.target }}
+      - name: Archive log on failure
+        if: ${{ failure() }}
+        uses: actions/upload-artifact at v3
+        with:
+          name: log-${{ matrix.target }}
+          path: rsb/rtems/l-${{ matrix.target }}
+      - name: Archive artifacts
+        uses: actions/upload-artifact at v3
+        with:
+          name: tools-${{ matrix.target }}
+          path: rsb/rtems/tar/*.tar*
+      #- name: Build BSPs
+      #  uses: ./rtems/.github/actions/build-bsps
+      #  with:
+      #    target: ${{ matrix.target }}
+      #    sources-rtems: "${GITHUB_WORKSPACE}/rtems"
+      #    prefix: /opt/rtems/6
+
+  simulator:
+    # run even if not all of the earlier matrix builds worked
+    if: ${{ always() }}
+    needs:
+      - build
+      - devel
+    strategy:
+      fail-fast: false
+      matrix:
+        simulators:
+          - sparc/gr740
+          - riscv/griscv
+          - arm/xilinx_zynq_a9_qemu
+    runs-on: ubuntu-latest
+    steps:
+      - name: split arch and BSP
+        shell: bash
+        run: |
+          arch=`echo "${{ matrix.simulators }}" | sed -e "s|/.*||g"`
+          bsp=`echo "${{ matrix.simulators }}" | sed -e "s|.*/||g"`
+          echo "arch=${arch}" >> $GITHUB_ENV
+          echo "bsp=${bsp}" >> $GITHUB_ENV
+      - uses: actions/checkout at v3
+        with:
+          path: rtems
+          ref: ci
+          repository: RTEMS/rtems
+      - name: Install dependencies
+        run: |
+          sudo apt-get update
+          sudo apt-get install \
+            python3 \
+            python-is-python3 \
+            jq
+      - name: Download toolchain artifact
+        uses: actions/download-artifact at v3
+        with:
+          name: tools-${{ env.arch }}
+      - name: Download qemu artifact
+        uses: actions/download-artifact at v3
+        with:
+          name: devel-qemu
+      - name: Unpack toolchain
+        run: |
+          mkdir -p "$GITHUB_WORKSPACE/toolchain"
+          for t in *.tar.bz2; do tar xf $t -v -C "$GITHUB_WORKSPACE/toolchain"; done
+          ls -la "$GITHUB_WORKSPACE/toolchain"
+      - name: Start simulator run
+        id: simulator
+        uses: ./rtems/.github/actions/run-simulator
+        with:
+          target: ${{ matrix.simulators }}
+          sources-rtems: "$GITHUB_WORKSPACE/rtems"
+          prefix: "$GITHUB_WORKSPACE/toolchain/opt/rtems/6"
-- 
2.35.3



More information about the devel mailing list