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 45e0719
Showing 1 changed file with 55 additions and 25 deletions.
80 changes: 55 additions & 25 deletions .github/workflows/kyber.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,65 +12,95 @@ 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-${{ runner.os }}
lookup-only: true

- name: Checkout liboqs
if: steps.cache-liboqs.output.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.output.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.output.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-${{ 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-${{ runner.os }}
lookup-only: true

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

- name: Build and install wolfssl
if: steps.cache-wolfssl.output.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.output.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-${{ 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-${{ 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-${{ runner.os }}
fail-on-cache-miss: true

- name: Install wolfSSH
run: git clone --depth 1 "https://github.com/wolfssl/wolfssh"
Expand All @@ -79,7 +109,7 @@ jobs:
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 45e0719

Please sign in to comment.