mirror of https://github.com/wolfSSL/wolfssh.git
add example scp test case
parent
3f1e96eed8
commit
e8f034372b
|
|
@ -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 ]
|
||||
Loading…
Reference in New Issue