GitHub Workflows
Pipelines integrates via GitHub Workflows in your repositories that integrate with Reusable Workflows in Gruntwork's pipelines-workflows repository. The workflows in your repositories depend on the Gruntwork workflows via the uses
clause within a job, this will appear like:
jobs:
GruntworkPipelines:
uses: gruntwork-io/pipelines-workflows/.github/workflows/pipelines-root.yml@v3
Workflow Versioning
Gruntwork uses Semantic Versioning for pipelines-workflows
releases. We create new git tags to track new releases of the workflows following the v.MAJOR.MINOR.PATCH
format. We also publish a major tag e.g. v.MAJOR
that we update to reference the latest release within that version. For example when we publish a patch from v3.0.1
to v3.0.2
we will update the v3
tag to reference the newer version.
When calling a workflow the final part of the uses
clause contains the version reference. E.g. pipelines-root.yml@v3
. We recommend using the major version e.g. v3
within your workflows to receive the latest fixes and performance improvements, but you are also able to pin to a specific tag.
Modifying Workflows
If you make modifications to the workflows in your repositories, these changes will only affect that specific repository. E.g. if you want to add a customization to the pipelines.yml
in your infrastructure-live-root
repository it will only affect this repository, and not your vended delegated repositories.
If you choose to Fork the Gruntwork Workflows you will be able to make changes that affect multiple repositories. It's important to understand exactly which workflows in the pipelines-workflows
repository affect which of your repositories. See a full list of dependencies below.
Workflow Dependencies
The Gruntwork pipelines-workflows repository contains the following reusable workflows:
pipelines-drift-detection.yml
- A workflow for Pipelines Drift Detection, used by all repositories where Drift Detection is installed.pipelines-root.yml
- The core Pipelines workflow used only by yourinfrastructure-live-root
repository. This workflow provides core plan/apply as well as account vending functionality.pipelines-unlock.yml
- A workflow used to manually unlock state files, used by all repositories.pipelines.yml
- The core Pipelines workflow used by yourinfrastructure-live-access-control
and delegated repositories for plan/apply operations.
In your repositories you will have the following set of workflows:
infrastructure-live-root
account-factory.yml
- A standalone workflow that does not use a workflow frompipelines-workflows
.pipelines-drift-detection.yml
(enterprise only) - Uses the Gruntworkpipelines-drift-detection.yml
drift detection workflow.pipelines-unlock.yml
- Uses the Gruntworkpipelines-unlock.yml
unlock workflow.pipelines.yml
- Usespipelines-root.yml
.
infrastructure-live-access-control
pipelines-drift-detection.yml
- (enterprise only) - Uses the Gruntworkpipelines-drift-detection.yml
drift detection workflow.pipelines-unlock.yml
- Uses the Gruntworkpipelines-unlock.yml
unlock workflow.pipelines.yml
- Usespipelines.yml
.
infrastructure-live-delegated (Vended Delegated Repositories)
pipelines-drift-detection.yml
- Uses the Gruntworkpipelines-drift-detection.yml
drift detection workflow.pipelines-unlock.yml
- Uses the Gruntworkpipelines-unlock.yml
unlock workflow.pipelines.yml
- Usespipelines.yml
.