ci: Update CI

This commit is contained in:
Bᴇʀɴᴅ Sᴄʜᴏʀɢᴇʀs 2022-10-03 11:43:22 +02:00
parent 8703597123
commit 7798202759
No known key found for this signature in database
GPG key ID: BC5E2BD907F9A8EC
16 changed files with 102 additions and 71 deletions

View file

@ -15,6 +15,12 @@ on:
A JSON encoded array of charts to lint A JSON encoded array of charts to lint
required: true required: true
type: string type: string
overrideDeps:
description: >
A JSON encoded array of dependencies to override before linting
type: string
required: false
default: '[]'
env: env:
HELM_VERSION: 3.9.2 HELM_VERSION: 3.9.2
@ -58,7 +64,14 @@ jobs:
- name: Set up chart-testing - name: Set up chart-testing
uses: helm/chart-testing-action@v2.3.1 uses: helm/chart-testing-action@v2.3.1
- name: Run chart-testing (install) - name: Override chart dependencies
uses: ./.github/actions/override-chart-deps
if: ${{ inputs.overrideDeps != '[]' }}
with:
chart: ${{ matrix.chart }}
overrides: ${{ inputs.overrideDeps }}
- name: Run chart-testing (lint)
run: ct lint --config .ci/ct/ct.yaml --charts "charts/${{ matrix.chart }}" run: ct lint --config .ci/ct/ct.yaml --charts "charts/${{ matrix.chart }}"
# Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7 # Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7

View file

@ -76,12 +76,23 @@ jobs:
helm repo index . --url https://bjw-s.github.io/helm-charts/ helm repo index . --url https://bjw-s.github.io/helm-charts/
- name: Commit changes - name: Commit changes
shell: bash uses: stefanzweifel/git-auto-commit-action@v4
working-directory: dest id: auto-commit
run: | with:
git config user.name "bjw-s-bot[bot]" repository: dest
git config user.email "bjw-s-bot <87358111+bjw-s-bot[bot]@users.noreply.github.com>" branch: gh-pages
git add $(git ls-files -o --exclude-standard) commit_user_name: "bjw-s-bot[bot]"
git add index.yaml commit_user_email: 87358111+bjw-s-bot[bot]@users.noreply.github.com
git commit -m "Updated from ref: $GITHUB_SHA" commit_author: bjw-s-bot[bot] <87358111+bjw-s-bot[bot]@users.noreply.github.com>
git push file_pattern: 'index.yaml **/*.tgz'
disable_globbing: true
- name: Wait for deploy
uses: jchen1/wait-for-green@v1.0.7
if: ${{ steps.auto-commit.outputs.changes_detected }}
id: wait-for-deploy
with:
token: ${{ steps.get-app-token.outputs.token }}
commit: ${{ steps.auto-commit.outputs.commit_hash }}
# Ignore the job we're running on lest we create an infinite loop
ignored_checks: 'wait-for-deploy'

View file

@ -26,7 +26,8 @@ jobs:
name: Prepare data required for release name: Prepare data required for release
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
outputs: outputs:
charts-to-release: ${{ steps.collect-charts.outputs.charts }} libraryChartsToRelease: ${{ steps.collect-charts.outputs.chartsLibrary }}
applicationChartsToRelease: ${{ steps.collect-charts.outputs.chartsApplication }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -40,11 +41,21 @@ jobs:
repoConfigFile: ./.ci/repo-config.yaml repoConfigFile: ./.ci/repo-config.yaml
overrideCharts: "[${{ inputs.charts }}]" overrideCharts: "[${{ inputs.charts }}]"
release-github-pages: release-gh-pages-library:
name: Release Charts to GitHub pages name: Release Library charts to GitHub pages
uses: ./.github/workflows/charts-release-ghpages.yaml uses: ./.github/workflows/charts-release-ghpages.yaml
needs: needs:
- prepare - prepare
with: with:
charts: "${{ needs.prepare.outputs.charts-to-release }}" charts: "${{ needs.prepare.outputs.libraryChartsToRelease }}"
secrets: inherit secrets: inherit
# release-gh-pages:
# name: Release Application Charts to GitHub pages
# uses: ./.github/workflows/charts-release-ghpages.yaml
# needs:
# - prepare
# - release-gh-pages-library
# with:
# charts: "${{ needs.prepare.outputs.applicationChartsToRelease }}"
# secrets: inherit

View file

@ -22,6 +22,8 @@ on:
value: ${{ jobs.pr-changes.outputs.chartsToLint }} value: ${{ jobs.pr-changes.outputs.chartsToLint }}
chartsToInstall: chartsToInstall:
value: ${{ jobs.pr-changes.outputs.chartsToInstall }} value: ${{ jobs.pr-changes.outputs.chartsToInstall }}
commonLibraryUpdated:
value: ${{ contains(fromJSON(jobs.pr-changes.outputs.addedOrModifiedCharts), 'library/common') }}
jobs: jobs:
pr-metadata: pr-metadata:
@ -55,6 +57,8 @@ jobs:
addedOrModifiedFilesDetected: ${{ steps.changed-files.outputs.allAddedOrModified }} addedOrModifiedFilesDetected: ${{ steps.changed-files.outputs.allAddedOrModified }}
addedOrModifiedFiles: ${{ steps.changed-files.outputs.allAddedOrModified_files }} addedOrModifiedFiles: ${{ steps.changed-files.outputs.allAddedOrModified_files }}
addedOrModifiedCharts: ${{ steps.changed-charts.outputs.charts }} addedOrModifiedCharts: ${{ steps.changed-charts.outputs.charts }}
addedOrModifiedLibraryCharts: ${{ steps.changed-charts.outputs.chartsLibrary }}
addedOrModifiedApplicationCharts: ${{ steps.changed-charts.outputs.chartsApplication }}
chartsToLint: ${{ steps.changed-charts.outputs.chartsToLint }} chartsToLint: ${{ steps.changed-charts.outputs.chartsToLint }}
chartsToInstall: ${{ steps.changed-charts.outputs.chartsToInstall }} chartsToInstall: ${{ steps.changed-charts.outputs.chartsToInstall }}
steps: steps:

View file

@ -35,16 +35,15 @@ jobs:
checkoutCommit: ${{ github.sha }} checkoutCommit: ${{ github.sha }}
chartsToLint: ${{ needs.pr-metadata.outputs.chartsToLint }} chartsToLint: ${{ needs.pr-metadata.outputs.chartsToLint }}
isRenovatePR: ${{ needs.pr-metadata.outputs.isRenovatePR }} isRenovatePR: ${{ needs.pr-metadata.outputs.isRenovatePR }}
overrideDeps: |-
${{
(
needs.pr-metadata.outputs.commonLibraryUpdated &&
'[{"name": "common", "repository": "file://../../library/common", "version": "*"}]'
) || '[]'
}}
charts-test: charts-test:
uses: ./.github/workflows/charts-test.yaml
needs:
- pr-metadata
with:
checkoutCommit: ${{ github.sha }}
chartsToTest: ${{ needs.pr-metadata.outputs.chartsToInstall }}
library-charts-test:
uses: ./.github/workflows/charts-test.yaml uses: ./.github/workflows/charts-test.yaml
needs: needs:
- pr-metadata - pr-metadata
@ -52,12 +51,15 @@ jobs:
checkoutCommit: ${{ github.sha }} checkoutCommit: ${{ github.sha }}
chartsToTest: |- chartsToTest: |-
${{ ${{
( (
contains(fromJSON(needs.pr-metadata.outputs.addedOrModifiedCharts), 'library/common') && needs.pr-metadata.outputs.commonLibraryUpdated &&
'["other/app-template"]' '["other/app-template"]'
) || '[]' ) || needs.pr-metadata.outputs.chartsToInstall
}} }}
overrideDeps: |- overrideDeps: |-
[ ${{
{"name": "common", "repository": "file://../../library/common", "version": "*"} (
] needs.pr-metadata.outputs.commonLibraryUpdated &&
'[{"name": "common", "repository": "file://../../library/common", "version": "*"}]'
) || '[]'
}}

View file

@ -2,7 +2,7 @@ apiVersion: v2
name: common name: common
description: Function library for Helm charts description: Function library for Helm charts
type: library type: library
version: 0.2.1 version: 0.2.2
kubeVersion: ">=1.16.0-0" kubeVersion: ">=1.16.0-0"
keywords: keywords:
- common - common
@ -14,16 +14,6 @@ maintainers:
annotations: annotations:
artifacthub.io/changes: |- artifacthub.io/changes: |-
- kind: fixed - kind: fixed
description: Make sure service.monitor is optional. description: Fix deprecation warning on unsupported vpn types.
- kind: removed
description: BREAKING - Removed support for the `openvpn` and `wireguard` VPN types.
- kind: added
description: Added support for adding serviceMonitors to services.
- kind: changed - kind: changed
description: ConfigMap checksum logic now only looks at ConfigMap data description: Updated code-server image to v4.7.1
- kind: changed
description: Explicitly convert defaultMode to decimal notation in code-server addon.
- kind: changed
description: Updated gluetun image to v3.31.1
- kind: changed
description: Updated code-server image to v4.7.0

View file

@ -5,11 +5,11 @@ It will include / inject the required templates based on the given values.
{{- define "common.addon.vpn" -}} {{- define "common.addon.vpn" -}}
{{- if .Values.addons.vpn.enabled -}} {{- if .Values.addons.vpn.enabled -}}
{{- if eq "openvpn" .Values.addons.vpn.type -}} {{- if eq "openvpn" .Values.addons.vpn.type -}}
{{- fail "The 'openvpn' VPN type is no longer supported. Please migrate to the 'gluetun' type." . }} {{- fail "The 'openvpn' VPN type is no longer supported. Please migrate to the 'gluetun' type." }}
{{- end -}} {{- end -}}
{{- if eq "wireguard" .Values.addons.vpn.type -}} {{- if eq "wireguard" .Values.addons.vpn.type -}}
{{- fail "The 'wireguard' VPN type is no longer supported. Please migrate to the 'gluetun' type." . }} {{- fail "The 'wireguard' VPN type is no longer supported. Please migrate to the 'gluetun' type." }}
{{- end -}} {{- end -}}
{{- if eq "gluetun" .Values.addons.vpn.type -}} {{- if eq "gluetun" .Values.addons.vpn.type -}}

View file

@ -604,7 +604,7 @@ addons:
# -- Specify the code-server image # -- Specify the code-server image
repository: ghcr.io/coder/code-server repository: ghcr.io/coder/code-server
# -- Specify the code-server image tag # -- Specify the code-server image tag
tag: 4.7.0 tag: 4.7.1
# -- Specify the code-server image pull policy # -- Specify the code-server image pull policy
pullPolicy: IfNotPresent pullPolicy: IfNotPresent

View file

@ -2,19 +2,19 @@
apiVersion: v2 apiVersion: v2
description: A common powered chart template. This can be useful for small projects that don't have their own chart. description: A common powered chart template. This can be useful for small projects that don't have their own chart.
name: app-template name: app-template
version: 0.2.1 version: 0.2.2
maintainers: maintainers:
- name: bjw-s - name: bjw-s
email: me@bjw-s.dev email: me@bjw-s.dev
dependencies: dependencies:
- name: common - name: common
repository: https://bjw-s.github.io/helm-charts repository: https://bjw-s.github.io/helm-charts
version: 0.2.1 version: 0.2.2
annotations: annotations:
artifacthub.io/changes: |- artifacthub.io/changes: |-
- kind: changed - kind: changed
description: | description: |
Updated library version to 0.2.1 (**BREAKING** when coming from < 0.2.0). Updated library version to 0.2.2.
links: links:
- name: Common library chart definition - name: Common library chart definition
url: https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/Chart.yaml url: https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/Chart.yaml

View file

@ -21,7 +21,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -48,7 +48,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -83,5 +83,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -79,5 +79,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test

View file

@ -19,7 +19,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
- it: retain enabled should pass - it: retain enabled should pass
set: set:
@ -42,7 +42,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -68,7 +68,7 @@ tests:
app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -102,5 +102,5 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test

View file

@ -18,7 +18,7 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
- it: custom metadata should pass - it: custom metadata should pass
set: set:
@ -45,7 +45,7 @@ tests:
app.kubernetes.io/managed-by: Helm app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test
- it: custom metadata with global metadata should pass - it: custom metadata with global metadata should pass
@ -80,5 +80,5 @@ tests:
app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/name: RELEASE-NAME
app.kubernetes.io/service: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME
global_label: test global_label: test
helm.sh/chart: app-template-0.2.0 helm.sh/chart: app-template-0.2.2
test_label: test test_label: test