Skip to content

Decouple build step from dependent core workflows #33

@eugengi

Description

@eugengi

Overview

Principle: "Tell, Don't Ask"

This principle highlights a vital behavioral pattern that is key to effectively designed systems and team structures. The core idea behind it is this: "Instead of many asking or seeking information from one (person, department, etc.), we tell or better yet, broadcast that data or information systematically and freely to a centralized access point for the many to reference and interface with that broadcast at their convenience, without having the one potentially becoming a bottle-neck."

Observe the following example:


Image

Agizo is a GitHub repository that leverages this template repository.

Repo badges play a role within this principle of tell, don't ask. They essentially broadcast key information to interested parties.
In this case, we are telling, but the problem here is with the data we are broadcasting.

When going through the logs for the test workflow, I realized that the tests were fine. The issue was in the build step - a dependency resolution error that caused the entire workflow to fail. However, that's not what we are telling. We misleadingly communicate that tests are failing. Worse than not telling, is telling false or wrong information.

Outcome

  • Decouple build and environment setups into separate workflows from core workflows (ie, test, lint, coverage, etc).

In this context, this would lead to a build workflow that would fail independently of the test workflow: [build: failing] [test: passing]. This gives more granular insights into where problems actually occur and allows teams to triage issues more effectively.

This is a best practice concept better known as segregated workflows.

Metadata

Metadata

Assignees

Labels

ci/cdInvolves the repo's CI/CD pipelinegithub-actionsInvolves workflows, jobs, and actions

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions