mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-05 00:00:45 -04:00
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).
72 lines
2.3 KiB
YAML
72 lines
2.3 KiB
YAML
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
|