The action causes errors because it is not compatible to the Docker version used in the runner images. Unfortunately, it doesn't seem maintained anymore. The action is simple enough, though, so instead of switching to a fork, we just use "docker run" directly.
77 lines
2.6 KiB
YAML
77 lines
2.6 KiB
YAML
name: TKM
|
|
|
|
on: [push, pull_request]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
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_newer'
|
|
|
|
tkm:
|
|
needs: pre-check
|
|
if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
TEST: tkm
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/cache@v4
|
|
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
|
|
run: |
|
|
docker run \
|
|
--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 \
|
|
strongswan-tkm \
|
|
bash -c "ccache -z; \
|
|
echo '### build charon-tkm'; \
|
|
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-pem --enable-pkcs1 \
|
|
--enable-random --enable-sha1 --enable-socket-default --enable-swanctl \
|
|
--enable-tkm --enable-x509 || exit 1; \
|
|
make -j || exit 1; \
|
|
\
|
|
echo '### run tests without TKM first'; \
|
|
make -j check TESTS_RUNNERS=tkm || exit 1; \
|
|
\
|
|
echo '### generate TKM config'; \
|
|
/usr/local/share/tkm/generate-config.sh; \
|
|
echo '### start TKM in the background'; \
|
|
tkm_keymanager -c tkm.conf -k key.der -r ca.der:1 >/tmp/tkm.log & \
|
|
\
|
|
echo '### 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; \
|
|
"
|