Releases: Hyperfoil/qDup
0.8.2
0.8.1
qDup now requires jdk17+
- fix exit-code errors that can occur when a command spawns background sub-commands that write to the stream after the parent command exits.
- fix local support for newer kernels
- fix container start and stop logic
- fix support for passing state patterns into
ignore-exit-code
0.7.2
Fixes:
- fix an issue where nanny would end a
repeat-until
assuming it was stuck whensignal
already occurred - improve error logging with java exceptions
- add tests to ensure qDup.jar exit code > 0 when the run aborts or the yaml fails to parse
0.7.1
Fixes:
- fix issue where
ignore-exit-code
onsh
did not work
0.7.0 - Breaking changes
Breaking changes
qDup now defaults to abort on non-zero sh
exit codes, replacing the -x
option that previously enabled the abort on non-zero exit behavior. Use -ix
or --ignore-exit-code
to disable exit code checking and use the previous default behavior. You can also use the long form sh
definition to add ignore-exit-code: true
to commands that you know could have a non-zero exit code:
- sh:
command: rm server.log
ignore-exit-code: true
New Features:
The add-prompt
command now supports an is-shell
option. This boolean option tells qDup if the prompt still supports shell commands (e.g. echo
and pwd
) for checking the exit code and checking the current working directory. Previously, qDup would assume all custom prompts from add-prompt
did not support shell commands. The add-prompt
would normally indicate we were entering a command line (e.g. hyperfoil's cli.sh
) but it could also be used to connect to a container that does support a full shell (e.g. podman exec -it /bin/bash
)
The executable jar will now return 1 if the run aborts, the yaml is invalid, or the command line arguments are invalid.
Fixes:
- fix issue where
ctrlC
on a command would cause qDup to consider it a non-zero exit value - fix issue where a ssh connection would close and be re-opened twice during abort
0.6.21
Bug Fixes:
- aborting an already aborted run will no longer hang the run
- secrets are no longer included in exception messages from ssh connection failures
General Changes:
- add messages related to security issues preventing ssh connections
- add
upload
anddownload
override options forhost
definition
0.6.20
Bug Fixes:
- improve shutdown from external signals to complete cleanup scripts
- prevent empty secret values
- prevent partial secret exposure when secrets have similar values
- improve documentation links
0.6.18 local and container connections
New Experimental Features
- local host connection
qDup can now connect to a local bash shell to run commands without requiring a local ssh service. This can be accessed with the reservedLOCAL
host name
hosts:
- LOCAL
- container connections
- qDup can connect to or start a container using podman on either the local host or a remote host using an ssh connection to the remote host. The
host
can be defined with the container name, id, or an image url.
hosts:
- existingContainerById: 101abd31c437
- existingContainerByName: hungry_hertz
- newContainerFromImage: registry.access.redhat.com/ubi8/ubi:latest
- newContainerOnServer: username@server//registry.access.redhat.com/ubi8/ubi:latest
The above features are considered experimental because we may change how they are accessed. the LOCAL
reserved host name and //
separator between image url and ssh credentials may change in a subsequent release.
0.6.17
New Features:
- Added command line support to load scripts from http or https urls.
java -jar qdup.jar https://localhost:8888/script.yaml
- add script reference stack to error messages
- add how to examples for common use cases
- add nanny check for bash more input prompt (
>
)
0.6.14
New Features
add state entry ENV.ABORTED
as true
when abort
executes in a script. This state variable is available to any cleanup-scripts
so the scripts can adjust behaviors.
cleanup-lab:
- read-state: ${{ENV.ABORTED}}
then:
- sh: rm -rf /tmp/foo
else:
- queue-download: /tmp/foo/result.json #exists if the run did not abort
fix broken check-exit-code
support to correctly abort runs when exit code checking is enabled
add support for http(s) urls in the command line arguments for yaml files.
java -jar qdup-uber.jar https:localhost/qdup.yaml
add /breakpoint
support for json server to remotely debug scripts without a connected terminal. This is an experimental feature that will eventually support remote debugging of scripts running on a different machine.