This repository is a starting point for building and sharing workflows written in the Workflow Description Language (WDL). It includes an example workflow, a ready-to-use development environment, automated checks, and a Dockstore configuration.
-
Clone your new repository, or open it in a GitHub Codespace.
-
Replace
tasks/greet.wdlandworkflows/hello.wdlwith your tasks and workflows. Add or update workflow input files underinputs/. -
Lint and test the examples:
sprocket lint --deny-warnings --deny-notes . sprocket -c test/sprocket.toml dev test . --clean-all
-
Update the test definitions in
tasks/test/andworkflows/test/so they check your tasks and workflows. -
To publish through Dockstore, update
.github/.dockstore.ymlwith your workflow path, name, input file, and authors, then connect the repository to the Dockstore GitHub App. If you do not want to use Dockstore, delete.github/.dockstore.yml. -
Commit and push your changes. GitHub Actions will validate the WDL files with Sprocket, MiniWDL, and WOMtool, then run the Sprocket tests.
VS Code can use the development container as the environment for this repository. Files stay in your local checkout, while commands and extensions run inside the container.
To start it:
- Install and start Docker.
- Install VS Code and the Dev Containers extension.
- Open this repository in VS Code.
- Open the Command Palette and run Dev Containers: Reopen in Container.
- Wait for VS Code to build the container and reopen the repository. New terminals now run inside the container.
The container provides these tools:
sprocketchecks, formats, tests, and runs WDL.miniwdlchecks and runs WDL locally.cromwellruns workflows with the Cromwell engine.womtoolvalidates WDL for Cromwell.shellcheckchecks shell commands.dockerruns the containers used by workflow tasks.
Run Dev Containers: Rebuild Container from the Command Palette after
changing .devcontainer/.
tasks/: reusable WDL tasks.workflows/: WDL workflows that import and connect tasks.tasks/test/andworkflows/test/: unit tests run bysprocket dev test.inputs/: example inputs for running or publishing workflows.test/sprocket.toml: local execution settings for fast unit tests..devcontainer/: a development container for Codespaces or VS Code..github/workflows/: validation with Sprocket, MiniWDL, and WOMtool, plus Sprocket tests..github/.dockstore.yml: a starting configuration for the Dockstore GitHub App.
Remove or replace the example files as your workflow grows. Keep the automated checks that are useful for your project.
This template is available under the BSD 3-Clause License. Update the copyright notice and license if your new repository uses different terms.