Skip to content

Update Github CI version refs to latest openssl-3.5.0 and 5.8.0-stable #140

Update Github CI version refs to latest openssl-3.5.0 and 5.8.0-stable

Update Github CI version refs to latest openssl-3.5.0 and 5.8.0-stable #140

Workflow file for this run

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:
name: Build wolfProvider
runs-on: ubuntu-22.04
timeout-minutes: 20
strategy:
matrix:
wolfssl_ref: [ 'master', 'v5.8.0-stable' ]
openssl_ref: [ 'openssl-3.5.0' ]
steps:
- name: Checkout wolfProvider
uses: actions/checkout@v4
# Check if this version of wolfssl/wolfprovider has already been built,
# mark to cache these items on post if we do end up building
- name: Checking wolfSSL/wolfProvider in cache
uses: actions/cache@v4
id: wolfprov-cache
with:
path: |
wolfssl-source
wolfssl-install
wolfprov-install
provider.conf
key: wolfprov-${{ matrix.wolfssl_ref }}-${{ github.sha }}
lookup-only: true
# If wolfssl/wolfprovider have not yet been built, pull ossl from cache
- name: Checking OpenSSL in cache
if: steps.wolfprov-cache.outputs.cache-hit != 'true'
uses: actions/cache@v4
id: openssl-cache
with:
path: |
openssl-source
openssl-install
key: ossl-depends-${{ matrix.openssl_ref }}
fail-on-cache-miss: false
# If not yet built this version, build it now
- name: Build wolfProvider
if: steps.wolfprov-cache.outputs.cache-hit != 'true'
run: |
OPENSSL_TAG=${{ matrix.openssl_ref }} WOLFSSL_TAG=${{ matrix.wolfssl_ref }} ./scripts/build-wolfprovider.sh
- name: Print errors
if: ${{ failure() }}
run: |
if [ -f test-suite.log ] ; then
cat test-suite.log
fi
test_grpc:
runs-on: ubuntu-22.04
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' ]
steps:
- name: Checkout wolfProvider
uses: actions/checkout@v4
- name: Confirm IPv4 and IPv6 support
run: |
ip addr list lo | grep 'inet '
ip addr list lo | grep 'inet6 '
- name: Retrieving OpenSSL from cache
uses: actions/cache/restore@v4
id: openssl-cache
with:
path: |
openssl-source
openssl-install
key: ossl-depends-${{ matrix.openssl_ref }}
fail-on-cache-miss: false
- name: Retrieving wolfSSL/wolfProvider from cache
uses: actions/cache/restore@v4
id: wolfprov-cache
with:
path: |
wolfssl-source
wolfssl-install
wolfprov-install
provider.conf
key: wolfprov-${{ matrix.wolfssl_ref }}-${{ github.sha }}
fail-on-cache-miss: true
- name: Install prerequisites
run: |
sudo apt-get update
sudo 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: |
# Setup environment for wolfProviders
export LD_LIBRARY_PATH=$GITHUB_WORKSPACE/wolfssl-install/lib:$GITHUB_WORKSPACE/openssl-install/lib64
export OPENSSL_CONF=$GITHUB_WORKSPACE/provider.conf
export OPENSSL_MODULES=$GITHUB_WORKSPACE/wolfprov-install/lib
# 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