From 30de60936c32ed7fb0acabd768025f65db673687 Mon Sep 17 00:00:00 2001 From: Coiby Xu Date: Mon, 6 Apr 2026 10:18:20 +0800 Subject: [PATCH 1/4] ci: Use GitHub Action and testing farm to run tests Pull request workflows from forked repositories don't have access to repository secrets by default. To address this issue, 1) create a dedicated environment and 2) use pull_request_target so only approved PR can run the workflow. For pull_request_target, it only uses the main branch's Github Action workflows. --- .github/workflows/integration-tests.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/integration-tests.yml diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml new file mode 100644 index 0000000..ae97197 --- /dev/null +++ b/.github/workflows/integration-tests.yml @@ -0,0 +1,20 @@ +name: KAB integration tests + +on: + # integration tests need secrets from environment for forked progject + pull_request_target: + +jobs: + integration-tests: + runs-on: ubuntu-latest + environment: testing_farm + steps: + - name: Schedule tests on Testing Farm + uses: sclorg/testing-farm-as-github-action@v4 + with: + api_key: ${{ secrets.TF_API_KEY }} + compose: Fedora-43 + # Avoid using xen guests as some machines don't support kdump + tmt_hardware: '{"virtualization.hypervisor": "!= xen"}' + pipeline_settings: '{"type": "tmt-multihost"}' + tmt_context: 'trigger=GitHub_Action;' From 7fc9b176641b2938eb3ae5777ceeede1a096200f Mon Sep 17 00:00:00 2001 From: Coiby Xu Date: Mon, 6 Apr 2026 15:03:17 +0800 Subject: [PATCH 2/4] tests: Allow test plans to be run by testing farm Testing harm reject hardcoded provision method 'virtual.testcloud', Suitable provision method 'virtual.testcloud' disallowed by configuration And adjust Makefile so the tests will use virtual.testcloud provision method. --- Makefile | 3 ++- plans/criu.fmf | 9 --------- plans/main.fmf | 4 ++++ plans/ssh.fmf | 9 --------- plans/ssh_auto.fmf | 9 --------- plans/ssh_src.fmf | 5 ----- 6 files changed, 6 insertions(+), 33 deletions(-) diff --git a/Makefile b/Makefile index 977e1ea..5f6d834 100644 --- a/Makefile +++ b/Makefile @@ -40,9 +40,10 @@ unit-tests: shellspec TMT_CONTEXT_ARG := $(shell test -f KAB_TMT_CONTEXT && echo "-c @KAB_TMT_CONTEXT") +TMT_PROVISION_VIRTUAL_ARG := $(shell test -f KAB_TMT_CONTEXT || echo "provision -h virtual -c system") integration-tests: - tmt $(TMT_CONTEXT_ARG) run -a + tmt $(TMT_CONTEXT_ARG) run $(TMT_PROVISION_VIRTUAL_ARG) tests: format-check static-analysis unit-tests integration-tests diff --git a/plans/criu.fmf b/plans/criu.fmf index 8eb52f5..da60d5d 100644 --- a/plans/criu.fmf +++ b/plans/criu.fmf @@ -4,15 +4,6 @@ discover: test: - /tests/kab_criu -provision: - - name: client - how: virtual - connection: system - - - name: server - how: virtual - connection: system - adjust: provision: - name: client diff --git a/plans/main.fmf b/plans/main.fmf index 4e7f8cc..cdf3c00 100644 --- a/plans/main.fmf +++ b/plans/main.fmf @@ -1,2 +1,6 @@ +provision: + - name: client + - name: server + execute: how: tmt diff --git a/plans/ssh.fmf b/plans/ssh.fmf index 261e596..d9c7436 100644 --- a/plans/ssh.fmf +++ b/plans/ssh.fmf @@ -4,15 +4,6 @@ discover: test: - /tests/kab_ssh$ -provision: - - name: client - how: virtual - connection: system - - - name: server - how: virtual - connection: system - adjust: provision: - name: client diff --git a/plans/ssh_auto.fmf b/plans/ssh_auto.fmf index 4b8946a..2e61fae 100644 --- a/plans/ssh_auto.fmf +++ b/plans/ssh_auto.fmf @@ -4,15 +4,6 @@ discover: test: - /tests/kab_ssh_auto -provision: - - name: client - how: virtual - connection: system - - - name: server - how: virtual - connection: system - adjust: provision: - name: client diff --git a/plans/ssh_src.fmf b/plans/ssh_src.fmf index d5ddcb0..e497611 100644 --- a/plans/ssh_src.fmf +++ b/plans/ssh_src.fmf @@ -6,13 +6,8 @@ discover: provision: - name: client - how: virtual - connection: system user: test - - name: server - how: virtual - connection: system adjust: - when: KAB_LOCAL_GIT_REPO is defined From bc4bf808e04818608ec597bf14c2eb34b3b64270 Mon Sep 17 00:00:00 2001 From: Coiby Xu Date: Mon, 6 Apr 2026 15:50:11 +0800 Subject: [PATCH 3/4] Don't run ssh_src test as user test when it's triggered by Github Action Currently, testing farm doesn't support running a test as specified user. --- plans/ssh_src.fmf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plans/ssh_src.fmf b/plans/ssh_src.fmf index e497611..1294b44 100644 --- a/plans/ssh_src.fmf +++ b/plans/ssh_src.fmf @@ -27,3 +27,10 @@ adjust: - name: server how: connect guest: $@KAB_SERVER_IP_SRC + + + # Currently, testing farm doesn't support run the test with specified user name + - when: trigger == GitHub_Action + provision: + - name: client + - name: server From 685f328bead440b28ed2ba234c63eb390f7dac78 Mon Sep 17 00:00:00 2001 From: Coiby Xu Date: Thu, 16 Apr 2026 19:33:13 +0800 Subject: [PATCH 4/4] tests: Set up ssh key --- plans/criu.fmf | 4 ++++ tests/kab_criu/test.sh | 3 +-- tests/ssh_keys/id_ecdsa | 9 +++++++++ tests/ssh_keys/id_ecdsa.pub | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 tests/ssh_keys/id_ecdsa create mode 100644 tests/ssh_keys/id_ecdsa.pub diff --git a/plans/criu.fmf b/plans/criu.fmf index da60d5d..9608c29 100644 --- a/plans/criu.fmf +++ b/plans/criu.fmf @@ -1,4 +1,8 @@ discover: + - name: set up ssh access from client to server + how: fmf + test: + - /tests/setup_ssh_client_to_server - name: kab on a single machine (CRIU) how: fmf test: diff --git a/tests/kab_criu/test.sh b/tests/kab_criu/test.sh index c1df445..fb9f73c 100755 --- a/tests/kab_criu/test.sh +++ b/tests/kab_criu/test.sh @@ -17,8 +17,7 @@ fi TARGET_HOST="${SERVERS}" -TMT_TEST_PLAN_ROOT=${TMT_PLAN_DATA%data} -SERVER_SSH_KEY=${TMT_TEST_PLAN_ROOT}/provision/server/id_ecdsa +SERVER_SSH_KEY=$TMT_TREE/tests/ssh_keys/id_ecdsa # ssh_cmd wrapper to handle local and remote execution ssh_cmd() { diff --git a/tests/ssh_keys/id_ecdsa b/tests/ssh_keys/id_ecdsa new file mode 100644 index 0000000..229421c --- /dev/null +++ b/tests/ssh_keys/id_ecdsa @@ -0,0 +1,9 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS +1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQRIcX15EDEx6jwKDQGvwm5Ms0lKg78T +wkZGFU21ZJwpoiDB+XlnPDSjSer9nYAAAz+Hd23doa4s/WPPwRzPbqNbAAAAqCtsZ78rbG +e/AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEhxfXkQMTHqPAoN +Aa/CbkyzSUqDvxPCRkYVTbVknCmiIMH5eWc8NKNJ6v2dgAADP4d3bd2hriz9Y8/BHM9uo1 +sAAAAhAMGekvRvaBp80aCmV262GidSEyD1KSjZsOIE9+lpY/mYAAAADXRlc3RAa2FiLXRl +c3QBAg== +-----END OPENSSH PRIVATE KEY----- diff --git a/tests/ssh_keys/id_ecdsa.pub b/tests/ssh_keys/id_ecdsa.pub new file mode 100644 index 0000000..c283c88 --- /dev/null +++ b/tests/ssh_keys/id_ecdsa.pub @@ -0,0 +1 @@ +ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEhxfXkQMTHqPAoNAa/CbkyzSUqDvxPCRkYVTbVknCmiIMH5eWc8NKNJ6v2dgAADP4d3bd2hriz9Y8/BHM9uo1s= test@kab-test