Add CI that builds and runs every example #72
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Mynewt | |
| on: | |
| push: | |
| branches: [master] | |
| paths: | |
| - 'mynewt/**' | |
| - '.github/workflows/mynewt.yml' | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| paths: | |
| - 'mynewt/**' | |
| - '.github/workflows/mynewt.yml' | |
| # No cron: nightly.yml calls this, so the nightly stays one run and one triage writer | |
| workflow_call: | |
| inputs: | |
| caller_run_id: | |
| description: 'run id of the calling workflow; keeps a called run in its own concurrency group' | |
| type: string | |
| default: '' | |
| workflow_dispatch: | |
| # github.workflow is the CALLER's name in a called workflow, so hardcode ours | |
| concurrency: | |
| group: ${{ inputs.caller_run_id && format('mynewt-call-{0}', inputs.caller_run_id) || format('mynewt-{0}', github.ref) }} | |
| cancel-in-progress: ${{ !inputs.caller_run_id }} | |
| permissions: | |
| contents: read | |
| jobs: | |
| resolve: | |
| uses: ./.github/workflows/_resolve-wolfssl.yml | |
| with: | |
| stable_count: 1 | |
| mynewt: | |
| needs: resolve | |
| name: Build / mynewt (wolfSSL port compiles) wolfSSL ${{ matrix.wolfssl_ref }} | |
| if: github.event_name != 'pull_request' || github.event.pull_request.draft == false | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| wolfssl_ref: ${{ fromJson(needs.resolve.outputs.refs_json) }} | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: ./.github/actions/apt-update | |
| - name: Install build-essential | |
| run: sudo apt-get install -y --no-install-recommends build-essential | |
| # A full newt build needs the Apache Mynewt RTOS; the port bug is entirely | |
| # in wolfSSL's settings.h/types.h, so ci-compile-check.sh compiles just that | |
| # header path with the RTOS headers stubbed -- the exact thing that was broken. | |
| - name: Compile the wolfSSL Mynewt port header path | |
| run: | | |
| set -euo pipefail | |
| bash "$GITHUB_WORKSPACE/.github/scripts/git-clone-retry.sh" -q --depth 1 --branch '${{ matrix.wolfssl_ref }}' \ | |
| https://github.com/wolfSSL/wolfssl /tmp/wolfssl | |
| ./mynewt/ci-compile-check.sh /tmp/wolfssl |