From dbf14daccfee2de9ed9cec2014cdc1831d8ca9f0 Mon Sep 17 00:00:00 2001 From: tolauwae Date: Thu, 12 Dec 2024 21:13:17 +0100 Subject: [PATCH] Add example warduino test to CI --- .github/workflows/test.yml | 81 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 50eca12..1e642a3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,7 +2,7 @@ name: Tests on: [ push ] jobs: - build: + build-wabt: name: Build WAT tools runs-on: ubuntu-latest steps: @@ -37,10 +37,45 @@ jobs: name: wabt-build-${{ github.run_id }} path: tests/unit/artifacts/wabt/build + build-wdcli: + name: Build WARDuino CLI + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Get WDCLI commit ID + working-directory: tests/unit/artifacts/warduino + run: echo "WDCLI_VERSION=$(git rev-parse HEAD)" >> $GITHUB_ENV + + - name: Cache WARDuino CLI + uses: actions/cache@v4 + id: cache-warduino + with: + key: ${{ runner.os }}-wabt-${{ env.WDCLI_VERSION }} + path: tests/unit/artifacts/wabt + restore-keys: | + ${{ runner.os }}-wabt- + + - name: Build WARDuino CLI # Build latest version + if: steps.cache-warduino.outputs.cache-hit == false + working-directory: tests/unit/artifacts/warduino + run: | + mkdir build; cd build + cmake .. -D BUILD_EMULATOR=ON + cmake --build . + + - name: Upload built tools + uses: actions/upload-artifact@v4 + with: + name: warduino-build-${{ github.run_id }} + path: tests/unit/artifacts/warduino/build + unit: name: Unit tests runs-on: ubuntu-latest - needs: build + needs: build-wabt strategy: fail-fast: false if: github.event.pull_request.draft == false @@ -68,10 +103,50 @@ jobs: env: WABT: ${GITHUB_WORKSPACE}/.tools + warduino: + name: WARDuino test + runs-on: ubuntu-latest + needs: [build-wabt, build-wdcli] + strategy: + fail-fast: false + if: github.event.pull_request.draft == false + steps: + - uses: actions/checkout@v4 + + - run: npm i + + - name: Prebuild files + run: npm run test:prebuild + + - name: Download WAT tools + uses: actions/download-artifact@v4 + with: + name: wabt-build-${{ github.run_id }} + path: .tools + + - name: Download WARDuino + uses: actions/download-artifact@v4 + with: + name: warduino-build-${{ github.run_id }} + path: .warduino + + - name: Verify + run: | + chmod u+x $GITHUB_WORKSPACE/.tools/* + chmod u+x $GITHUB_WORKSPACE/.warduino/wdcli + $GITHUB_WORKSPACE/.tools/wasm-objdump --version + $GITHUB_WORKSPACE/.warduino/wdcli --version + + - name: Run example WARDuino test + run: npm run test:example + env: + WABT: ${GITHUB_WORKSPACE}/.tools + EMULATOR: ${GITHUB_WORKSPACE}/.warduino/wdcli + coverage: name: Code coverage runs-on: ubuntu-latest - needs: build + needs: build-wabt strategy: fail-fast: true if: github.event.pull_request.draft == false