You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.0 KiB
71 lines
2.0 KiB
name: Tests |
|
|
|
on: |
|
push: |
|
paths: |
|
- ".github/workflows/test.yml" |
|
- "app/tests/**" |
|
- "app/src/**" |
|
pull_request: |
|
paths: |
|
- ".github/workflows/test.yml" |
|
- "app/tests/**" |
|
- "app/src/**" |
|
|
|
jobs: |
|
collect-tests: |
|
outputs: |
|
test-dirs: ${{ steps.test-dirs.outputs.test-dirs }} |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v2 |
|
- name: Find test directories |
|
id: test-dirs |
|
run: | |
|
cd app/tests/ |
|
export TESTS=$(ls -d * | jq -R -s -c 'split("\n")[:-1]') |
|
echo "::set-output name=test-dirs::${TESTS}" |
|
run-tests: |
|
needs: collect-tests |
|
strategy: |
|
matrix: |
|
test: ${{ fromJSON(needs.collect-tests.outputs.test-dirs) }} |
|
runs-on: ubuntu-latest |
|
container: |
|
image: docker.io/zmkfirmware/zmk-build-arm:3.0 |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v2 |
|
- name: Cache west modules |
|
uses: actions/cache@v2 |
|
env: |
|
cache-name: cache-zephyr-modules |
|
with: |
|
path: | |
|
modules/ |
|
tools/ |
|
zephyr/ |
|
bootloader/ |
|
key: 4-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }} |
|
restore-keys: | |
|
4-${{ runner.os }}-build-${{ env.cache-name }}- |
|
4-${{ runner.os }}-build- |
|
4-${{ runner.os }}- |
|
timeout-minutes: 2 |
|
continue-on-error: true |
|
- name: Initialize workspace (west init) |
|
run: west init -l app |
|
- name: Update modules (west update) |
|
run: west update |
|
- name: Export Zephyr CMake package (west zephyr-export) |
|
run: west zephyr-export |
|
- name: Test ${{ matrix.test }} |
|
working-directory: app |
|
run: west test tests/${{ matrix.test }} |
|
- name: Archive artifacts |
|
if: ${{ always() }} |
|
uses: actions/upload-artifact@v2 |
|
with: |
|
name: "log-files" |
|
path: app/build/**/*.log
|
|
|