name: mbedtls interop Tests # START OF COMMON SECTION on: push: branches: [ 'master', 'main', 'release/**' ] pull_request: branches: [ '*' ] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true # END OF COMMON SECTION env: MBED_REF: v3.6.2 jobs: build_mbedtls: name: Build mbedtls if: github.repository_owner == 'wolfssl' runs-on: ubuntu-latest # This should be a safe limit for the tests to run. timeout-minutes: 10 steps: - name: Checking if we have mbed in cache uses: actions/cache@v4 id: cache with: path: mbedtls key: mbedtls-${{ env.MBED_REF }} lookup-only: true - name: Checkout mbedtls if: steps.cache.outputs.cache-hit != 'true' uses: actions/checkout@v4 with: repository: Mbed-TLS/mbedtls ref: ${{ env.MBED_REF }} path: mbedtls - name: Compile mbedtls if: steps.cache.outputs.cache-hit != 'true' working-directory: mbedtls run: | git submodule update --init mkdir build cd build cmake .. make -j # convert key to pem format openssl pkey -in framework/data_files/cli-rsa-sha256.key.der -text > framework/data_files/cli-rsa-sha256.key.pem openssl pkey -in framework/data_files/server2.key.der -text > framework/data_files/server2.key.pem mbedtls_test: name: Test interop with mbedtls runs-on: ubuntu-latest needs: build_mbedtls timeout-minutes: 10 if: github.repository_owner == 'wolfssl' steps: - name: Disable IPv6 (IMPORTANT, OTHERWISE DTLS MBEDTLS CLIENT WON'T CONNECT) run: echo 1 | sudo tee /proc/sys/net/ipv6/conf/lo/disable_ipv6 - name: Checking if we have mbed in cache uses: actions/cache/restore@v4 id: cache with: path: mbedtls key: mbedtls-${{ env.MBED_REF }} fail-on-cache-miss: true - name: Build wolfSSL uses: wolfSSL/actions-build-autotools-project@v1 with: path: wolfssl configure: --enable-dtls --enable-dtlscid install: false check: false - name: Test interop run: bash wolfssl/.github/workflows/mbedtls.sh - name: print server logs if: ${{ failure() }} run: cat /tmp/server.log