diff --git a/.github/workflows/kyber.yml b/.github/workflows/kyber.yml index b2b02367b..5308b7a0a 100644 --- a/.github/workflows/kyber.yml +++ b/.github/workflows/kyber.yml @@ -9,6 +9,7 @@ on: env: LIBOQS_REF: 0.10.0 WOLFSSL_REF: v5.7.0-stable + OS_REF: ubuntu-latest jobs: build_liboqs: @@ -20,8 +21,8 @@ jobs: uses: actions/cache@v4 id: cache-liboqs with: - path: opt/liboqs/ - key: wolfssh-kyber-liboqs-${{ env.LIBOQS_REF }}-${{ runner.os }} + path: build-dir/ + key: wolfssh-kyber-liboqs-${{ env.LIBOQS_REF }}-${{ env.OS_REF }} lookup-only: true - name: Checkout liboqs @@ -38,7 +39,7 @@ jobs: run: | mkdir build cd build - cmake -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/opt/liboqs -DOQS_MINIMAL_BUILD=KEM_kyber_512 -DOQS_USE_OPENSSL=0 .. + cmake -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/build-dir -DOQS_MINIMAL_BUILD=KEM_kyber_512 -DOQS_USE_OPENSSL=0 .. make make install @@ -51,8 +52,8 @@ jobs: uses: actions/cache@v4 id: cache-wolfssl with: - path: opt/wolfssl/ - key: wolfssh-kyber-wolfssl-${{ env.WOLFSSL_REF }}-${{ runner.os }} + path: build-dir/ + key: wolfssh-kyber-wolfssl-${{ env.WOLFSSL_REF }}-${{ env.OS_REF }} lookup-only: true - name: Checkout, build, and install wolfssl @@ -66,12 +67,6 @@ jobs: check: false install: true - - shell: bash - if: steps.cache-wolfssl.outputs.cache-hit != 'true' - run: | - mkdir -p opt - mv build-dir opt/wolfssl - build_wolfssh: name: Build wolfssh runs-on: ubuntu-latest @@ -81,15 +76,15 @@ jobs: - name: Checking cache for liboqs uses: actions/cache@v4 with: - path: opt/liboqs/ - key: wolfssh-kyber-liboqs-${{ env.LIBOQS_REF }}-${{ runner.os }} + path: build-dir/ + key: wolfssh-kyber-liboqs-${{ env.LIBOQS_REF }}-${{ env.OS_REF }} fail-on-cache-miss: true - name: Checking cache for wolfssl uses: actions/cache@v4 with: - path: opt/wolfssl/ - key: wolfssh-kyber-wolfssl-${{ env.WOLFSSL_REF }}-${{ runner.os }} + path: build-dir/ + key: wolfssh-kyber-wolfssl-${{ env.WOLFSSL_REF }}-${{ env.OS_REF }} fail-on-cache-miss: true - name: Checkout, build, and test wolfssh @@ -97,5 +92,5 @@ jobs: with: repository: wolfssl/wolfssh path: wolfssh - 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" + configure: --with-liboqs=${{ github.workspace }}/build-dir --with-wolfssl=${{ github.workspace }}/build-dir check: true diff --git a/.github/workflows/macos-check.yml b/.github/workflows/macos-check.yml deleted file mode 100644 index 1dfb4e626..000000000 --- a/.github/workflows/macos-check.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: macOS Build Test - -on: - push: - branches: [ '*' ] - pull_request: - branches: [ '*' ] - -jobs: - build: - - runs-on: macos-latest - - steps: - - uses: actions/checkout@v2 - with: - repository: wolfSSL/wolfssl.git - ref: master - - name: brew - run: brew install autoconf automake libtool - - name: build wolfSSL - run: ./autogen.sh && ./configure --enable-wolfssh --enable-cryptonly && make check && sudo make install - - uses: actions/checkout@v2 - - name: configure - run: autoreconf -ivf && ./configure - - name: make - run: make - - name: make check - run: make check - - name: make distcheck - run: make distcheck - diff --git a/.github/workflows/os-check.yml b/.github/workflows/os-check.yml new file mode 100644 index 000000000..5db5697d4 --- /dev/null +++ b/.github/workflows/os-check.yml @@ -0,0 +1,75 @@ +name: OS Check Test + +on: + push: + branches: [ '*' ] + pull_request: + branches: [ '*' ] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + WOLFSSL_REF: v5.7.0-stable + +jobs: + build_wolfssl: + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, macos-latest ] + 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-os-check-wolfssl-${{ env.WOLFSSL_REF }}-${{ 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: ${{ env.WOLFSSL_REF }} + path: wolfssl + configure: --enable-all + check: false + install: true + + build_wolfssh: + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, macos-latest ] + config: [ + '', + '--enable-all', + '--enable-sftp', + '--enable-scp', + '--enable-shell', + ] + name: Build wolfssh + runs-on: ${{ matrix.os }} + timeout-minutes: 4 + needs: build_wolfssl + steps: + - name: Checking cache for wolfssl + uses: actions/cache@v4 + with: + path: build-dir/ + key: wolfssh-os-check-wolfssl-${{ env.WOLFSSL_REF }}-${{ matrix.os }} + fail-on-cache-miss: true + + - name: Checkout, build, and test wolfssh + uses: wolfSSL/actions-build-autotools-project@v1 + with: + repository: wolfssl/wolfssh + path: wolfssh + configure: ${{ matrix.config }} LDFLAGS="-L${{ github.workspace }}/build-dir/lib" CPPFLAGS="-I${{ github.workspace }}/build-dir/include" + check: true diff --git a/.github/workflows/ubuntu-check.yml b/.github/workflows/ubuntu-check.yml deleted file mode 100644 index 8f10e6564..000000000 --- a/.github/workflows/ubuntu-check.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Ubuntu Build Test - -on: - push: - branches: [ '*' ] - pull_request: - branches: [ '*' ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - with: - repository: wolfSSL/wolfssl.git - ref: master - - name: build wolfSSL - run: ./autogen.sh && ./configure --enable-ssh --enable-cryptonly --prefix=/usr && make check && sudo make install - - uses: actions/checkout@v2 - - name: autogen - run: ./autogen.sh - - name: configure - run: ./configure - - name: make - run: make - - name: make check - run: make check - - name: make distcheck - run: make distcheck -