If you could wish for whatever you wanted, what would your perfect CI/CD tool be like?
- how would you create new builds?
- what do you expect to be required to do to create a dev, stage, prod deployment, and how to set it up?
- what would you pay for a solution like the one you imagine?
- would you reward if the solution wouldn't lock you to it, to a specific cloud or anything at all?
If you're a professional Devops/fullstack engineer, please try to look at it like you're "just" an application engineer ... so you're not into terraform, ansible etc.
Understands how to fetch/publish packages for common ecosystems (e.g. gems, jars, npm, go) and extensible to add others.
Define multiple environments with selectable automatic/manual progression to next environment upon passing test suite. Secrets can come from a separate repo with more restricted access. Each test/deploy should include the code and secret repo verion hashes.
Fast, parallel execution of tests in suite. Automatic retry of failed test, metrics collected to identify flakey code/tests.
Perform blue/gree deploys in each environment. Audible text-to-speech notification of test failures delivered to individual dev or group (via Slack and/or other means).
Quick one-button revert to an earlier version in any environment. Historical record of which version is running in every environment. Also have a button to force-promote a failed stage onto the next.
Periodic health checks running a subset of test suite with dashboard, alerts, and history. Audible text-to-speech announcement of health-check failures to dev/group.
It should deploy and test artifacts in the cloud of my choosing, in the deployment unit of my choosing (EC2, EKS, etc) to my own AWS (or GCP) account.