On Mon, May 12, 2025 at 9:26 PM Michael Peddie michael.peddie@gallagher.com wrote:
Thank you for the correction, a stupid mistake on my part. The job now validates and runs. This is the gist of my job as it is now (with the headers download): device_type: mydut job_name: interactive test
context: lava_test_results_dir: /tmp/lava-%s
timeouts: job: minutes: 25 action: minutes: 20 connection: minutes: 5 priority: medium visibility: public
actions:
deploy: timeout: minutes: 5 to: download images: file: headers: Authentication: TOKEN url: https://artifactory.com/artifactory/path/to/myfile.tar.gz
boot: timeout: minutes: 5 method: minimal prompts: ["# $"] auto_login: login_prompt: "login:" username: root
test: timeout: minutes: 10 interactive:
- name: smoke-test prompts: ["# $"] echo: discard script:
- name: set-vars command: export SCRIPT="file.tar.gz" tests="smoke"
- name: extract-wget command: "cd / ; tar -C /tmp/ -xzf /data/wget.tar.gz ; if [ -e /tmp/wget/libuuid.so.1 ]; then export LD_PRELOAD=/tmp/wget/libuuid.so.1; fi ; cd /tmp/"
- command: echo '/tmp/wget/wget -P /tmp/ -nv --no-check-certificate --user=username --password=${ART_PASS} "$1"' > /tmp/download.sh
- command: chmod +x /tmp/download.sh
- command: /tmp/download.sh "https://artifactory/artifactory/path/to/some/%24SCRIPT" ; rm /tmp/download.sh name: download-scripts
- command: tar -C /tmp/ -xzf /tmp/"$SCRIPT" ; chmod +x /tmp/scripts/*.sh ; chmod +x /tmp/scripts/*/*.sh ; cd /tmp/scripts/ name: extract-scripts
- command: cat "$tests".sh | tr -d '\015' > temp.sh ; chmod +x temp.sh ; rm "$tests".sh ; mv temp.sh "$tests".sh
- command: for dir in */; do for script in "$dir"*.sh; do cat "$script" | tr -d '\015' > temp.sh ; chmod +x temp.sh ; rm "$script" ; mv temp.sh "$script"; done; done
- name: run-tests command: . /tmp/scripts/"$tests".sh -f bar -b foo || echo "$?" failures:
- message: "[uU]sage:" exception: TestError error: "Incorrect script inputs"
- message: "^1$" exception: TestError error: "A test has failed"
- message: "[fF]ailed" exception: TestError error: "An error occurred during execution"
I don't think transfer_overlay would work to move the downloaded file over from the worker (since no overlay is created), would I be able to assume I can access downloaded files similarly to during that process? Or is there another method to move them over? Or would a deploy method change instead be recommended?
This was my first question when I saw your job. Why are you doing it the hard way? :) You're basically reimplementing the transfer_overlay. Does your file only contain scripts? If yes, maybe you could host it in a git repository. This way you can use transfer_overlay and simplify your job. If you need some big binaries the story is not so simple. I'll try to figure out how to add an archive to overlay. It should be possible, but I don't have a ready example. From your earlier questions I remember that you can't modify the rootfs on the DUT. This would be probably the easiest, but I understand there are use cases that don't allow it.
Best Regards, Milosz