aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build.yml178
1 files changed, 38 insertions, 140 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index acc6ce3..4c7f56d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -210,7 +210,7 @@ jobs:
run: |
cd qemu-${{ env.QEMU_VERSION }}
ninja -C build
-
+
- name: Download ESP32 QEMU
run: wget "${{ env.QEMU_ESP_URL }}" --output-document=${{ env.QEMU_ESP}}.tar.xz
@@ -230,150 +230,51 @@ jobs:
name: qemu
path: qemu.tar
- # Platform lm3s6965: verify the example output with run-pass tests
- testexampleslm3s6965:
- name: QEMU run (lm3s6965)
+ # Verify the example output with run-pass tests
+ testexamples:
+ name: QEMU run
needs: buildqemu
runs-on: ubuntu-22.04
strategy:
matrix:
- backend:
- - thumbv7
- - thumbv6
- toolchain:
- - stable
- steps:
- - name: Checkout
- uses: actions/checkout@v4
-
- - name: Install Rust ${{ matrix.toolchain }}
- run: |
- rustup set profile minimal
- rustup override set ${{ matrix.toolchain }}
-
- - name: Configure Rust target (v6, v7)
- run: |
- rustup target add thumbv7m-none-eabi
- rustup target add thumbv6m-none-eabi
-
- - name: Add Rust component llvm-tools-preview
- run: rustup component add llvm-tools-preview
-
- # Use precompiled binutils
- - name: Install cargo-binutils
- uses: taiki-e/install-action@v2
- with:
- tool: cargo-binutils
-
- - name: Cache Dependencies
- uses: Swatinem/rust-cache@v2
-
- - name: Install QEMU to get dependencies
- run: |
- sudo apt update
- sudo apt install -y qemu-system-arm
-
- - name: Download built QEMU
- uses: actions/download-artifact@v4
- with:
- name: qemu
-
- - name: Extract QEMU into local path
- run: tar -xf qemu.tar -C /usr/local/bin
-
- - name: Check which QEMU is used
- run: |
- which qemu-system-arm
- which qemu-system-riscv32
-
- - name: Run-pass tests
- run: cargo xtask --deny-warnings --platform lm3s6965 --backend ${{ matrix.backend }} qemu
-
- # Platform hifive1: verify the example output with run-pass tests
- testexampleshifive1:
- name: QEMU run (hifive1)
- needs: buildqemu
- runs-on: ubuntu-22.04
- strategy:
- matrix:
- backend:
- - riscv32-imc-clint
- - riscv32-imc-mecall
- toolchain:
- - stable
- steps:
- - name: Checkout
- uses: actions/checkout@v4
-
- - name: Install Rust ${{ matrix.toolchain }}
- run: |
- rustup set profile minimal
- rustup override set ${{ matrix.toolchain }}
-
- - name: Configure Rust target
- run: |
- rustup target add riscv32imc-unknown-none-elf
-
- - name: Add Rust component llvm-tools-preview
- run: rustup component add llvm-tools-preview
+ input:
+ - backend: thumbv7
+ platform: lm3s6965
+ rustup-target: thumbv7m-none-eabi
+ qemu-system: arm
- # Use precompiled binutils
- - name: Install cargo-binutils
- uses: taiki-e/install-action@v2
- with:
- tool: cargo-binutils
+ - backend: thumbv6
+ platform: lm3s6965
+ rustup-target: thumbv6m-none-eabi
+ qemu-system: arm
- - name: Cache Dependencies
- uses: Swatinem/rust-cache@v2
-
- - name: Install QEMU to get dependencies
- run: |
- sudo apt update
- sudo apt install -y qemu-system-riscv32
+ - backend: riscv32-imc-clint
+ platform: hifive1
+ rustup-target: riscv32imc-unknown-none-elf
+ qemu-system: riscv32
- - name: Download built QEMU
- uses: actions/download-artifact@v4
- with:
- name: qemu
-
- - name: Extract QEMU into local path
- run: tar -xf qemu.tar -C /usr/local/bin
+ - backend: riscv32-imc-mecall
+ platform: hifive1
+ rustup-target: riscv32imc-unknown-none-elf
+ qemu-system: riscv32
- - name: Check which QEMU is used
- run: |
- which qemu-system-arm
- which qemu-system-riscv32
-
- - name: Run-pass tests
- run: cargo xtask --deny-warnings --platform hifive1 --backend ${{ matrix.backend }} qemu
+ - backend: riscv-esp32-c3
+ platform: esp32-c3
+ rustup-target: riscv32imc-unknown-none-elf
+ qemu-system: riscv32
- # Platform esp32c3: verify the example output with run-pass tests
- testexamplesesp32c3:
- name: QEMU run (esp32c3)
- needs: buildqemu
- runs-on: ubuntu-22.04
- strategy:
- matrix:
- toolchain:
- - stable
steps:
- name: Checkout
uses: actions/checkout@v4
- - name: Install Rust ${{ matrix.toolchain }}
- run: |
- rustup set profile minimal
- rustup override set ${{ matrix.toolchain }}
-
- name: Configure Rust target
- run: |
- rustup target add riscv32imac-unknown-none-elf
- rustup target add riscv32imc-unknown-none-elf
+ run: rustup target add ${{ matrix.input.rustup-target }}
- name: Add Rust component llvm-tools-preview
run: rustup component add llvm-tools-preview
- - name: Install libudev espflash dependency
+ - name: Install lubudev espflash dependency
+ if: ${{ matrix.input.platform == 'esp32-c3' }}
run: |
sudo apt update
sudo apt install -y libudev-dev
@@ -386,12 +287,11 @@ jobs:
# Use precompiled if possible
- name: Install espflash
+ if: ${{ matrix.input.platform == 'esp32-c3' }}
run: cargo install espflash --version 3.1.0 --force
- # uses: taiki-e/install-action@v2
- # with:
- # tool: espflash
- name: Install esptool.py
+ if: ${{ matrix.input.platform == 'esp32-c3' }}
run: pip install esptool
- name: Cache Dependencies
@@ -400,22 +300,22 @@ jobs:
- name: Install QEMU to get dependencies
run: |
sudo apt update
- sudo apt install -y qemu-system-riscv32
+ sudo apt install -y qemu-system-${{ matrix.input.qemu-system }}
- name: Download built QEMU
uses: actions/download-artifact@v4
with:
name: qemu
-
- - name: Extract ESP32 QEMU into local path
- run: sudo tar --strip-components=1 -xf qemu.tar -C /usr/local/ esp32/
+
+ - name: Extract QEMU into local path
+ run: tar -xf qemu.tar -C /usr/local/bin
- name: Check which QEMU is used
run: |
- which qemu-system-riscv32
-
+ which qemu-system-${{ matrix.input.qemu-system }}
+
- name: Run-pass tests
- run: cargo xtask -v --platform esp32-c3 qemu
+ run: cargo xtask --deny-warnings --platform ${{ matrix.input.platform }} --backend ${{ matrix.input.backend }} qemu
# Run test suite
tests:
@@ -852,9 +752,7 @@ jobs:
- clippylm3s6965
# - clippyhifive1 # TODO
- checkexamples
- - testexampleslm3s6965
- - testexampleshifive1
- - testexamplesesp32c3
+ - testexamples
- tests
- docs
- mdbook