Skip to content

Commit

Permalink
update software-delievery to explain our examples
Browse files Browse the repository at this point in the history
  • Loading branch information
Benbentwo committed Oct 10, 2024
1 parent bd5ec68 commit 3e81ada
Showing 1 changed file with 84 additions and 1 deletion.
85 changes: 84 additions & 1 deletion docs/layers/software-delivery/software-delivery.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
title: Software Delivery
sidebar_class_name: hidden
---
import Intro from '@site/src/components/Intro';
import Steps from '@site/src/components/Steps';
Expand Down Expand Up @@ -58,3 +57,87 @@ import ReactPlayer from 'react-player';

Once you're done deploying your apps, it's time to start monitoring everything. We'll show you how to do that next.

<hr></hr>
<h2>Our Examples</h2>

### Reusable Workflows

We've consolidated all the workflows into the example applications,
including the GitHub reusable workflows.
We've done this to make it easier for Developers to understand how the example leverages all the workflows.
In practice, we recommend moving the reusable workflows into a centralized repository,
where they can be shared by other application repositories.

For example,
we would recommend moving all the `ecspresso-*` and all `workflow-*` workflow files to a centralized repository
(e.g. a repository named `github-action-workflows`).
The best solution will depend on your GitHub Organization structure and team size.
Pick what works for you and your team.

When your workflows are consolidated, you will need only 3 inside an application repository:

1. `feature-branch.yaml`
2. `main-branch.yaml`
3. `release.yaml`
4. (optional) `hotfix-branch.yaml`
5. (optional) `hotfix-enabled.yaml`
6. (optional) `hotfix-release.yaml`

The remaining workflows are the reusable/shared implementation. This approach makes it easier to define a standardized CI/CD interface for all of your services.

```console
.github
├── configs/
│ ├── draft-release.yml
│ └── environment.yaml
└── workflows/
├── ecspresso-feature-branch.yml
├── ecspresso-hotfix-branch.yml
├── ecspresso-hotfix-mixin.yml
├── ecspresso-hotfix-release.yml
├── ecspresso-main-branch.yml
├── ecspresso-release.yml
├── feature-branch.yml
├── main-branch.yaml
├── release.yaml
├── workflow-cd-ecspresso.yml
├── workflow-cd-preview-ecspresso.yml
├── workflow-ci-dockerized-app-build.yml
├── workflow-ci-dockerized-app-promote.yml
├── workflow-controller-draft-release.yml
├── workflow-controller-hotfix-reintegrate.yml
├── workflow-controller-hotfix-release-branch.yml
└── workflow-controller-hotfix-release.yml
```

After moving to a centralized workflow repository, you should have a setup like the following:

```console
Application Repository
├── .github
│ ├── configs/
│ │ └── draft-release.yml
│ └── workflows/
│ ├── feature-branch.yml
│ ├── main-branch.yaml
│ └── release.yaml
└── ...
github-action-workflows
├── .github/
│ └── workflows
│ ├── ecspresso-feature-branch.yml
│ ├── ecspresso-hotfix-branch.yml
│ ├── ecspresso-hotfix-mixin.yml
│ ├── ecspresso-hotfix-release.yml
│ ├── ecspresso-main-branch.yml
│ ├── ecspresso-release.yml
│ ├── workflow-cd-ecspresso.yml
│ ├── workflow-cd-preview-ecspresso.yml
│ ├── workflow-ci-dockerized-app-build.yml
│ ├── workflow-ci-dockerized-app-promote.yml
│ ├── workflow-controller-draft-release.yml
│ ├── workflow-controller-hotfix-reintegrate.yml
│ ├── workflow-controller-hotfix-release-branch.yml
│ └── workflow-controller-hotfix-release.yml
└── ...
```

0 comments on commit 3e81ada

Please sign in to comment.