mirror of
https://github.com/k8s-at-home/charts.git
synced 2025-01-24 07:59:02 +00:00
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[*]}"
|