diff --git a/.github/workflows/build-tutorial-hello-world.yml b/.github/workflows/ext-build-hello-world.yml similarity index 100% rename from .github/workflows/build-tutorial-hello-world.yml rename to .github/workflows/ext-build-hello-world.yml diff --git a/.github/workflows/build-tutorial-led-blinker.yml b/.github/workflows/ext-build-led-blinker.yml similarity index 100% rename from .github/workflows/build-tutorial-led-blinker.yml rename to .github/workflows/ext-build-led-blinker.yml diff --git a/.github/workflows/build-tutorial-math-comp.yml b/.github/workflows/ext-build-math-comp.yml similarity index 100% rename from .github/workflows/build-tutorial-math-comp.yml rename to .github/workflows/ext-build-math-comp.yml diff --git a/.github/workflows/ext-raspberry-led-blinker.yml b/.github/workflows/ext-raspberry-led-blinker.yml new file mode 100644 index 0000000000..b7b2ca61e0 --- /dev/null +++ b/.github/workflows/ext-raspberry-led-blinker.yml @@ -0,0 +1,95 @@ +# Cross-compile https://github.com/fprime-community/fprime-workshop-led-blinker +# Runs integration tests on RaspberryPi + +name: "RPI LedBlinker" + +on: + push: + branches: [ master, devel ] + pull_request: + branches: [ master, devel ] + paths-ignore: + - 'docs/**' + - '**.md' + - '.github/actions/spelling/**' + - '.github/ISSUE_TEMPLATE/**' + +env: + RPI_TOOLCHAIN_DIR: /tmp/rpi-toolchain + +jobs: + get-branch: + name: "Get target branch" + uses: ./.github/workflows/reusable-get-pr-branch.yml + with: + target_repository: fprime-community/fprime-workshop-led-blinker + + cross-compilation: + name: "Cross Compilation" + runs-on: ubuntu-latest + needs: get-branch + steps: + - name: "Checkout target repository" + uses: actions/checkout@v3 + with: + submodules: recursive + repository: fprime-community/fprime-workshop-led-blinker + ref: ${{ needs.get-branch.outputs.target-branch }} + - name: "Overlay current F´ revision" + uses: actions/checkout@v3 + with: + submodules: recursive + path: ./fprime + fetch-depth: 0 + - uses: ./fprime/.github/actions/setup + with: + location: ./fprime + - name: "Setup RPI Toolchain" + uses: fprime-community/setup-rpi-sysroot@main + - name: "Generate RPI Build Cache" + run: | + fprime-util generate raspberrypi + - name: "Build RPI" + run: | + fprime-util build raspberrypi + - name: "Prepare artifacts" + run: | + mkdir -p rpi-artifacts + cp -r ./build-artifacts rpi-artifacts + cp -r Components/Led/test/int rpi-artifacts + - name: 'Archive Build Artifacts' + uses: actions/upload-artifact@v3 + with: + name: rpi-artifacts + path: rpi-artifacts + retention-days: 5 + + RPI-integration: + name: "RPI Integration Tests" + runs-on: self-hosted + needs: cross-compilation + steps: + - name: "Setup environment" + run: | + python -m venv venv + . venv/bin/activate + pip install fprime-gds + - name: "Artifacts Download" + uses: actions/download-artifact@v3 + with: + name: rpi-artifacts + - name: Run Integration Tests + run: | + . venv/bin/activate + mkdir -p ci-logs + chmod +x ./build-artifacts/raspberrypi/LedBlinker/bin/LedBlinker + fprime-gds --ip-client -d ./build-artifacts/raspberrypi/LedBlinker --logs ./ci-logs & + sleep 10 + pytest --dictionary ./build-artifacts/raspberrypi/LedBlinker/dict/LedBlinkerTopologyAppDictionary.xml ./int/led_integration_tests.py + - name: 'Archive logs' + uses: actions/upload-artifact@v3 + if: always() + with: + name: rpi-logs + path: ci-logs + retention-days: 5