From 0597b4ebff7e870a78c122a1929546eb8c9c85fe Mon Sep 17 00:00:00 2001 From: yalixie Date: Sat, 29 Nov 2025 17:16:54 +0300 Subject: [PATCH 1/5] Initial headless ci tests --- arkoala-arkts/.gitlab-ci.yml | 9 +++++ incremental/harness/src/arkts/shared.ts | 3 ++ incremental/tools/panda/arkts/arktsc | 7 ++++ incremental/tools/panda/arkts/ui2abc | 12 ++++++ libarkts/.gitlab-ci.yml | 2 +- libarkts/BUILD.gn | 8 +++- libarkts/package.json | 2 +- tools/ohos-app/build.mjs | 10 +++++ tools/ohos-app/cli.mjs | 8 ++++ ui2abc/ets-tests/.gitlab-ci.yml | 50 +++++++++++++++++++++++++ ui2abc/ets-tests/package.json | 3 +- 11 files changed, 109 insertions(+), 5 deletions(-) diff --git a/arkoala-arkts/.gitlab-ci.yml b/arkoala-arkts/.gitlab-ci.yml index 4d1977aa0..dd1b606cf 100644 --- a/arkoala-arkts/.gitlab-ci.yml +++ b/arkoala-arkts/.gitlab-ci.yml @@ -133,7 +133,13 @@ build arkui.abc: - annotate all - download and prepare SDK - build interop + - generate arkts script: + - git status arkoala-arkts + - ls arkoala-arkts + - ls arkoala-arkts/arkui + - git status + - ls arkoala-arkts/arkui/generated - npm run build --prefix arkoala-arkts/arkui - ls -l arkoala-arkts/arkui/build/arkui.abc artifacts: @@ -192,6 +198,7 @@ build trivial.abc: - build ui2abc-all M3 - annotate all - download and prepare SDK + - generate arkts script: - npm run build --prefix arkoala-arkts/trivial/user - ls -l arkoala-arkts/trivial/user/build/user.abc @@ -209,6 +216,7 @@ build shopping.abc: - build ui2abc-all M3 - annotate all - download and prepare SDK + - generate arkts script: - npm run build --prefix arkoala-arkts/shopping/user - ls -l arkoala-arkts/shopping/user/build/user.abc @@ -226,6 +234,7 @@ build cats.abc: - build ui2abc-all M3 - annotate all - download and prepare SDK + - generate arkts script: - npm run build --prefix arkoala-arkts/cats/user - ls -l arkoala-arkts/cats/user/build/user.abc diff --git a/incremental/harness/src/arkts/shared.ts b/incremental/harness/src/arkts/shared.ts index 75b5a1817..f53606b9f 100644 --- a/incremental/harness/src/arkts/shared.ts +++ b/incremental/harness/src/arkts/shared.ts @@ -102,6 +102,9 @@ function logResults(array: ReadonlyArray) { logResult(map, FAILED_AS_EXPECTED_PREFIX) logResult(map, PASSED_UNEXPECTEDLY_PREFIX) logResult(map, FAILED_PREFIX) + // TBD: remove this log when the plain_text type result output is added + const result = (map.get(FAILED_PREFIX) ?? 0) > 0 ? "FAILED" : "PASSED" + console.log(`Test suite: ${result}`) } function logResult(map: Map, key: string) { diff --git a/incremental/tools/panda/arkts/arktsc b/incremental/tools/panda/arkts/arktsc index a0edacd77..8dfe5e94e 100755 --- a/incremental/tools/panda/arkts/arktsc +++ b/incremental/tools/panda/arkts/arktsc @@ -14,4 +14,11 @@ # limitations under the License. SCRIPT_DIR=`dirname "${BASH_SOURCE[0]}"` + +echo "--- --- ---" +echo "panda arktsc" +echo "USE_KOALA_LIBARKTS=$USE_KOALA_LIBARKTS" +echo "USE_KOALA_MEMO_PLUGIN=$USE_KOALA_MEMO_PLUGIN" +echo "USE_KOALA_UI_PLUGIN=$USE_KOALA_UI_PLUGIN" + node $SCRIPT_DIR/arktsc.js "$@" diff --git a/incremental/tools/panda/arkts/ui2abc b/incremental/tools/panda/arkts/ui2abc index 16d14bee4..f05f34a59 100755 --- a/incremental/tools/panda/arkts/ui2abc +++ b/incremental/tools/panda/arkts/ui2abc @@ -14,5 +14,17 @@ # limitations under the License. SCRIPT_DIR=`dirname "${BASH_SOURCE[0]}"` + +echo "--- --- ---" +echo "panda ui2abc" +echo "USE_KOALA_LIBARKTS=$USE_KOALA_LIBARKTS" +echo "USE_KOALA_MEMO_PLUGIN=$USE_KOALA_MEMO_PLUGIN" +echo "USE_KOALA_UI_PLUGIN=$USE_KOALA_UI_PLUGIN" +echo "CI_PROJECT_DIR=$CI_PROJECT_DIR" +echo "ETS_TEST_GOLDEN_PATH=$ETS_TEST_GOLDEN_PATH" +echo "ETS_TEST_OUT_PATH=$ETS_TEST_OUT_PATH" +pwd + + KOALA_WORKSPACE=${KOALA_WORKSPACE:=0} PANDA_SDK_PATH=${PANDA_SDK_PATH:=$SCRIPT_DIR/../node_modules/@panda/sdk} node -- $SCRIPT_DIR/../../../../libarkts/lib/es2panda.js "$@" diff --git a/libarkts/.gitlab-ci.yml b/libarkts/.gitlab-ci.yml index 4921eaf64..11f2429b6 100644 --- a/libarkts/.gitlab-ci.yml +++ b/libarkts/.gitlab-ci.yml @@ -109,7 +109,7 @@ build ninja (libarkts_sdk_copy): LIBARKTS_OUTPUT_DIR: $GN_DIR/gen/libarkts artifacts: paths: - - $LIBARKTS_OUTPUT_DIR/build/native/build/es2panda.node + - $LIBARKTS_OUTPUT_DIR/build/native/es2panda.node - $LIBARKTS_OUTPUT_DIR/lib/es2panda.js - $LIBARKTS_OUTPUT_DIR/lib/libarkts.js expire_in: 1 day \ No newline at end of file diff --git a/libarkts/BUILD.gn b/libarkts/BUILD.gn index 4fb28eadf..045662f68 100644 --- a/libarkts/BUILD.gn +++ b/libarkts/BUILD.gn @@ -102,7 +102,7 @@ shared_library("es2panda_lib") { if (!koala_mr.is_rri) { external_deps = [ "ets_frontend:ets2panda" ] } - output_dir = rebase_path(root_out_dir + "/libarkts") + # output_dir = rebase_path(root_out_dir + "/libarkts") sources = [ "${koala_mr.libarkts_path}/native/src/common.cc", @@ -271,11 +271,15 @@ action("es2panda_lib_copy") { # inputs = [ # "$from_path/libes2panda_lib.node" # ] + inputs = [ + "$from_path/libes2panda_lib.node" + ] outputs = [ "$target_out_dir/es2panda.node" ] args = [ - "--from-path", rebase_path(from_path + "/libarkts"), + "--from-path", rebase_path(from_path), + # "--from-path", rebase_path(from_path + "/libarkts"), "--to-path", rebase_path("."), "--current-os", current_os, "--current-cpu", current_cpu diff --git a/libarkts/package.json b/libarkts/package.json index 8641678f1..0deb9874a 100644 --- a/libarkts/package.json +++ b/libarkts/package.json @@ -24,7 +24,7 @@ ], "config": { "panda_sdk_path": "../incremental/tools/panda/node_modules/@panda/sdk", - "panda_sdk_version": "next" + "panda_sdk_version": "1.5.0-dev.50536" }, "dependencies": { "@koalaui/compat": "1.7.10+devel", diff --git a/tools/ohos-app/build.mjs b/tools/ohos-app/build.mjs index d1cd83031..e79a018df 100644 --- a/tools/ohos-app/build.mjs +++ b/tools/ohos-app/build.mjs @@ -23,6 +23,9 @@ const LZ_OHCONF = lazy(ohConfPath => ohProjectConf(ohConfPath)) const LZ_TOOLS = lazy(() => { const tools = platformPath(process.env["DEVECO_TOOLS_HOME"]) + console.log(`--- --- ---`) + console.log(`DEVECO_TOOLS_HOME: ${process.env["DEVECO_TOOLS_HOME"]}`) + console.log(``) if (!fs.existsSync(tools)) { console.error("> Error: DEVECO_TOOLS_HOME env variable is not set (find it here: /tools)") process.exit(1) @@ -32,6 +35,13 @@ const LZ_TOOLS = lazy(() => { export async function build(options) { process.env["DEVECO_SDK_HOME"] = platformPath(process.env["DEVECO_SDK_HOME"]) + console.log(`--- --- ---`) + console.log(`build.mjs env variables`) + console.log(`DEVECO_SDK_HOME: ${process.env["DEVECO_SDK_HOME"]}`) + console.log(`USE_KOALA_LIBARKTS: ${process.env["USE_KOALA_LIBARKTS"]}`) + console.log(`USE_KOALA_MEMO_PLUGIN: ${process.env["USE_KOALA_MEMO_PLUGIN"]}`) + console.log(`USE_KOALA_UI_PLUGIN: ${process.env["USE_KOALA_UI_PLUGIN"]}`) + console.log(``) LZ_OHCONF(options.ohConf) diff --git a/tools/ohos-app/cli.mjs b/tools/ohos-app/cli.mjs index 29c15b27c..11d1bbba1 100644 --- a/tools/ohos-app/cli.mjs +++ b/tools/ohos-app/cli.mjs @@ -23,11 +23,19 @@ import { ensureEnvVarSet, assertExists } from "../utils/system.mjs" const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) +console.log(`--- --- ---`) +console.log(`cli env variables`) + ensureEnvVarSet("DEVECO_TOOLS_HOME", path.join(__dirname, "../ohos-tools/clt1.2/command-line-tools"), true) assertExists(process.env.DEVECO_TOOLS_HOME) ensureEnvVarSet("DEVECO_SDK_HOME", path.join(__dirname, "../ohos-tools/ohos-sdk1.2/ohos-sdk"), true) assertExists(process.env.DEVECO_SDK_HOME) +ensureEnvVarSet("USE_KOALA_LIBARKTS", "1", true) +ensureEnvVarSet("USE_KOALA_MEMO_PLUGIN", "1", true) +ensureEnvVarSet("USE_KOALA_UI_PLUGIN", "1", true) + + const app = new Command("arkoala") app.command("oh-sign") diff --git a/ui2abc/ets-tests/.gitlab-ci.yml b/ui2abc/ets-tests/.gitlab-ci.yml index 7f17b361f..4e4b59da0 100644 --- a/ui2abc/ets-tests/.gitlab-ci.yml +++ b/ui2abc/ets-tests/.gitlab-ci.yml @@ -33,6 +33,56 @@ build ets-tests.abc (golden): - ui2abc/ets-tests/build/ets-tests.abc expire_in: 1 day +Headless tests: + stage: test + interruptible: true + extends: .linux-vm-shell-task + before_script: + - !reference [.setup, script] + script: + - cat incremental/tools/panda/node_modules/@panda/sdk/package.json + - npm i + - cd tools + - npm run sdk1.2:download + - npm run clt1.2:download + - cd .. + - npm i --prefix ui2abc + - npm run build:all -C ui2abc + # - npm run generate:arkts --prefix arkoala-arkts/arkui + # - git restore arkoala-arkts/framework/native/src/generated/ + - npm run all:ace_golden -C ui2abc/ets-tests + variables: + USE_KOALA_LIBARKTS: 1 + USE_KOALA_MEMO_PLUGIN: 1 + USE_KOALA_UI_PLUGIN: 1 + ETS_TEST_GOLDEN_PATH: $CI_PROJECT_DIR/ui2abc/ets-tests/ets/golden-tests/golden/ + ETS_TEST_OUT_PATH: $CI_PROJECT_DIR/ui2abc/ets-tests/build/golden/ + needs: + - download and prepare SDK + - install node modules (root) + - install panda sdk + - build arkoala.abc + - build harness.abc + - build ets-tests.abc (golden) + - build ArkoalaNative (linux, linux, node+panda) + - generate arkts + artifacts: + paths: + - ui2abc/ets-tests/build/golden + - ui2abc/ets-tests/testsuite_ace_golden_results.log + expire_in: 1 day + +Check Headless tests: + stage: test + interruptible: true + extends: .linux-vm-shell-task + before_script: + - !reference [.setup, script] + script: + - npm run check:ace_golden -C ui2abc/ets-tests + needs: + - Headless tests + run ets-tests M3 (linux, node): stage: test interruptible: true diff --git a/ui2abc/ets-tests/package.json b/ui2abc/ets-tests/package.json index 0002339ab..bda81df6c 100644 --- a/ui2abc/ets-tests/package.json +++ b/ui2abc/ets-tests/package.json @@ -35,7 +35,8 @@ "pack:tests": "cp ./build/ets-tests.abc ../../tools/ohos-tools/golden-prebuild/golden-binary/previewer/common/bin/module/arkts_framework", "pack:all":"npm run pack:arkoala && npm run pack:harness && npm run pack:tests && rm -f ../../tools/ohos-tools/golden-prebuild/golden-binary/previewer/common/bin/module/arkts_framework/rpc_taihe_abc.abc", "run:ace_golden": "npm run build:golden && npm run pack:all && npm run run:ace_launch", - "run:ace_launch": "bash ./tools/launch.sh", + "run:ace_launch": "bash ./tools/launch.sh | tee testsuite_ace_golden_results.log || true", + "check:ace_golden": "cat testsuite_ace_golden_results.log | grep -B 15 'Test suite' && cat testsuite_ace_golden_results.log | grep 'Test suite: PASSED'", "pack:get_from_ohos": "bash ./tools/get_from_ohos.sh", "prepare:arkui": "npm run prepare:sdk --prefix ../../arkoala-arkts/arkui", -- Gitee From 53aab5ed64ba3009ece90b7fc7b5725cc0ec29f8 Mon Sep 17 00:00:00 2001 From: yalixie Date: Thu, 11 Dec 2025 11:35:11 +0300 Subject: [PATCH 2/5] Remove some debug --- incremental/tools/panda/arkts/arktsc | 7 ------- tools/ohos-app/build.mjs | 10 ---------- tools/ohos-app/cli.mjs | 8 -------- 3 files changed, 25 deletions(-) diff --git a/incremental/tools/panda/arkts/arktsc b/incremental/tools/panda/arkts/arktsc index 8dfe5e94e..a0edacd77 100755 --- a/incremental/tools/panda/arkts/arktsc +++ b/incremental/tools/panda/arkts/arktsc @@ -14,11 +14,4 @@ # limitations under the License. SCRIPT_DIR=`dirname "${BASH_SOURCE[0]}"` - -echo "--- --- ---" -echo "panda arktsc" -echo "USE_KOALA_LIBARKTS=$USE_KOALA_LIBARKTS" -echo "USE_KOALA_MEMO_PLUGIN=$USE_KOALA_MEMO_PLUGIN" -echo "USE_KOALA_UI_PLUGIN=$USE_KOALA_UI_PLUGIN" - node $SCRIPT_DIR/arktsc.js "$@" diff --git a/tools/ohos-app/build.mjs b/tools/ohos-app/build.mjs index e79a018df..d1cd83031 100644 --- a/tools/ohos-app/build.mjs +++ b/tools/ohos-app/build.mjs @@ -23,9 +23,6 @@ const LZ_OHCONF = lazy(ohConfPath => ohProjectConf(ohConfPath)) const LZ_TOOLS = lazy(() => { const tools = platformPath(process.env["DEVECO_TOOLS_HOME"]) - console.log(`--- --- ---`) - console.log(`DEVECO_TOOLS_HOME: ${process.env["DEVECO_TOOLS_HOME"]}`) - console.log(``) if (!fs.existsSync(tools)) { console.error("> Error: DEVECO_TOOLS_HOME env variable is not set (find it here: /tools)") process.exit(1) @@ -35,13 +32,6 @@ const LZ_TOOLS = lazy(() => { export async function build(options) { process.env["DEVECO_SDK_HOME"] = platformPath(process.env["DEVECO_SDK_HOME"]) - console.log(`--- --- ---`) - console.log(`build.mjs env variables`) - console.log(`DEVECO_SDK_HOME: ${process.env["DEVECO_SDK_HOME"]}`) - console.log(`USE_KOALA_LIBARKTS: ${process.env["USE_KOALA_LIBARKTS"]}`) - console.log(`USE_KOALA_MEMO_PLUGIN: ${process.env["USE_KOALA_MEMO_PLUGIN"]}`) - console.log(`USE_KOALA_UI_PLUGIN: ${process.env["USE_KOALA_UI_PLUGIN"]}`) - console.log(``) LZ_OHCONF(options.ohConf) diff --git a/tools/ohos-app/cli.mjs b/tools/ohos-app/cli.mjs index 11d1bbba1..29c15b27c 100644 --- a/tools/ohos-app/cli.mjs +++ b/tools/ohos-app/cli.mjs @@ -23,19 +23,11 @@ import { ensureEnvVarSet, assertExists } from "../utils/system.mjs" const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) -console.log(`--- --- ---`) -console.log(`cli env variables`) - ensureEnvVarSet("DEVECO_TOOLS_HOME", path.join(__dirname, "../ohos-tools/clt1.2/command-line-tools"), true) assertExists(process.env.DEVECO_TOOLS_HOME) ensureEnvVarSet("DEVECO_SDK_HOME", path.join(__dirname, "../ohos-tools/ohos-sdk1.2/ohos-sdk"), true) assertExists(process.env.DEVECO_SDK_HOME) -ensureEnvVarSet("USE_KOALA_LIBARKTS", "1", true) -ensureEnvVarSet("USE_KOALA_MEMO_PLUGIN", "1", true) -ensureEnvVarSet("USE_KOALA_UI_PLUGIN", "1", true) - - const app = new Command("arkoala") app.command("oh-sign") -- Gitee From 134f5069348e22258b0769c226461bd88091f69d Mon Sep 17 00:00:00 2001 From: yalixie Date: Thu, 11 Dec 2025 11:38:01 +0300 Subject: [PATCH 3/5] Remove some debug --- arkoala-arkts/.gitlab-ci.yml | 5 ----- ui2abc/ets-tests/package.json | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/arkoala-arkts/.gitlab-ci.yml b/arkoala-arkts/.gitlab-ci.yml index dd1b606cf..2a8f64027 100644 --- a/arkoala-arkts/.gitlab-ci.yml +++ b/arkoala-arkts/.gitlab-ci.yml @@ -135,11 +135,6 @@ build arkui.abc: - build interop - generate arkts script: - - git status arkoala-arkts - - ls arkoala-arkts - - ls arkoala-arkts/arkui - - git status - - ls arkoala-arkts/arkui/generated - npm run build --prefix arkoala-arkts/arkui - ls -l arkoala-arkts/arkui/build/arkui.abc artifacts: diff --git a/ui2abc/ets-tests/package.json b/ui2abc/ets-tests/package.json index bda81df6c..7ff413a1b 100644 --- a/ui2abc/ets-tests/package.json +++ b/ui2abc/ets-tests/package.json @@ -36,7 +36,7 @@ "pack:all":"npm run pack:arkoala && npm run pack:harness && npm run pack:tests && rm -f ../../tools/ohos-tools/golden-prebuild/golden-binary/previewer/common/bin/module/arkts_framework/rpc_taihe_abc.abc", "run:ace_golden": "npm run build:golden && npm run pack:all && npm run run:ace_launch", "run:ace_launch": "bash ./tools/launch.sh | tee testsuite_ace_golden_results.log || true", - "check:ace_golden": "cat testsuite_ace_golden_results.log | grep -B 15 'Test suite' && cat testsuite_ace_golden_results.log | grep 'Test suite: PASSED'", + "check:ace_golden": "cat testsuite_ace_golden_results.log | grep -B 16 'Test suite' && cat testsuite_ace_golden_results.log | grep 'Test suite: PASSED'", "pack:get_from_ohos": "bash ./tools/get_from_ohos.sh", "prepare:arkui": "npm run prepare:sdk --prefix ../../arkoala-arkts/arkui", -- Gitee From 01bcd535df747f5437739944dbccb27b7b68b7de Mon Sep 17 00:00:00 2001 From: yalixie Date: Thu, 11 Dec 2025 11:52:07 +0300 Subject: [PATCH 4/5] Clean headless CI --- incremental/tools/panda/arkts/ui2abc | 12 ------------ ui2abc/ets-tests/.gitlab-ci.yml | 2 -- 2 files changed, 14 deletions(-) diff --git a/incremental/tools/panda/arkts/ui2abc b/incremental/tools/panda/arkts/ui2abc index f05f34a59..16d14bee4 100755 --- a/incremental/tools/panda/arkts/ui2abc +++ b/incremental/tools/panda/arkts/ui2abc @@ -14,17 +14,5 @@ # limitations under the License. SCRIPT_DIR=`dirname "${BASH_SOURCE[0]}"` - -echo "--- --- ---" -echo "panda ui2abc" -echo "USE_KOALA_LIBARKTS=$USE_KOALA_LIBARKTS" -echo "USE_KOALA_MEMO_PLUGIN=$USE_KOALA_MEMO_PLUGIN" -echo "USE_KOALA_UI_PLUGIN=$USE_KOALA_UI_PLUGIN" -echo "CI_PROJECT_DIR=$CI_PROJECT_DIR" -echo "ETS_TEST_GOLDEN_PATH=$ETS_TEST_GOLDEN_PATH" -echo "ETS_TEST_OUT_PATH=$ETS_TEST_OUT_PATH" -pwd - - KOALA_WORKSPACE=${KOALA_WORKSPACE:=0} PANDA_SDK_PATH=${PANDA_SDK_PATH:=$SCRIPT_DIR/../node_modules/@panda/sdk} node -- $SCRIPT_DIR/../../../../libarkts/lib/es2panda.js "$@" diff --git a/ui2abc/ets-tests/.gitlab-ci.yml b/ui2abc/ets-tests/.gitlab-ci.yml index 4e4b59da0..15f156515 100644 --- a/ui2abc/ets-tests/.gitlab-ci.yml +++ b/ui2abc/ets-tests/.gitlab-ci.yml @@ -40,7 +40,6 @@ Headless tests: before_script: - !reference [.setup, script] script: - - cat incremental/tools/panda/node_modules/@panda/sdk/package.json - npm i - cd tools - npm run sdk1.2:download @@ -48,7 +47,6 @@ Headless tests: - cd .. - npm i --prefix ui2abc - npm run build:all -C ui2abc - # - npm run generate:arkts --prefix arkoala-arkts/arkui # - git restore arkoala-arkts/framework/native/src/generated/ - npm run all:ace_golden -C ui2abc/ets-tests variables: -- Gitee From 24c310dd4d5524f627888c15062d4d1d61587362 Mon Sep 17 00:00:00 2001 From: yalixie Date: Thu, 11 Dec 2025 17:16:36 +0300 Subject: [PATCH 5/5] Ignore results log files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 64cf979d0..ed8aaeb14 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ tsconfig.tsbuildinfo incremental/benchmarks/memo-benchmark/ets koala_mirror ets1.2 +*results.log -- Gitee