Any keys in the input JSON that we do not recognize we are adding
as they are to the output pipeline. This is needed so that we don't
have to always update the autogeneration script for each new Buildkite
configuration that we want to support.
Signed-off-by: Andreea Florescu <fandree@amazon.com>
In the script for autogenerating the rust-vmm-ci tests, we were using
self directly for setting the configuration of the tests, and then
we were returning vars(self). This was a pretty obfuscated way of
returning a JSON, so instead we're now just explicitly declaring
a dictionary as part of self, and returning that instead. This
is needed for future extensions as well as we want to be able to
extend the tool such that it supports any keys from the input
to be passed as they are so that we don't need to keep changing it
whenever we need to add support for another Buildkite configuration
parameter.
Signed-off-by: Andreea Florescu <fandree@amazon.com>
Before this patch the timeout could only be overwritten in the
TIMEOUT environment variable. While that approach works and it
is still needed so we can set a different timeout depending
on the repository on which we run the pipeline, we also need a
way to easily set a different timeout in custom tests. This
comes handy when we have custom pipeline for certain crates
and we want to be able to easily specify a timeout in a
more human readable way.
Signed-off-by: Andreea Florescu <fandree@amazon.com>
Added a default timeout value for each Buildkite step that can be
overridden through the environment variable `TIMEOUTS_MIN`.
Signed-off-by: Catalin Dumitru <catdum@amazon.com>
Added help options -h, --help for the script that autogenerates
the pipeline and for the one that runs the tests locally. In the
former, replaced the module optparse (which is now deprecated)
with the module argparse.
Signed-off-by: Catalin Dumitru <catdum@amazon.com>
Make it possible for autogenerating pipelines that are not committed to
this repository, but that are passed as a parameter. The need for this
behavior comes from a problem we've been facing with repositories that
also have custom pipelines. It happens that the container version (which
impacts the rust version), and the docker plugin version are lagging
behind, and are making tests ocasionally fail. To make sure that both
custom pipelines and the rust-vmm-ci pipeline are using the same Rust &
other environment versions, we're using the same script for generating
those tests as well.
This cannot be applied to Windows pipelines as they're not using the
rust-vmm-container at the moment.
Signed-off-by: Andreea Florescu <fandree@amazon.com>
Instead of having a static pipeline.yml, autogenerate it from a JSON
configuration file. The json approach is taken because we also want to
be able to run tests locally, and thus the json can be parsed once for
generating the pipeline, and once for generating a local test run.
Signed-off-by: Catalin Dumitru <catdum@amazon.com>