Releases: Hyperfoil/qDup
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.
qDup-0.6.13
New Features from 0.6.7
Strict yaml validation will fail to parse yaml if there are extra keys. This helps catch indentation errors that put keys in the wrong location on the yaml tree.
Add else
to js
command for when the command returns a falsey
javascript value
- js: (input,state)=>false
then:
- sh: shouldNotHappen.sh
else:
- sh: dosomething.sh
add support for a signal
in the timer
on a wait-for
. This lets scripts take an action if a signal
is not reached in a specified amount of time
- wait-for: never
timer:
10m:
- signal: notyet
update sshd to 2.8.0 to address issues with Fedora 35 and newer ssh encryption negotiation
add support to run a script
asynchronously (in a new ssh connection) when observing a command
- sh: tail -f server.log
watch:
- regex: error
then:
- script:
name: debugServer
async: true
add /regex
/js
and /parse
to the session debug endpoints on the debug server (localhost:31337
)
add -Y
command line argument to combine all the input yaml into a single, unified yaml output. This is similar to -T
in that it will first validate the yaml and return errors if necessary
added a new top level globals
object to the yaml syntax that currently support javascript
for defining helper functions that are available in both patterns ${{jsFunction()}}
and js
execution
globals:
javascript: |
function jsFunction(val){
return val*5
}
```
`set-state` now returns the value of the state entry as the input to the subsequent commands
```yaml
- set-state: RUN.foo bar
then:
- sh: echo ${{foo}} #will output bar
fix bug where runs were not terminating when the only running scripts were in a wait-for
. Runs should terminate if the only running scripts are wait-for
and there is not a timer
on the wait-for
. This allows scripts to start in every run and only execute of a condition is met.
0.6.7
New features
Add support for patterns in role hosts. Patterns will use values from states
or the command line (-S key=value
). The resolved value can be a host alias to uses a host already defined in a hosts
section or it can be a Host definition of the form username@hostname:port
to create a new host definition.
hosts:
server: me@testserver
roles:
example1:
hosts: ${{from_command_line}}
...
example2:
hosts:
- ${{primaryServer}}
- ${{additionalServer}}
...
states:
primaryServer: server
additionalServer: me@otherserver
The hosts
entry is evaluated when the run starts so changes to from_command_line
or additonalServer
in a script will not change the hosts
for a role.
Add ^skip
and ^next
to the json server api for recovering active scripts.
Bug fixes
fix dashes in regex capture names. regex: (?<name-with-dash>>*)
0.6.6 -
use defaults when run as java -jar qDup-uber.jar file.yaml
increase idle timeout to 7 days for long running commands without console output
fix NPE when queue-download
files do not exist
improve yaml error messages for malformed yaml
0.6.5
use sane defaults to run java -jar qDup-uber.jar file.yaml
without additional arguments
update sshd-core to support ssh to Fedora 33 and newer
abort run if upload or download fail
abort run if xml operation fails
0.6.3
Includes bug fixes and feature enhancements:
- fix ConcurrentModificationException when sh command ends while processing a large buffer write
- add support for ^X (ctrl-X) to the
POST
sessionId endpoint to send ctrl sequences to the remote ssh session - add session tracing for raw buffer and buffer without escape sequences using the --trace pattern on the session name.
- add
max-size
option forqueue-download
anddownload
to avoid downloading large files for error cases
- queue-download: server.log
max-size: 100m
- fix input and output from
script
and associatedthen
- fix hang on error when
setup-scripts
fail to connect - add support for multiple
then
to isolate command output
- sh: doSomething.sh
then:
- sh: use_doSomething_output.sh
then:
- sh: also_use_doSomething_output.sh
- add
auto-convert
toset-state
andregex
to disable automatic type conversion
- sh: date +%s
- set-state: RUN.TS
auto-convert: false #treat the timestamp as a string not a number
- improve documentation and examples
0.6.2
0.6.2
- Fixes issues with
watch
not receiving the correct lines when multiple lines occur in the same ssh buffer. - Adds
raw
andefs
trace for each ssh session when tracing. - Adds
--traceName
to specify a state pattern for the trace file id.
qDup v0.5
release-0.5 [maven-release-plugin] copy for tag release-0.5
qDup v0.4.1
release-0.4.1 [maven-release-plugin] copy for tag release-0.4.1