Skip to content

Examples

Complete Flow

A build/test/plan that was submitted by tuxsuite command can output a JSON file capturing the details of the submitted action. When combined with the --no-wait option, the submission will return immediately and the captured JSON output can be used to fetch the results of the particular action, which is illustrated in the following examples.

Build

This will submit a build with --no-wait and capture the build artifacts in a JSON file.

tuxsuite build \
    --git-repo https://github.com/torvalds/linux.git \
    --git-ref master --target-arch arm64 --toolchain gcc-10 \
    --kconfig tinyconfig \
    --no-wait \
    --json-out /tmp/build_status.json

The above build will get submitted and returns instantaneously capturing the build artifacts in /tmp/build_status.json whose output looks like the following,

{
    "build_name": "",
    "client_token": "7a7a4058-2014-403c-bbef-bcb12c898894",
    "download_url": "https://builds.tuxbuild.com/1t2X8ddYei4bhGlsscUJv46woGi/",
    "environment": {},
    "errors_count": 0,
    "finished_time": null,
    "git_ref": "master",
    "git_repo": "https://github.com/torvalds/linux.git",
    "git_sha": "ad9f25d338605d26acedcaf3ba5fab5ca26f1c10",
    "kconfig": [
        "tinyconfig"
    ],
    "kernel_image": "",
    "make_variables": {},
    "plan": null,
    "project": "tuxsuite/senthil",
    "provisioning_time": "2021-05-25T18:39:59.723270",
    "result": "unknown",
    "running_time": null,
    "state": "provisioning",
    "target_arch": "arm64",
    "targets": [],
    "toolchain": "gcc-10",
    "uid": "1t2X8ddYei4bhGlsscUJv46woGi",
    "user": "senthil.kumaran@linaro.org",
    "waited_by": [],
    "warnings_count": 0
}

/tmp/build_status.json JSON file generated above can be used to fetch the result of the build at a later point of time, using the results sub-command of tuxsuite CLI.

tuxsuite results \
    --from-json /tmp/build_status.json \
    --json-out /tmp/build_result.json

The above command can capture the results of the build, once again into a JSON file using the --json-out option. The captured JSON is shown below, which will have the build result with details after the completion of the build, if invoked after sometime when the build completes.

{
    "build_name": "",
    "build_status": "pass",
    "client_token": "7a7a4058-2014-403c-bbef-bcb12c898894",
    "download_url": "https://builds.tuxbuild.com/1t2X8ddYei4bhGlsscUJv46woGi/",
    "duration": 113,
    "environment": {},
    "errors_count": 0,
    "finished_time": "2021-05-25T18:43:57.519607",
    "git_describe": "v5.13-rc3-43-gad9f25d33860",
    "git_ref": "master",
    "git_repo": "https://github.com/torvalds/linux.git",
    "git_sha": "ad9f25d338605d26acedcaf3ba5fab5ca26f1c10",
    "git_short_log": "ad9f25d33860 (\"Merge tag 'netfs-lib-fixes-20200525' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs\")",
    "kconfig": [
        "tinyconfig"
    ],
    "kernel_image": "",
    "kernel_image_name": "Image.gz",
    "kernel_version": "5.13.0-rc3",
    "make_variables": {},
    "plan": null,
    "project": "tuxsuite/senthil",
    "provisioning_time": "2021-05-25T18:39:59.723270",
    "result": "pass",
    "running_time": "2021-05-25T18:42:06.263535",
    "sccache_hits": 662,
    "sccache_misses": 1,
    "state": "finished",
    "status_message": "build completed",
    "target_arch": "arm64",
    "targets": [],
    "toolchain": "gcc-10",
    "tuxbuild_status": "complete",
    "uid": "1t2X8ddYei4bhGlsscUJv46woGi",
    "user": "senthil.kumaran@linaro.org",
    "waited_by": [],
    "warnings_count": 0
}

Test

This will submit a test with --no-wait and capture the test artifacts in a JSON file.

tuxsuite test \
    --device qemu-arm \
    --kernel https://builds.dev.tuxbuild.com/1sAr4I924g9JSt1bIVKs3kz1wKS/zImage \
    --no-wait \
    --json-out /tmp/test_status.json

The above test will get submitted and returns instantaneously capturing the test artifacts in /tmp/test_status.json whose output looks like the following,

{
    "boot_args": null,
    "device": "qemu-armv7",
    "finished_time": null,
    "kernel": "https://builds.dev.tuxbuild.com/1sAr4I924g9JSt1bIVKs3kz1wKS/zImage",
    "modules": null,
    "plan": null,
    "project": "tuxsuite/senthil",
    "provisioning_time": "2021-05-25T18:59:14.038481",
    "result": "unknown",
    "results": {},
    "running_time": null,
    "state": "provisioning",
    "tests": [
        "boot"
    ],
    "uid": "1t2ZTkuRNcNx0xEg1NlI9ScxYQA",
    "waiting_for": null
}

/tmp/test_status.json JSON file generated above can be used to fetch the result of the test at a later point of time, using the results sub-command of tuxsuite CLI.

tuxsuite results \
    --from-json /tmp/test_status.json \
    --json-out /tmp/test_result.json

The above command can capture the results of the test, once again into a JSON file using the --json-out option. The captured JSON is shown below, which will have the test result with details after the completion of the test, if invoked after sometime when the test completes.

{
    "boot_args": null,
    "device": "qemu-arm64",
    "duration": 211,
    "finished_time": "2021-05-03T15:31:01.898530",
    "kernel": "https://builds.stylesen.dev.tuxbuild.com/1s1wqDrm5cHNac7Ik9Q6h9ixBIa/Image.gz",
    "modules": null,
    "plan": null,
    "project": "tuxsuite/senthil",
    "provisioning_time": "2021-05-03T15:24:26.069241",
    "result": "fail",
    "results": {
        "boot": "fail"
    },
    "running_time": "2021-05-03T15:27:32.223893",
    "state": "finished",
    "tests": [
        "boot"
    ],
    "uid": "1s20dnMkE94e3BHW8pEbOWuyL6z",
    "waiting_for": null
}

Plan

This will submit a plan with --no-wait and capture the plan artifacts in a JSON file.

tuxsuite plan \
    --git-repo https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git \
    --git-ref master examples/planv1.yaml \
    --no-wait

The above plan will get submitted and returns instantaneously due to the usage of --no-wait option. The output will have the submitted plan's UID which can be used to fetch the results later.

tuxsuite results --plan 1t2aIHdTp3VllMHawJ9lt9myUge

The --json-out option can be used to capture the plan's result in JSON format, which will have the plan results with details after the completion of the plan, if invoked after sometime when the plan completes.

tuxsuite results --plan 1t2aIHdTp3VllMHawJ9lt9myUge \
    --json-out /tmp/plan_result.json