From 3e81ada44c81e32fe4c8b7aabc794d63744af427 Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Thu, 10 Oct 2024 09:49:12 -0700 Subject: [PATCH 1/2] update software-delievery to explain our examples --- .../software-delivery/software-delivery.mdx | 85 ++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/docs/layers/software-delivery/software-delivery.mdx b/docs/layers/software-delivery/software-delivery.mdx index 0705762fb..532be2233 100644 --- a/docs/layers/software-delivery/software-delivery.mdx +++ b/docs/layers/software-delivery/software-delivery.mdx @@ -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'; @@ -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. +
+

Our Examples

+ +### 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 + └── ... + ``` From 33a7669c6106be14b49086a295371e3e81ccf446 Mon Sep 17 00:00:00 2001 From: Benjamin Smith Date: Thu, 10 Oct 2024 12:35:00 -0700 Subject: [PATCH 2/2] Update docs/layers/software-delivery/software-delivery.mdx --- docs/layers/software-delivery/software-delivery.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/layers/software-delivery/software-delivery.mdx b/docs/layers/software-delivery/software-delivery.mdx index 532be2233..3592a7132 100644 --- a/docs/layers/software-delivery/software-delivery.mdx +++ b/docs/layers/software-delivery/software-delivery.mdx @@ -70,7 +70,7 @@ 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`). +(e.g. a repository named `github-action-workflows`, alternatively the `infrastructure` repository directly). The best solution will depend on your GitHub Organization structure and team size. Pick what works for you and your team.