github: Run charon-tkm tests
Use a Debian-based Docker container to run the unit tests for charon-tkm, once without and once with TKM running. The container can also be used locally to run the tests (see comments in the Dockerfile).
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
name: TKM
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
env:
|
||||
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
||||
CCACHE_CONTAINER: /root/.ccache
|
||||
CCACHE_COMPILERCHECK: content
|
||||
CCACHE_COMPRESS: true
|
||||
CCACHE_MAXSIZE: 200M
|
||||
|
||||
jobs:
|
||||
pre-check:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
should_skip: ${{ steps.skip-check.outputs.should_skip }}
|
||||
steps:
|
||||
- id: skip-check
|
||||
uses: fkirc/skip-duplicate-actions@master
|
||||
with:
|
||||
concurrent_skipping: 'same_content'
|
||||
|
||||
tkm:
|
||||
needs: pre-check
|
||||
if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TEST: tkm
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ env.CCACHE_DIR }}
|
||||
key: ccache-tkm-${{ github.sha }}
|
||||
restore-keys: |
|
||||
ccache-tkm-
|
||||
- name: Build Docker Image
|
||||
run: docker build -t strongswan-tkm -f testing/tkm/Dockerfile testing
|
||||
- name: Run Tests in Container
|
||||
uses: addnab/docker-run-action@v3
|
||||
with:
|
||||
image: strongswan-tkm
|
||||
shell: bash
|
||||
options: |
|
||||
--cap-add net_admin
|
||||
-v ${{ github.workspace }}:/strongswan
|
||||
-v ${{ env.CCACHE_DIR }}:${{ env.CCACHE_CONTAINER }}
|
||||
-e CCACHE_DIR=${{ env.CCACHE_CONTAINER }}
|
||||
-e CCACHE_COMPILERCHECK
|
||||
-e CCACHE_COMPRESS
|
||||
-e CCACHE_MAXSIZE
|
||||
run: |
|
||||
ccache -z
|
||||
autoreconf -i /strongswan || exit 1
|
||||
CFLAGS="-g -O2 -Wall -Wno-format -Wno-format-security -Wno-pointer-sign -Werror" \
|
||||
/strongswan/configure --disable-defaults --enable-silent-rules \
|
||||
--enable-ikev2 --enable-kernel-netlink --enable-openssl \
|
||||
--enable-pem --enable-socket-default --enable-swanctl \
|
||||
--enable-tkm || exit 1
|
||||
# run tests without TKM first
|
||||
make -j check TESTS_RUNNERS=tkm || exit 1
|
||||
|
||||
# generate TKM config
|
||||
/usr/local/share/tkm/generate-config.sh
|
||||
|
||||
# start TKM in the background
|
||||
tkm_keymanager -c tkm.conf -k key.der -r ca.der:1 >/tmp/tkm.log &
|
||||
# run the tests against TKM and get TKM log
|
||||
make -j check TESTS_RUNNERS=tkm TESTS_TKM=1 || exit 1
|
||||
cat /tmp/tkm.log
|
||||
ccache -s
|
||||
Reference in New Issue
Block a user