diff --git a/.github/workflows/os-check.yml b/.github/workflows/os-check.yml new file mode 100644 index 000000000..d3b45e9c5 --- /dev/null +++ b/.github/workflows/os-check.yml @@ -0,0 +1,82 @@ +name: Ubuntu-macOS 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: opt/wolfssl/ + key: wolfssh-common-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-curve25519 --enable-ed25519 --enable-wolfssh --enable-cryptonly --disable-examples --disable-crypttests + 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: + - 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: opt/wolfssl/ + key: wolfssh-common-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 }}/opt/wolfssl/lib" CPPFLAGS="-I${{ github.workspace }}/opt/wolfssl/include" + check: true