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@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 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-pem --enable-pkcs1 \ --enable-random --enable-sha1 --enable-socket-default --enable-swanctl \ --enable-tkm --enable-x509 || 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