Repository navigation
Fix: Fenrir F-10621 #14683
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: libssh2 Tests | |
| # START OF COMMON SECTION | |
| on: | |
| push: | |
| branches: [ 'release/**' ] | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| branches: [ '*' ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| # END OF COMMON SECTION | |
| jobs: | |
| build_wolfssl: | |
| name: Build wolfSSL | |
| # Just to keep it the same as the testing target | |
| if: ${{ (github.repository_owner == 'wolfssl') && (github.event_name != 'pull_request' || github.event.pull_request.draft == false) }} | |
| runs-on: ubuntu-24.04 | |
| # This should be a safe limit for the tests to run. | |
| timeout-minutes: 4 | |
| steps: | |
| - name: Build wolfSSL | |
| uses: wolfSSL/actions-build-autotools-project@v1 | |
| with: | |
| path: wolfssl | |
| configure: --enable-all | |
| check: false # config is already tested in many other PRB's | |
| install: true | |
| - name: tar build-dir | |
| run: tar -zcf build-dir.tgz build-dir | |
| - name: Upload built lib | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: wolf-install-libssh2 | |
| path: build-dir.tgz | |
| retention-days: 5 | |
| libssh2_check: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # List of releases to test | |
| ref: [ 1.11.1 ] | |
| name: ${{ matrix.ref }} | |
| if: ${{ (github.repository_owner == 'wolfssl') && (github.event_name != 'pull_request' || github.event.pull_request.draft == false) }} | |
| runs-on: ubuntu-24.04 | |
| # This should be a safe limit for the tests to run. | |
| timeout-minutes: 8 | |
| needs: build_wolfssl | |
| steps: | |
| - name: Download lib | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: wolf-install-libssh2 | |
| - name: untar build-dir | |
| run: tar -xf build-dir.tgz | |
| - name: Clone libssh2 | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: libssh2/libssh2 | |
| ref: libssh2-${{ matrix.ref }} | |
| path: libssh2 | |
| fetch-depth: 1 | |
| - name: Update libssh2 test to use a stable version of debian | |
| working-directory: libssh2 | |
| run: | | |
| sed -i 's/testing-slim/oldstable-slim/' tests/openssh_server/Dockerfile | |
| - name: Build libssh2 | |
| working-directory: libssh2 | |
| run: | | |
| autoreconf -fi | |
| ./configure --with-crypto=wolfssl --with-libwolfssl-prefix=$GITHUB_WORKSPACE/build-dir | |
| make -j | |
| - name: Pre-build Docker image to avoid concurrent docker build race | |
| working-directory: libssh2 | |
| run: docker build -t libssh2/openssh_server tests/openssh_server | |
| - name: Run libssh2 tests | |
| working-directory: libssh2 | |
| # The Docker OpenSSH-server tests hit a container-readiness race: | |
| # docker-proxy binds the published port as soon as the container | |
| # starts, so connect() succeeds and the handshake then fails with | |
| # ECONNRESET (-43) because sshd inside the container is not listening | |
| # yet. The libssh2 fixture only retries connect(), which never fails | |
| # here, so it cannot recover on its own. Cap the parallelism to the | |
| # runner's CPU count to shrink the burst of simultaneous containers, | |
| # then re-run only the tests that did not pass. Note that recheck is | |
| # generated by automake only in the directory holding TESTS, so it has | |
| # to run in tests/. A genuine failure still fails the job. | |
| run: | | |
| make -j"$(nproc)" check \ | |
| || make -C tests recheck \ | |
| || make -C tests recheck | |
| - name: Confirm libssh2 built with wolfSSL | |
| run: ldd libssh2/src/.libs/libssh2.so | grep wolfssl | |
| - name: print test logs | |
| if: ${{ failure() }} | |
| run: tail -n +1 libssh2/tests/*.log |