Skip to content

Commit

Permalink
add example scp test case
Browse files Browse the repository at this point in the history
  • Loading branch information
JacobBarthelmeh committed Nov 13, 2024
1 parent 3f1e96e commit e8f0343
Showing 1 changed file with 107 additions and 0 deletions.
107 changes: 107 additions & 0 deletions .github/workflows/scp-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: wolfSSH SCP Test

on:
push:
branches: [ '*' ]
pull_request:
branches: [ '*' ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
create_matrix:
runs-on: ubuntu-latest
outputs:
versions: ${{ steps.json.outputs.versions }}
steps:
- name: Create wolfSSL version matrix
id: json
run: |
current=`curl -s https://api.github.com/repos/wolfssl/wolfssl/releases | grep tag_name | cut -d : -f 2,3 | tr -d \" | tr -d , | tr -d ' ' | head -1`
last=`curl -s https://api.github.com/repos/wolfssl/wolfssl/releases | grep tag_name | cut -d : -f 2,3 | tr -d \" | tr -d , | tr -d ' ' | head -2 | tail -1`
VERSIONS=$(echo "[ \"master\", \"$current\", \"$last\" ]")
echo "wolfSSL versions found: $VERSIONS"
echo "versions=$VERSIONS" >> $GITHUB_OUTPUT
build_wolfssl:
needs: create_matrix
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
wolfssl: ${{ fromJson(needs.create_matrix.outputs['versions']) }}
name: Build wolfssl
runs-on: ${{ matrix.os }}
timeout-minutes: 4
steps:
- name: Checking cache for wolfssl
uses: actions/cache@v4
id: cache-wolfssl
with:
path: build-dir/
key: wolfssh-sshd-wolfssl-${{ matrix.wolfssl }}-${{ matrix.os }}
lookup-only: true

- name: Checkout, build, and install wolfssl
if: steps.cache-wolfssl.outputs.cache-hit != 'true'
uses: wolfSSL/actions-build-autotools-project@v1
with:
repository: wolfssl/wolfssl
ref: ${{ matrix.wolfssl }}
path: wolfssl
configure: --enable-all
check: false
install: true

build_wolfssh:
needs:
- build_wolfssl
- create_matrix
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
wolfssl: ${{ fromJson(needs.create_matrix.outputs['versions']) }}
name: Build and test wolfsshd
runs-on: ${{ matrix.os }}
timeout-minutes: 10
steps:
- name: Checking cache for wolfssl
uses: actions/cache@v4
with:
path: build-dir/
key: wolfssh-sshd-wolfssl-${{ matrix.wolfssl }}-${{ matrix.os }}
fail-on-cache-miss: true

- uses: actions/checkout@v4
with:
path: wolfssh/

- name: autogen
working-directory: ./wolfssh/
run: ./autogen.sh

- name: configure
working-directory: ./wolfssh/
run : |
./configure --enable-all LDFLAGS="-L${{ github.workspace }}/build-dir/lib" CPPFLAGS="-I${{ github.workspace }}/build-dir/include -DWOLFSSH_NO_FPKI -DWOLFSSH_NO_SFTP_TIMEOUT -DMAX_PATH_SZ=120"
- name: make
working-directory: ./wolfssh/
run: make

- name: Setup test user
run: sudo useradd -p password jak

- name: Run SCP example test
timeout-minutes: 1
working-directory: ./wolfssh/
run: |
mkdir /tmp/wolfssh
echo "test file" > /tmp/wolfssh/test.txt
./examples/scpclient/wolfscp -p 22 -u jak -P password -H 127.0.0.1 -L /tmp/wolfssh/test.txt:/tmp/non_existent_folder/ || true
# check that the directory and file do not exist
[ ! -d /tmp/non_existent_folder ]
[ ! -f /tmp/non_existent_folder/test.txt ]

0 comments on commit e8f0343

Please sign in to comment.