Unify workflow yamls with pre-processing step #1016
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: x11vnc 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 }} | |
| fips_ref: ${{ matrix.fips_ref }} | |
| replace_default: ${{ matrix.replace_default }} | |
| strategy: | |
| matrix: | |
| wolfssl_ref: [ 'v5.8.4-stable' ] | |
| openssl_ref: [ 'openssl-3.5.4' ] | |
| fips_ref: [ 'FIPS', 'non-FIPS' ] | |
| replace_default: [ true ] | |
| test_x11vnc: | |
| runs-on: ubuntu-22.04 | |
| needs: build_wolfprovider | |
| container: | |
| image: debian:bookworm | |
| env: | |
| DEBIAN_FRONTEND: noninteractive | |
| timeout-minutes: 10 | |
| strategy: | |
| matrix: | |
| x11vnc_ref: [ '0.9.17' ] | |
| wolfssl_ref: [ 'v5.8.4-stable' ] | |
| openssl_ref: [ 'openssl-3.5.4' ] | |
| fips_ref: [ 'FIPS', 'non-FIPS' ] | |
| force_fail: [ 'WOLFPROV_FORCE_FAIL=1', '' ] | |
| 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: Download packages from build job | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: debian-packages-${{ matrix.fips_ref }}${{ matrix.replace_default && '-replace-default' || '' }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }} | |
| path: /tmp | |
| - name: Install wolfSSL/OpenSSL/wolfprov packages | |
| run: | | |
| apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ | |
| ${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl_*.deb | |
| apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ | |
| ${{ env.OPENSSL_PACKAGES_PATH }}/openssl_*.deb \ | |
| ${{ env.OPENSSL_PACKAGES_PATH }}/libssl3_*.deb \ | |
| ${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev_*.deb | |
| apt install --reinstall -y --allow-downgrades --allow-change-held-packages \ | |
| ${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb | |
| - name: Verify wolfProvider is properly installed | |
| run: | | |
| $GITHUB_WORKSPACE/scripts/verify-install.sh \ | |
| ${{ matrix.replace_default && '--replace-default' || '' }} \ | |
| ${{ matrix.fips_ref == 'FIPS' && '--fips' || '' }} | |
| - name: Install x11vnc dependencies | |
| run: | | |
| apt-get update | |
| # common build dependencies | |
| apt-get install -y build-essential autoconf automake libtool \ | |
| pkg-config gcc make ca-certificates | |
| # x11vnc dependencies | |
| apt-get install -y libc6-dev libjpeg-dev x11proto-core-dev \ | |
| libxss-dev zlib1g-dev libavahi-client-dev libvncserver-dev \ | |
| libx11-dev libxdamage-dev libxext-dev libxfixes-dev libxi-dev \ | |
| libxinerama-dev libxrandr-dev libxtst-dev | |
| # packages for testing script | |
| apt-get install -y xvfb tigervnc-viewer psmisc expect curl | |
| - name: Download x11vnc | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: LibVNC/x11vnc | |
| ref: ${{ matrix.x11vnc_ref }} | |
| path: x11vnc | |
| - name: Checkout OSP | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: wolfssl/osp | |
| path: osp | |
| fetch-depth: 1 | |
| - run: | | |
| cd x11vnc | |
| patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/x11vnc/x11vnc-${{ matrix.x11vnc_ref }}-wolfprov.patch | |
| - name: Build x11vnc | |
| working-directory: x11vnc | |
| run: | | |
| autoreconf -vfi | |
| ./configure | |
| make -j $(nproc) | |
| make install | |
| - name: Run x11vnc tests | |
| shell: bash | |
| run: | | |
| export ${{ matrix.force_fail }} | |
| export WOLFPROV_FORCE_FAIL_STR="${{ matrix.force_fail }}" | |
| export X11VNC_TEST_LOG=/tmp/x11vnc-test.log | |
| export X11VNC_TEST_STATUS=0 | |
| if ! $GITHUB_WORKSPACE/.github/scripts/x11vnc/test_x11vnc.sh $X11VNC_TEST_LOG; then | |
| X11VNC_TEST_STATUS=1 | |
| fi | |
| if $GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $X11VNC_TEST_STATUS "$WOLFPROV_FORCE_FAIL_STR" x11vnc; then | |
| X11VNC_TEST_STATUS=0 | |
| else | |
| X11VNC_TEST_STATUS=1 | |
| fi | |
| - name: Show x11vnc test log on failure | |
| run: | | |
| if [ $X11VNC_TEST_STATUS -ne 0 ]; then | |
| cat $X11VNC_TEST_LOG | |
| fi | |
| exit $X11VNC_TEST_STATUS | |
| $GITHUB_WORKSPACE/.github/scripts/x11vnc/test_x11vnc.sh | |