Skip to content

Conversation

danschmidt5189
Copy link
Contributor

@danschmidt5189 danschmidt5189 commented Oct 8, 2025

This is a proof-of-concept on the path towards centralizing and versioning the reusable parts of our workflows. The common elements (determining image metadata, building the image, and tagging it with permatags) would be centralized. Individual repos would include a custom test workflow plus a simple "ci" workflow to weave things together.

The extracted/reusable workflows are:

  • meta: outputs the base tag (sha) and permatags (git-tag, branch, semver) to be applied to the final, tested image.
  • build: builds the multi-platform image and outputs its unique ID (build-specific). This handles the complexity around multi-platform builds.
  • tag: applies permatags to a given image.

These reusable components are triggered on "workflow_call", meaning they can only be launched by another workflow, in this case ci.yml.

- Separates workflow into distinct stages:
  - meta: determines the base (sha) and permatags (branch, git-tag) to apply to the image
  - build: builds the multi-platform dockerfile with a build-specific tag
  - test: a repo-specific workflow that runs the tests
  - tag: applies permatags to the tested image
- This is a proof-of-concept on the path towards centralizing and versioning the reusable parts of our workflows. The common elements (meta, build, and tag) would be centralized, with individual repos only having to write a test workflow to run their tests and a ci workflow to weave the different reusable workflows together.
@danschmidt5189 danschmidt5189 force-pushed the workflow-external-test branch from a23a76a to b5d89f8 Compare October 8, 2025 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant