mirror of
https://github.com/k8s-at-home/charts.git
synced 2025-01-23 23:49:12 +00:00
ee6b8361da
Signed-off-by: Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs <me@bjw-s.dev>
72 lines
2.4 KiB
YAML
72 lines
2.4 KiB
YAML
name: "Pull Request: Get metadata"
|
|
|
|
on:
|
|
workflow_call:
|
|
outputs:
|
|
isRenovatePR:
|
|
description: "Is the PR coming from Renovate?"
|
|
value: ${{ jobs.pr-metadata.outputs.isRenovatePR }}
|
|
isFork:
|
|
description: "Is the PR coming from a forked repo?"
|
|
value: ${{ jobs.pr-metadata.outputs.isFork }}
|
|
addedOrModified:
|
|
description: "Does the PR contain any changes?"
|
|
value: ${{ jobs.pr-changes.outputs.addedOrModified }}
|
|
addedOrModifiedFiles:
|
|
description: "A list of the files changed in this PR"
|
|
value: ${{ jobs.pr-changes.outputs.addedOrModifiedFiles }}
|
|
addedOrModifiedCharts:
|
|
description: "A list of the charts changed in this PR"
|
|
value: ${{ jobs.pr-changes.outputs.addedOrModifiedCharts }}
|
|
|
|
jobs:
|
|
pr-metadata:
|
|
name: Collect PR metadata
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
isRenovatePR: ${{ startsWith(steps.branch-name.outputs.current_branch, 'renovate/') }}
|
|
isFork: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
|
|
steps:
|
|
- name: Get branch name
|
|
id: branch-name
|
|
uses: tj-actions/branch-names@v5.1
|
|
|
|
pr-changes:
|
|
name: Collect PR changes
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
addedOrModified: ${{ steps.filter.outputs.addedOrModified }}
|
|
addedOrModifiedFiles: ${{ steps.filter.outputs.addedOrModified_files }}
|
|
addedOrModifiedCharts: ${{ steps.filter-charts.outputs.addedOrModified }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Collect changed files
|
|
uses: dorny/paths-filter@v2
|
|
id: filter
|
|
with:
|
|
list-files: shell
|
|
filters: |
|
|
addedOrModified:
|
|
- added|modified: 'charts/**'
|
|
|
|
- name: Collect changed charts
|
|
if: |
|
|
steps.filter.outputs.addedOrModified == 'true'
|
|
id: filter-charts
|
|
run: |
|
|
CHARTS=()
|
|
PATHS=(${{ steps.filter.outputs.addedOrModified_files }})
|
|
# Get only the chart paths
|
|
for CHARTPATH in "${PATHS[@]}"
|
|
do
|
|
IFS='/' read -r -a path_parts <<< "${CHARTPATH}"
|
|
CHARTS+=("${path_parts[1]}/${path_parts[2]}")
|
|
done
|
|
|
|
# Remove duplicates
|
|
CHARTS=( `printf "%s\n" "${CHARTS[@]}" | sort -u` )
|
|
# Set output to changed charts
|
|
printf "::set-output name=addedOrModified::%s\n" "${CHARTS[*]}"
|