Update CI workflows to use Debian packages only #1127
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: gRPC 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 | |
| jobs: | |
| build_wolfprovider: | |
| uses: ./.github/workflows/build-wolfprovider.yml | |
| with: | |
| wolfssl_ref: ${{ matrix.wolfssl_ref }} | |
| openssl_ref: ${{ matrix.openssl_ref }} | |
| replace_default: ${{ matrix.replace_default }} | |
| strategy: | |
| matrix: | |
| wolfssl_ref: [ 'master', 'v5.8.0-stable' ] | |
| openssl_ref: [ 'openssl-3.5.0' ] | |
| replace_default: [ true ] | |
| test_grpc: | |
| runs-on: ubuntu-22.04 | |
| container: | |
| image: debian:bookworm | |
| env: | |
| DEBIAN_FRONTEND: noninteractive | |
| needs: build_wolfprovider | |
| # This should be a safe limit for the tests to run. | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - grpc_ref: v1.60.0 # TODO: Add master | |
| tests: >- | |
| bad_ssl_alpn_test bad_ssl_cert_test client_ssl_test | |
| crl_ssl_transport_security_test server_ssl_test | |
| ssl_transport_security_test ssl_transport_security_utils_test | |
| test_core_security_ssl_credentials_test test_cpp_end2end_ssl_credentials_test | |
| h2_ssl_cert_test h2_ssl_session_reuse_test | |
| wolfssl_ref: [ 'master', 'v5.8.0-stable' ] | |
| openssl_ref: [ 'openssl-3.5.0' ] | |
| replace_default: [ true ] | |
| env: | |
| WOLFSSL_PACKAGES_PATH: /tmp/wolfssl-packages | |
| OPENSSL_PACKAGES_PATH: /tmp/openssl-packages | |
| WOLFPROV_PACKAGES_PATH: /tmp/wolfprov-packages | |
| steps: | |
| - name: Checkout wolfProvider | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| - name: Checking OpenSSL/wolfProvider packages in cache | |
| uses: actions/cache/restore@v4 | |
| id: wolfprov-cache | |
| with: | |
| path: | | |
| ${{ env.WOLFSSL_PACKAGES_PATH }} | |
| ${{ env.OPENSSL_PACKAGES_PATH }} | |
| ${{ env.WOLFPROV_PACKAGES_PATH }} | |
| key: openssl-wolfprov-debian-packages-${{ github.sha }}${{ matrix.replace_default && '-replace-default' || '' }} | |
| fail-on-cache-miss: true | |
| - name: Install wolfSSL/OpenSSL/wolfprov packages | |
| run: | | |
| printf "Installing OpenSSL/wolfProvider packages:\n" | |
| ls -la ${{ env.WOLFSSL_PACKAGES_PATH }} | |
| ls -la ${{ env.OPENSSL_PACKAGES_PATH }} | |
| ls -la ${{ env.WOLFPROV_PACKAGES_PATH }} | |
| apt install --reinstall -y \ | |
| ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb | |
| apt install --reinstall -y \ | |
| ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ | |
| ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ | |
| ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb | |
| apt install --reinstall -y \ | |
| ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb | |
| - name: Confirm IPv4 and IPv6 support | |
| run: | | |
| ip addr list lo | grep 'inet ' | |
| ip addr list lo | grep 'inet6 ' | |
| - name: Install prerequisites | |
| run: | | |
| apt-get update | |
| apt-get install -y build-essential autoconf libtool pkg-config clang libc++-dev | |
| - name: Setup cmake version | |
| uses: jwlawson/actions-setup-cmake@v2 | |
| with: | |
| cmake-version: '3.25.x' | |
| - name: Checkout grpc | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: grpc/grpc | |
| path: grpc | |
| ref: ${{ matrix.grpc_ref }} | |
| - name: Build grpc with wolfProvider | |
| working-directory: ./grpc | |
| run: | | |
| # Initialize submodules | |
| git submodule update --init | |
| # Build | |
| mkdir -p cmake/build | |
| cd cmake/build | |
| # Configure with OpenSSL and wolfProvider | |
| cmake -DgRPC_BUILD_TESTS=ON -DgRPC_SSL_PROVIDER=package \ | |
| -DOPENSSL_ROOT_DIR=$GITHUB_WORKSPACE/openssl-install ../.. | |
| # Build the tests | |
| make -j $(nproc) ${{ matrix.tests }} | |
| - name: Run grpc tests with wolfProvider | |
| working-directory: ./grpc | |
| run: | | |
| # Start the port server | |
| ./tools/run_tests/start_port_server.py | |
| # Run the tests | |
| for t in ${{ matrix.tests }} ; do | |
| ./cmake/build/$t | |
| done |