id = "molecule" name = "Molecule" homepage = "https://ansible.readthedocs.io/projects/molecule/" description = "Molecule is an Ansible testing framework designed for developing and testing Ansible collections, playbooks, and roles." # Molecule's own logo, from its documentation site. icon = "https://ansible.readthedocs.io/projects/molecule/_static/images/logo.png" executables = ["molecule"] [dotfiles] # https://ansible.readthedocs.io/projects/molecule/configuration/ — a setting # can be put "in the `.config/molecule/config.yml` file, in your `$HOME` or at # the root of your project", the $HOME copy being the global default that every # scenario's molecule.yml is merged on top of. The project-root copy belongs to # the repository, so only the $HOME one is listed. paths = ["~/.config/molecule/config.yml"] exclude = [] # The file is driver / provisioner / verifier defaults. Connection secrets live # in Ansible's own inventory and vault, not here. secret = [] # Read once when molecule starts and merged into the scenario config. side_effect = false # No machine_lines: driver name, verifier and log verbosity are the defaults a # user wants on every machine. [commands] format = 1 label = "molecule" description = "Test Ansible roles. Use the subcommand tabs for test and converge; other steps and init are left out." quality = "ai-draft" base = "fig:molecule" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/molecule.ts" license = "MIT" [[commands.subcommand]] path = ["test"] label = "Run the full test sequence" description = "Run dependency through verify for a scenario." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/molecule.ts" license = "MIT" [[commands.subcommand.field]] id = "scenario" label = "Scenario name" type = "string" option = ["--scenario-name", "-s"] sources = ["fig"] [[commands.subcommand.field]] id = "driver" label = "Driver" type = "string" option = ["--driver-name", "-d"] suggestions = [{ value = "delegated", label = "delegated" }, { value = "docker", label = "docker" }, { value = "podman", label = "podman" }, { value = "vagrant", label = "vagrant" }, { value = "azure", label = "azure" }, { value = "hetzner", label = "hetzner" }] sources = ["fig"] [[commands.subcommand.field]] id = "all" label = "Test all scenarios" type = "boolean" option = ["--all"] sources = ["fig"] [[commands.subcommand.field]] id = "destroy" label = "Destroy strategy" type = "string" option = ["--destroy"] suggestions = [{ value = "always", label = "always" }, { value = "never", label = "never" }] sources = ["fig"] [[commands.subcommand.field]] id = "parallel" label = "Parallel mode" type = "boolean" option = ["--parallel"] sources = ["fig"] [[commands.subcommand.task]] id = "test" label = "Test a scenario" fields = ["scenario", "driver", "destroy"] required = [] [[commands.subcommand.task]] id = "all" label = "Test all scenarios" fields = ["all", "parallel"] required = ["all"] set = { all = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["scenario", "driver", "all"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["destroy", "parallel"] [[commands.subcommand]] path = ["converge"] label = "Converge instances" description = "Configure instances (dependency, create, prepare, converge)." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/molecule.ts" license = "MIT" [[commands.subcommand.field]] id = "scenario" label = "Scenario name" type = "string" option = ["--scenario-name", "-s"] sources = ["fig"] [[commands.subcommand.task]] id = "converge" label = "Converge" fields = ["scenario"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["scenario"]