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 }} addedOrModifiedFilesDetected: description: "Does the PR contain any changes?" value: ${{ jobs.pr-changes.outputs.addedOrModifiedFilesDetected }} 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 }} chartsToLint: value: ${{ jobs.pr-changes.outputs.chartsToLint }} chartsToInstall: value: ${{ jobs.pr-changes.outputs.chartsToInstall }} 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@v6.5 - name: Save PR data to file env: PR_NUMBER: ${{ github.event.number }} run: | echo $PR_NUMBER > pr_number.txt - name: Store pr data in artifact uses: actions/upload-artifact@v3 with: name: pr_metadata path: ./pr_number.txt retention-days: 5 pr-changes: name: Collect PR changes runs-on: ubuntu-latest outputs: addedOrModifiedFilesDetected: ${{ steps.changed-files.outputs.allAddedOrModified }} addedOrModifiedFiles: ${{ steps.changed-files.outputs.allAddedOrModified_files }} addedOrModifiedCharts: ${{ steps.changed-charts.outputs.charts }} chartsToLint: ${{ steps.changed-charts.outputs.chartsToLint }} chartsToInstall: ${{ steps.changed-charts.outputs.chartsToInstall }} steps: - name: Checkout uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 with: fetch-depth: 0 - name: Collect changed files uses: dorny/paths-filter@v2 id: changed-files with: list-files: json filters: | allAddedOrModified: - added|modified: '**' - name: Collect changed charts uses: bjw-s/helm-charts-actions/collect-charts@main id: changed-charts