name: WolfSSL Ada Build Tests on: push: branches: [ 'master', 'main', 'release/**' ] pull_request: branches: [ '*' ] jobs: build: if: github.repository_owner == 'wolfssl' runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Install alire uses: alire-project/setup-alire@v5 - name: Install wolfssl Ada working-directory: ./wrapper/Ada run: alr install - name: Build default.gpr working-directory: ./wrapper/Ada run: alr exec -- gprbuild default.gpr -j$(nproc) - name: Run Ada wrapper tests working-directory: ./wrapper/Ada/tests run: alr run - name: Run Ada examples id: examples working-directory: ./wrapper/Ada/examples run: | alr build echo "Running sha256_main example..." alr run sha256_main echo "Running aes_verify_main example..." alr run aes_verify_main echo "Running rsa_verify_main example..." alr run rsa_verify_main echo "Running TLS server/client example..." alr run tls_server_main &> server.log & SERVER_PID=$! sleep 1 echo "test message" | alr run tls_client_main --args=127.0.0.1 kill $SERVER_PID || true - name: show errors if: ${{ failure() && steps.examples.outcome == 'failure' }} run: cat ./wrapper/Ada/examples/server.log - name: Install valgrind uses: ./.github/actions/install-apt-deps with: packages: valgrind - name: Run Ada wrapper tests (valgrind) working-directory: ./wrapper/Ada/tests run: | valgrind --leak-check=full --error-exitcode=1 \ --suppressions=valgrind.supp ./bin/tests - name: Run gnatprove on wolfssl working-directory: ./wrapper/Ada run: alr gnatprove --level=4 -P wolfssl.gpr -j 0 --warnings=error --checks-as-errors --proof-warnings -U - name: Run gnatprove on examples working-directory: ./wrapper/Ada/examples run: alr gnatprove --level=4 -P examples.gpr -j 0 --warnings=error --checks-as-errors --proof-warnings -U