Skip to content

Releases: Hyperfoil/qDup

0.6.17

08 Feb 01:05
Compare
Choose a tag to compare

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

06 Sep 20:17
Compare
Choose a tag to compare

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

20 Apr 18:26
Compare
Choose a tag to compare

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

13 Oct 18:22
Compare
Choose a tag to compare

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 -

25 Jun 19:43
Compare
Choose a tag to compare

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

12 Jun 02:25
Compare
Choose a tag to compare

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

15 Apr 19:52
Compare
Choose a tag to compare

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 for queue-download and download to avoid downloading large files for error cases
- queue-download: server.log
  max-size: 100m
  • fix input and output from script and associated then
  • 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 to set-state and regex 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

30 Mar 18:40
Compare
Choose a tag to compare

0.6.2

  • Fixes issues with watch not receiving the correct lines when multiple lines occur in the same ssh buffer.
  • Adds raw and efs trace for each ssh session when tracing.
  • Adds --traceName to specify a state pattern for the trace file id.

qDup v0.5

08 Jun 18:00
Compare
Choose a tag to compare
release-0.5

[maven-release-plugin] copy for tag release-0.5

qDup v0.4.1

19 Apr 09:28
Compare
Choose a tag to compare
release-0.4.1

[maven-release-plugin] copy for tag release-0.4.1