Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions .github/workflows/libcryptsetup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Libcryptsetup Tests

# START OF COMMON SECTION
on:
push:
branches: [ 'master', 'main', 'release/**' ]
pull_request:
branches: [ '*' ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# END OF COMMON SECTION

jobs:
build_wolfprovider:
uses: ./.github/workflows/build-wolfprovider.yml
with:
wolfssl_ref: ${{ matrix.wolfssl_ref }}
openssl_ref: ${{ matrix.openssl_ref }}
strategy:
matrix:
wolfssl_ref: ['v5.8.0-stable', 'master']
openssl_ref: ['openssl-3.5.0']

test_cryptsetup:
runs-on: ubuntu-22.04
needs: build_wolfprovider
# This should be a safe limit for the tests to run.
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
cryptsetup_ref: ['v2.6.1']
wolfssl_ref: ['v5.8.0-stable', 'master']
openssl_ref: ['openssl-3.5.0']
force_fail: ['WOLFPROV_FORCE_FAIL=1', '']

steps:
- name: Checkout wolfProvider
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Retrieving wolfSSL/wolfProvider from cache
uses: actions/cache/restore@v4
id: wolfprov-cache
with:
path: |
wolfssl-install
wolfprov-install
openssl-install/lib64
openssl-install/include
openssl-install/bin

key: wolfprov-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}-${{ github.sha }}
fail-on-cache-miss: true

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential autoconf asciidoctor gettext autopoint libtool \
pkg-config uuid-dev libdevmapper-dev libpopt-dev libjson-c-dev \
libargon2-dev

- name: Checkout cryptsetup
uses: actions/checkout@v4
with:
repository: mbroz/cryptsetup
path: cryptsetup
ref: ${{ matrix.cryptsetup_ref }}

- name: Checkout OSP
uses: actions/checkout@v4
with:
repository: wolfssl/osp
path: osp
fetch-depth: 1
- run: |
cd cryptsetup
patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/libcryptsetup/libcryptsetup-${{ matrix.cryptsetup_ref }}-wolfprov.patch

- name: Build cryptsetup
working-directory: cryptsetup
run: |
./autogen.sh
./configure --enable-static \
--with-crypto-backend=openssl \
--disable-ssh-token \
--with-openssl-includes=$GITHUB_WORKSPACE/openssl-install/include \
--with-openssl-libs=$GITHUB_WORKSPACE/openssl-install/lib64
make -j$(nproc)

- name: Run cryptsetup tests
working-directory: cryptsetup
run: |
source $GITHUB_WORKSPACE/scripts/env-setup
export ${{ matrix.force_fail }}

make check 2>&1 | tee cryptsetup-test.log
TEST_RESULT=$(grep -q "All 10 tests passed" cryptsetup-test.log && echo "0" || echo "1")
$GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} cryptsetup
Loading