Skip to content

remove -d flag with test #20

remove -d flag with test

remove -d flag with test #20

name: Benchmark Test
on:
push:
branches: [ '*' ]
pull_request:
branches: [ '*' ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_wolfssl:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
wolfssl: [ master ]
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
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
wolfssl: [ master ]
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 --enable-debug LDFLAGS="-L${{ github.workspace }}/build-dir/lib" CPPFLAGS="-I${{ github.workspace }}/build-dir/include -DWOLFSSH_NO_FPKI -DWOLFSSH_NO_SFTP_TIMEOUT -DWOLFSSH_MAX_SFTP_RW=4000000 -DMAX_PATH_SZ=120 -DEXAMPLE_SFTP_BENCHMARK"
- name: make
working-directory: ./wolfssh/
run: make
- name: Get Saved OpenSSH Upload Results
uses: actions/download-artifact@v4
continue-on-error: true
with:
path: ./wolfssh/
artifact_id: 'openssh-upload'
- name: Get Saved OpenSSH Download Results
uses: actions/download-artifact@v4
continue-on-error: true
with:
path: ./wolfssh/
artifact_id: 'openssh-download'
- name: Install gnuplot
run: sudo apt-get install gnuplot
- name: Setup OpenSSH Test Server
working-directory: ./wolfssh/
run: |
sudo apt-get install openssh-server
mkdir ~/.ssh
touch ~/.ssh/authorized_keys
touch authorized_keys_test
echo "AuthorizedKeysFile $PWD/keys/hansel-key-ecc.pub" >> sshd-config-test.txt
echo "PubkeyAuthentication yes" >> sshd-config-test.txt
echo "Subsystem sftp internal-sftp" >> sshd-config-test.txt
echo "MaxAuthTries 15" >> sshd-config-test.txt
sed -i.bak "s/hansel/$USER/" ./keys/hansel-key-ecc.pub
chmod 600 ./keys/hansel-key-*.pem
chmod 600 ./keys/hansel-key-*.pub
chmod 700 ~/.ssh
sudo mkdir -p /run/sshd
sudo chmod 755 /run/sshd
sudo /usr/sbin/sshd -p 22222 -h $PWD/keys/server-key.pem -f sshd-config-test.txt -E $PWD/sshd-log.txt
cat sshd-config-test.txt
ps -e | grep sshd
- name: Run SFTP client benchmark
working-directory: ./wolfssh/
timeout-minutes: 5
run: |
./scripts/get-sftp-benchmark.sh 22222
- name: Store Upload Speed PNG
uses: actions/upload-artifact@v4
with:
name: upload-results-pr${{ github.event.pull_request.number }}.png
path: wolfssh/upload-results.png
retention-days: 2
- name: Store Download Speed PNG
uses: actions/upload-artifact@v4
with:
name: download-results-pr${{ github.event.pull_request.number }}.png
path: wolfssh/download-results.png
retention-days: 2
- name: Upload OpenSSH Download Results
if: steps.download-artifact.outputs.found != 'true'
uses: actions/upload-artifact@v4
with:
name: openssh-download
path: wolfssh/openssh-average-download.csv
- name: Upload OpenSSH Upload Results
if: steps.download-artifact.outputs.found != 'true'
uses: actions/upload-artifact@v4
with:
name: openssh-upload
path: wolfssh/openssh-average-upload.csv
- name: Comment on PR about performance
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PR_NUMBER=$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH")
gh pr comment $PR_NUMBER --body "Attached is the performance results" \
--attach download-results-pr${{ github.event.pull_request.number }}.png \
--attach upload-results-pr${{ github.event.pull_request.number }}.png
- name: Print logs if failed
working-directory: ./wolfssh/
if: failure()
run: sudo cat sshd-log.txt