This commit is contained in:
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs 2022-07-28 10:59:01 +02:00
parent bca345c66e
commit b7d97d9dd0
No known key found for this signature in database
GPG key ID: BC5E2BD907F9A8EC
4 changed files with 56 additions and 12 deletions

View file

@ -0,0 +1,38 @@
#!/usr/bin/env zx
import 'zx/globals'
const chart = argv["_"][0]
argv.debug ? $.verbose = true : $.verbose = false
if (chart == undefined) {
console.log(chalk.redBright(`ERROR: `) + `No chart provided to validate!`)
process.exit(1)
}
const defaultBranch = argv.default_branch || await $`git remote show origin | awk '/HEAD branch/ {print $NF}'`
const chartYamlPath = `${chart}/Chart.yaml`
if (!await fs.pathExists(chartYamlPath)) {
console.log(chalk.redBright(`ERROR: `) + `${chartYamlPath} does not exist!`)
process.exit(1)
}
const getOriginalChartYamlProcessOutput = await $`git show origin/${defaultBranch}:./${chartYamlPath}`
const originalChartYamlContent = Buffer.from(getOriginalChartYamlProcessOutput.stdout, 'utf-8').toString();
const originalChartYaml = await YAML.parse(originalChartYamlContent)
echo `Original version: ${originalChartYaml.version}`
const updatedChartYamlContent = await fs.readFile(chartYamlPath, 'utf8')
const updatedChartYaml = await YAML.parse(updatedChartYamlContent)
if (!updatedChartYaml.version) {
console.log(chalk.redBright(`ERROR: `) + `${chartYamlPath} does not contain a version!`)
process.exit(1)
}
echo `New version: ${updatedChartYaml.version}`
if (updatedChartYaml.version == originalChartYaml.version) {
console.log(chalk.redBright(`ERROR: `) + `Chart version has not been updated!`)
process.exit(1)
} else {
console.log(chalk.greenBright(`OK: `) + `Chart version has been updated!`)
}

View file

@ -42,11 +42,11 @@ jobs:
echo "::set-output name=detected::true"
fi
lint-charts:
lint-chart:
needs:
- generate-lint-matrix
if: needs.generate-lint-matrix.outputs.detected == 'true'
name: Lint charts
name: Lint chart
strategy:
matrix: ${{ fromJson(needs.generate-lint-matrix.outputs.lint-matrix) }}
fail-fast: false
@ -65,6 +65,11 @@ jobs:
helmv3
helm: "${{ env.HELM_VERSION }}"
- name: Check chart version update
shell: bash
run: |
npx zx .ci/scripts/check_chart_version.mjs "charts/${{ matrix.chart }}"
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.2.1
@ -75,12 +80,12 @@ jobs:
lint_success:
needs:
- generate-lint-matrix
- lint-charts
- lint-chart
if: |
always()
name: Lint successful
runs-on: ubuntu-22.04
steps:
- name: Check lint matrix status
if: ${{ (needs.generate-lint-matrix.outputs.detected == 'true') && (needs.lint-charts.result != 'success') }}
if: ${{ (needs.generate-lint-matrix.outputs.detected == 'true') && (needs.lint-chart.result != 'success') }}
run: exit 1

View file

@ -47,11 +47,11 @@ jobs:
echo "::set-output name=detected::true"
fi
install-charts:
install-chart:
needs:
- generate-test-matrix
if: needs.generate-test-matrix.outputs.detected == 'true'
name: Install charts
name: Install chart
strategy:
matrix: ${{ fromJson(needs.generate-test-matrix.outputs.install-matrix) }}
fail-fast: false
@ -95,18 +95,18 @@ jobs:
install_success:
needs:
- generate-test-matrix
- install-charts
- install-chart
if: |
always()
name: Install successful
runs-on: ubuntu-22.04
steps:
- name: Check install matrix status
if: ${{ (needs.generate-test-matrix.outputs.detected == 'true') && (needs.install-charts.result != 'success') }}
if: ${{ (needs.generate-test-matrix.outputs.detected == 'true') && (needs.install-chart.result != 'success') }}
run: exit 1
unittest:
name: Run unit tests
unittest-chart:
name: Unit-test chart
runs-on: ubuntu-20.04
needs:
- generate-test-matrix
@ -139,12 +139,12 @@ jobs:
unittest_success:
needs:
- generate-test-matrix
- unittest
- unittest-chart
if: |
always()
name: Unittest successful
runs-on: ubuntu-22.04
steps:
- name: Check unittest matrix status
if: ${{ (needs.generate-test-matrix.outputs.detected == 'true') && (needs.unittest.result != 'success') }}
if: ${{ (needs.generate-test-matrix.outputs.detected == 'true') && (needs.unittest-chart.result != 'success') }}
run: exit 1

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
node_modules/