name: ThreadXBuild Test on: push: branches: [ 'release/**' ] pull_request: types: [opened, synchronize, reopened, ready_for_review] branches: [ '*' ] # Daily run on master reseeds the shared cache (see save step below). schedule: - cron: '20 5 * * *' env: NETXDUO_REF: v6.4.3_rel jobs: build: if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} runs-on: ubuntu-24.04 timeout-minutes: 10 steps: - name: Restore NetXDuo bundle cache id: cache-netxduo uses: actions/cache/restore@v5 with: path: ./${{ env.NETXDUO_REF }}.tar.gz key: netxduo-bundle-${{ env.NETXDUO_REF }} - name: Download NetXDuo bundle if not cached if: steps.cache-netxduo.outputs.cache-hit != 'true' run: | wget https://github.com/eclipse-threadx/netxduo/archive/refs/tags/${{ env.NETXDUO_REF }}.tar.gz # Only master (the daily schedule) saves, so all PRs share one entry. - name: Save NetXDuo bundle cache if: github.ref == 'refs/heads/master' && steps.cache-netxduo.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: path: ./${{ env.NETXDUO_REF }}.tar.gz key: netxduo-bundle-${{ env.NETXDUO_REF }} - name: Extract NetXDuo bundle run: | mkdir -p netxduo_src tar -xzf ${{ env.NETXDUO_REF }}.tar.gz -C netxduo_src --strip-components=1 - name: Install NetXDuo Dependencies working-directory: ./netxduo_src run: | ./scripts/install.sh - name: Configure NetX with DNS Client Support working-directory: ./netxduo_src run: | cp addons/dns/nxd_dns.h ./common/inc/ cp addons/dns/nxd_dns.c ./common/src/ - name: Build NetXDuo with DNS Support working-directory: ./netxduo_src run: | rm -rf test/cmake/threadx rm -rf test/cmake/filex ./scripts/build_nxd64.sh - name: Build wolfSSL uses: wolfSSL/actions-build-autotools-project@v1 with: path: wolfssl configure: --enable-enckeys --disable-examples --disable-benchmark --disable-crypttests CPPFLAGS="-DTHREADX -DHAVE_NETX -DWOLFSSL_USER_IO -I${{ github.workspace }}/netxduo_src/common/inc -I${{ github.workspace }}/netxduo_src/ports/linux/gnu/inc -I${{ github.workspace }}/netxduo_src/test/cmake/netxduo64/build/libs/inc" LDFLAGS="-L${{ github.workspace }}/netxduo_src/test/cmake/netxduo64/build/default_build_coverage/netxduo -L${{ github.workspace }}/netxduo_src/test/cmake/netxduo64/build/libs/threadx" LIBS="-lnetxduo -lthreadx" install: false