PR Changes Matrix Builder

This Action will generate a output variable that can be used to generate a
dynamic matrix job.

This is often need for repos that contain many apps, here are a few examples:

  • Terraform Infrastructure: At my current job we have a single repo with all
    of our cloud infrastructure. Each folder is deployed individually, so being
    able to detect what folders have been changed can build a matrix for each
    terraform plan command.

  • ArgoCD: This is a single repo with all of our ArgoCD apps. Each folder is
    deployed individually, so being able to detect what folders have been changed
    can build a matrix for each ArgoCD command.

  • Helm chart: At my current job we have a collection of generic helm charts.
    Each folder is a chart that is individually deployed, tagged, and released.

This action is based on a quick POC in
KyleJamesWalker/action-playground PR#3
and expands on a command like:

# Github Command
$ gh pr view 3 --repo KyleJamesWalker/action-playground --json files --jq '.files.[].path' | cut -d "/" -f1 | grep -v '[\\|\.]' | sort | uniq | jq  --raw-input .

# Example Output
"example_1"
"example_2"

Docker Image Sizes

  • kylejameswalker/pr-changes-matrix-builder-pytest 308MB
  • kylejameswalker/pr-changes-matrix-builder 254MB

GitHub

View Github