Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternative control commands: bash, Makefile #63

Open
nuest opened this issue Mar 5, 2018 · 0 comments
Open

Alternative control commands: bash, Makefile #63

nuest opened this issue Mar 5, 2018 · 0 comments

Comments

@nuest
Copy link
Member

nuest commented Mar 5, 2018

Currently the ERC is focused on Docker and implementations must construct the execution command themselves, most importantly to support substitution.

Alternatively, the ERC could support bash commands (similar to a Travis config file) or Makefile - based execution. In case for this, the following draft of control commands can be extended:

Implementations SHOULD support a list of [bash](https://en.wikipedia.org/wiki/Bash_(Unix_shell)) commands as control statements.
These commands are given as a list under the node `cmd` under the root-level node `execution`.
Non-bash commands MUST be defined under own nodes under the `execution` node.
The current/working directory for these commands MUST be the [ERC base directory](#base-directory).

The execution commands MAY ensure the re-computation is independent from the environment.
For example, the time zone could be fixed via an environment variable `TZ=CET`, so output formatting of timestamps does not break [checking](../glossary.md#check).
This is in addition to ERC creators handling reproducibility at a script level.

!!! tip "Examples for control statements"
    ```yml
    execution:
      cmd:
        - `./prepare.sh --input my_data`
        - `./execute.sh --output results --iterations 3`
    ```
    
    ```yml
    id: 12345
    execution:
      cmd: >-
        'docker run -it --rm --volume $(pwd):/erc --volume $(pwd)/other_data.csv:/erc/data.csv:ro -e TZ=CET erc:12345'
    ```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant