Workflows: Experience is pretty spotty, littered with annoyances



I’d like to start by saying that workflows and contexts are both great additions, but they do feel like they were just hacked into place. The first thing to note is the experience of adding a new workflow is really annoying.
If a configuration doesn’t have a ‘build’ step but is otherwise valid, it will error. It will work if another build is kicked off (not a rebuild), with the same configuration. As a workaround I started adding a repository without a circleci configuration so the first build errors, and then pushing a new commit with the configuration so it will actually run. Is a ‘build’ step actually necessary, especially with workflows where we list the steps by name in the configuration?

Next thing, re-running a failed build in a workflow. It appears sometimes (edit: I have now had successful rebuilds, but also unsuccessful ones. The failed ones appear to be when using a private image and the instance the rebuild runs on doesn’t have the image cached.) they don’t run in the same context and therefore lack environment variables. This pretty much means that if we have a build that fails due to some random circumstance - like a network error - we have no option to rebuild that as the rebuild errors due to lacking the environmental variables coming from the context. We would have to push some change to kick off a new build.

And finally the contexts. Amazing feature! Makes life so much easier for us. But why would you make them available with 1 hardcoded context…?! Even if we could just rename it, it would make it easier in the future when we can add multiple ones. Now I’ll have about 30 repositories (ones I refused to add before due to not willing to put in the same credentials 30 times and rotate them) with the context in the circleci config files that I’ll have to update when we can finally name it something meaningful.