TEMP(testing): trigger nightly-osp on push to ci-draft-pause #1271
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 | ||
|
Check failure on line 1 in .github/workflows/x11vnc.yml
|
||
| on: | ||
| workflow_call: | ||
| inputs: | ||
| wolfssl_refs_json: | ||
| description: "JSON array of wolfssl refs to test; empty = use discover_versions output" | ||
| required: false | ||
| type: string | ||
| default: "" | ||
| workflow_dispatch: {} | ||
| jobs: | ||
| discover_versions: | ||
| uses: ./.github/workflows/_discover-versions.yml | ||
| build_wolfprovider: | ||
| needs: discover_versions | ||
| 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: | ||
| fail-fast: false | ||
| matrix: | ||
| wolfssl_ref: ${{ inputs.wolfssl_refs_json != "" && fromJson(inputs.wolfssl_refs_json) || fromJson(needs.discover_versions.outputs.wolfssl_ref_array) }} | ||
| openssl_ref: ${{ fromJson(needs.discover_versions.outputs.openssl_ref_array) }} | ||
| fips_ref: [ 'FIPS', 'non-FIPS' ] | ||
| replace_default: [ true ] | ||
| test_x11vnc: | ||
| runs-on: ubuntu-22.04 | ||
| needs: [build_wolfprovider, discover_versions] | ||
| container: | ||
| image: ghcr.io/wolfssl/wolfprovider-test-deps:bookworm | ||
| env: | ||
| DEBIAN_FRONTEND: noninteractive | ||
| timeout-minutes: 60 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| x11vnc_ref: [ '0.9.17' ] | ||
| wolfssl_ref: ${{ inputs.wolfssl_refs_json != "" && fromJson(inputs.wolfssl_refs_json) || fromJson(needs.discover_versions.outputs.wolfssl_ref_array) }} | ||
| openssl_ref: ${{ fromJson(needs.discover_versions.outputs.openssl_ref_array) }} | ||
| 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 | ||
| # Prevent later 'apt-get install' of test dependencies from | ||
| # replacing the wolfprov-patched libssl3, which breaks | ||
| # replace-default mode. | ||
| apt-mark hold libssl3 libssl-dev openssl libwolfssl libwolfprov | ||
| - name: Verify wolfProvider is properly installed | ||
| run: | | ||
| $GITHUB_WORKSPACE/scripts/verify-install.sh \ | ||
| ${{ matrix.replace_default && '--replace-default' || '' }} \ | ||
| ${{ matrix.fips_ref == 'FIPS' && '--fips' || '' }} | ||
| - 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: aidangarske/osp | ||
| ref: 5.9.1-wolfprov-patches | ||
| path: osp | ||
| fetch-depth: 1 | ||
| - run: | | ||
| cd x11vnc | ||
| PATCH=$($GITHUB_WORKSPACE/scripts/resolve-osp-patch.sh $GITHUB_WORKSPACE/osp x11vnc ${{ matrix.x11vnc_ref }} ${{ matrix.wolfssl_ref }} ${{ matrix.fips_ref == 'FIPS' && '--fips' || '' }}) | ||
| patch -p1 < "$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 | ||
| # Surface the most recent log via the existing follow-up step | ||
| export X11VNC_TEST_LOG=/tmp/x11vnc-test.log | ||
| - 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 | ||