helm-charts/.github/workflows/pr-validate.yaml
lab-assistant[bot] 1e210f43e3
ci(github-action): update bjw-s-labs/action-changed-files ( v0.3.2 → v0.3.3 )
| datasource  | package                         | from   | to     |
| ----------- | ------------------------------- | ------ | ------ |
| github-tags | bjw-s-labs/action-changed-files | v0.3.2 | v0.3.3 |
2025-05-15 20:24:46 +00:00

113 lines
4 KiB
YAML

name: "Pull Request: Validate"
on:
pull_request:
types:
- opened
- reopened
- ready_for_review
- synchronize
concurrency:
group: ${{ github.head_ref }}-pr-validate
cancel-in-progress: true
permissions:
contents: read
jobs:
prepare:
name: Prepare data required for workflow
runs-on: ubuntu-24.04
outputs:
repoConfiguration: ${{ steps.repo-config.outputs.config }}
addedOrModifiedFiles: ${{ steps.added-modified-files.outputs.changed_files }}
chartsToLint: ${{ steps.charts-to-lint.outputs.filteredCharts }}
chartsToInstall: ${{ steps.charts-to-install.outputs.filteredCharts }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Grab repository configuration
id: repo-config
shell: bash
run: |
echo "config=$(yq '.' '.ci/repo-config.yaml' -o json -I=0)" >> "$GITHUB_OUTPUT"
- name: Get all added or modified files
id: added-modified-files
uses: bjw-s-labs/action-changed-files@930cef8463348e168cab7235c47fe95a7a235f65 # v0.3.3
- name: Get all added or modified charts
id: changed-charts
uses: bjw-s-labs/action-changed-files@930cef8463348e168cab7235c47fe95a7a235f65 # v0.3.3
with:
path: charts
include_only_directories: true
max_depth: 2
- name: Determine charts to lint
id: charts-to-lint
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
env:
CHANGED_CHARTS: ${{ steps.changed-charts.outputs.changed_files }}
REPO_SETTINGS: ${{ steps.repo-config.outputs.config }}
with:
script: |
const { CHANGED_CHARTS, REPO_SETTINGS } = process.env;
const changedCharts = JSON.parse(CHANGED_CHARTS);
const repoSettings = JSON.parse(REPO_SETTINGS);
const chartsToFilter = repoSettings['excluded-charts-lint'];
let filteredCharts = changedCharts.filter(item => chartsToFilter.indexOf(item) < 0);
core.setOutput("filteredCharts", filteredCharts);
console.log('charts to lint:', JSON.stringify(filteredCharts, null, 2));
- name: Determine charts to install
id: charts-to-install
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
env:
CHANGED_CHARTS: ${{ steps.changed-charts.outputs.changed_files }}
REPO_SETTINGS: ${{ steps.repo-config.outputs.config }}
with:
script: |
const { CHANGED_CHARTS, REPO_SETTINGS } = process.env;
const changedCharts = JSON.parse(CHANGED_CHARTS);
const repoSettings = JSON.parse(REPO_SETTINGS);
const chartsToFilter = repoSettings['excluded-charts-install'];
let filteredCharts = changedCharts.filter(item => chartsToFilter.indexOf(item) < 0);
core.setOutput("filteredCharts", filteredCharts);
console.log('charts to install:', JSON.stringify(filteredCharts, null, 2));
pre-commit-check:
name: Perform Pre-Commit check
runs-on: ubuntu-24.04
needs:
- prepare
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Run against changes
uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
with:
extra_args: --files ${{ join(fromJSON(needs.prepare.outputs.addedOrModifiedFiles), ' ') }} --config .ci/pre-commit/config.yaml
charts-lint:
name: Lint charts
uses: ./.github/workflows/charts-lint.yaml
needs:
- prepare
with:
charts: ${{ needs.prepare.outputs.chartsToLint }}
charts-test:
name: Test charts
uses: ./.github/workflows/charts-test.yaml
needs:
- prepare
with:
charts: ${{ needs.prepare.outputs.chartsToInstall }}