Skip to content

Commit

Permalink
Kyber Testing
Browse files Browse the repository at this point in the history
1. Updated to use more standard actions.
2. Cache the outputs of the dependencies.
  • Loading branch information
ejohnstown committed May 16, 2024
1 parent c053303 commit 5c251c7
Showing 1 changed file with 60 additions and 26 deletions.
86 changes: 60 additions & 26 deletions .github/workflows/kyber.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,74 +12,108 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 4
steps:
- name: Install liboqs source
run: git clone --depth 1 --branch "0.10.0" "https://github.com/open-quantum-safe/liboqs"
- name: Checking cache for liboqs
uses: actions/cache/restore@v4
id: cache-liboqs
with:
path: opt/liboqs/
key: wolfssh-liboqs-0.10.0-${{ runner.os }}
lookup-only: true

- name: Checkout liboqs
if: steps.cache-liboqs.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: open-quantum-safe/liboqs
ref: 0.10.0
path: liboqs

- name: Build and install liboqs
if: steps.cache.outputs.cache-hit != 'true'
working-directory: liboqs
run: |
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/opt -DOQS_MINIMAL_BUILD=KEM_kyber_512 -DOQS_USE_OPENSSL=0 ..
cmake -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/opt/liboqs -DOQS_MINIMAL_BUILD=KEM_kyber_512 -DOQS_USE_OPENSSL=0 ..
make
make install
- name: Upload liboqs
uses: actions/upload-artifact@v4
- name: Stash liboqs in cache
if: steps.cache-liboqs.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
name: wolfssh-liboqs
path: ${{ github.workspace }}/opt/
retention-days: 3
path: opt/liboqs/
key: wolfssh-liboqs-0.10.0-${{ runner.os }}

build_wolfssl:
name: Build wolfssl
runs-on: ubuntu-latest
timeout-minutes: 4
steps:
- name: Install wolfssl source
run: git clone --depth 1 "https://github.com/wolfssl/wolfssl"
- name: Checking cache for wolfssl
uses: actions/cache/restore@v4
id: cache-wolfssl
with:
path: opt/wolfssl/
key: wolfssh-wolfssl-v5.7.0-stable-${{ runner.os }}
lookup-only: true

- name: Checkout wolfssl
if: steps.cache-wolfssl.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: wolfssl/wolfssl
ref: v5.7.0-stable
path: wolfssl

- name: Build and install wolfssl
if: steps.cache-wolfssl.outputs.cache-hit != 'true'
working-directory: wolfssl
run: |
autoreconf -ivf
./configure --prefix=${{ github.workspace }}/opt --enable-wolfssh --enable-cryptonly --disable-examples --disable-crypttests
./configure --prefix=${{ github.workspace }}/opt/wolfssl --enable-wolfssh --enable-cryptonly --disable-examples --disable-crypttests
make
make install
- name: Upload wolfssl
uses: actions/upload-artifact@v4
- name: Stash wolfssl in cache
if: steps.cache-wolfssl.outputs.cache-hit != 'true'
uses: actions/cache/save@v3
with:
name: wolfssh-wolfssl
path: ${{ github.workspace}}/opt/
retention-days: 3
path: opt/wolfssl/
key: wolfssh-wolfssl-v5.7.0-stable-${{ runner.os }}

build_wolfssh:
name: Build wolfssh
runs-on: ubuntu-latest
timeout-minutes: 4
needs: [build_wolfssl, build_liboqs]
steps:
- name: Download wolfssl
uses: actions/download-artifact@v4
- name: Checking cache for liboqs
uses: actions/cache/restore@v4
with:
name: wolfssh-wolfssl
path: ${{ github.workspace }}/opt/
path: opt/liboqs/
key: wolfssh-liboqs-0.10.0-${{ runner.os }}
fail-on-cache-miss: true

- name: Download liboqs
uses: actions/download-artifact@v4
- name: Checking cache for wolfssl
uses: actions/cache/restore@v4
with:
name: wolfssh-liboqs
path: ${{ github.workspace }}/opt/
path: opt/wolfssl/
key: wolfssh-wolfssl-v5.7.0-stable-${{ runner.os }}
fail-on-cache-miss: true

- name: Install wolfSSH
run: git clone --depth 1 "https://github.com/wolfssl/wolfssh"
uses: actions/checkout@v4
with:
repository: wolfssl/wolfssh
ref: master
path: wolfssh

- name: Build wolfSSH
working-directory: wolfssh
run: |
autoreconf -ivf
./configure --with-liboqs=${{ github.workspace }}/opt LDFLAGS=-L${{ github.workspace }}/opt/lib CPPFLAGS=-I${{ github.workspace }}/opt/include
./configure --with-liboqs LDFLAGS="-L${{ github.workspace }}/opt/liboqs/lib -L${{ github.workspace }}/opt/wolfssl/lib" CPPFLAGS="-I${{ github.workspace }}/opt/liboqs/include -I${{ github.workspace }}/opt/wolfssl/include"
make
- name: Run wolfssh tests
Expand Down

0 comments on commit 5c251c7

Please sign in to comment.