From 7798202759f869ee3b3eb200f901ace555b80a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=E1=B4=87=CA=80=C9=B4=E1=B4=85=20S=E1=B4=84=CA=9C?= =?UTF-8?q?=E1=B4=8F=CA=80=C9=A2=E1=B4=87=CA=80s?= Date: Mon, 3 Oct 2022 11:43:22 +0200 Subject: [PATCH] ci: Update CI --- .github/workflows/charts-lint.yaml | 15 +++++++- .github/workflows/charts-release-ghpages.yaml | 29 +++++++++++----- .github/workflows/charts-release.yaml | 19 ++++++++--- .github/workflows/pr-metadata.yaml | 4 +++ .github/workflows/pr-validate.yaml | 34 ++++++++++--------- charts/library/common/Chart.yaml | 16 ++------- .../common/templates/addons/vpn/_vpn.tpl | 4 +-- charts/library/common/values.yaml | 2 +- charts/other/app-template/Chart.yaml | 6 ++-- .../tests/configmap/metadata_test.yaml | 6 ++-- .../controller/metadata_daemonset_test.yaml | 6 ++-- .../controller/metadata_deployment_test.yaml | 6 ++-- .../controller/metadata_statefulset_test.yaml | 6 ++-- .../tests/ingress/metadata_test.yaml | 6 ++-- .../app-template/tests/pvc/metadata_test.yaml | 8 ++--- .../tests/service/metadata_test.yaml | 6 ++-- 16 files changed, 102 insertions(+), 71 deletions(-) diff --git a/.github/workflows/charts-lint.yaml b/.github/workflows/charts-lint.yaml index 5f0b3b90..d1e63209 100644 --- a/.github/workflows/charts-lint.yaml +++ b/.github/workflows/charts-lint.yaml @@ -15,6 +15,12 @@ on: A JSON encoded array of charts to lint required: true type: string + overrideDeps: + description: > + A JSON encoded array of dependencies to override before linting + type: string + required: false + default: '[]' env: HELM_VERSION: 3.9.2 @@ -58,7 +64,14 @@ jobs: - name: Set up chart-testing 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 }}" # Summarize matrix https://github.community/t/status-check-for-a-matrix-jobs/127354/7 diff --git a/.github/workflows/charts-release-ghpages.yaml b/.github/workflows/charts-release-ghpages.yaml index fc4a356b..8e519752 100644 --- a/.github/workflows/charts-release-ghpages.yaml +++ b/.github/workflows/charts-release-ghpages.yaml @@ -76,12 +76,23 @@ jobs: helm repo index . --url https://bjw-s.github.io/helm-charts/ - name: Commit changes - shell: bash - working-directory: dest - run: | - git config user.name "bjw-s-bot[bot]" - git config user.email "bjw-s-bot <87358111+bjw-s-bot[bot]@users.noreply.github.com>" - git add $(git ls-files -o --exclude-standard) - git add index.yaml - git commit -m "Updated from ref: $GITHUB_SHA" - git push + uses: stefanzweifel/git-auto-commit-action@v4 + id: auto-commit + with: + repository: dest + branch: gh-pages + commit_user_name: "bjw-s-bot[bot]" + commit_user_email: 87358111+bjw-s-bot[bot]@users.noreply.github.com + commit_author: bjw-s-bot[bot] <87358111+bjw-s-bot[bot]@users.noreply.github.com> + 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' diff --git a/.github/workflows/charts-release.yaml b/.github/workflows/charts-release.yaml index b8c22d80..7922c0e6 100644 --- a/.github/workflows/charts-release.yaml +++ b/.github/workflows/charts-release.yaml @@ -26,7 +26,8 @@ jobs: name: Prepare data required for release runs-on: ubuntu-22.04 outputs: - charts-to-release: ${{ steps.collect-charts.outputs.charts }} + libraryChartsToRelease: ${{ steps.collect-charts.outputs.chartsLibrary }} + applicationChartsToRelease: ${{ steps.collect-charts.outputs.chartsApplication }} steps: - name: Checkout uses: actions/checkout@v3 @@ -40,11 +41,21 @@ jobs: repoConfigFile: ./.ci/repo-config.yaml overrideCharts: "[${{ inputs.charts }}]" - release-github-pages: - name: Release Charts to GitHub pages + release-gh-pages-library: + name: Release Library charts to GitHub pages uses: ./.github/workflows/charts-release-ghpages.yaml needs: - prepare with: - charts: "${{ needs.prepare.outputs.charts-to-release }}" + charts: "${{ needs.prepare.outputs.libraryChartsToRelease }}" 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 diff --git a/.github/workflows/pr-metadata.yaml b/.github/workflows/pr-metadata.yaml index 2f566f96..c204ab22 100644 --- a/.github/workflows/pr-metadata.yaml +++ b/.github/workflows/pr-metadata.yaml @@ -22,6 +22,8 @@ on: value: ${{ jobs.pr-changes.outputs.chartsToLint }} chartsToInstall: value: ${{ jobs.pr-changes.outputs.chartsToInstall }} + commonLibraryUpdated: + value: ${{ contains(fromJSON(jobs.pr-changes.outputs.addedOrModifiedCharts), 'library/common') }} jobs: pr-metadata: @@ -55,6 +57,8 @@ jobs: addedOrModifiedFilesDetected: ${{ steps.changed-files.outputs.allAddedOrModified }} addedOrModifiedFiles: ${{ steps.changed-files.outputs.allAddedOrModified_files }} addedOrModifiedCharts: ${{ steps.changed-charts.outputs.charts }} + addedOrModifiedLibraryCharts: ${{ steps.changed-charts.outputs.chartsLibrary }} + addedOrModifiedApplicationCharts: ${{ steps.changed-charts.outputs.chartsApplication }} chartsToLint: ${{ steps.changed-charts.outputs.chartsToLint }} chartsToInstall: ${{ steps.changed-charts.outputs.chartsToInstall }} steps: diff --git a/.github/workflows/pr-validate.yaml b/.github/workflows/pr-validate.yaml index 0858aa06..b3c03493 100644 --- a/.github/workflows/pr-validate.yaml +++ b/.github/workflows/pr-validate.yaml @@ -35,16 +35,15 @@ jobs: checkoutCommit: ${{ github.sha }} chartsToLint: ${{ needs.pr-metadata.outputs.chartsToLint }} isRenovatePR: ${{ needs.pr-metadata.outputs.isRenovatePR }} + overrideDeps: |- + ${{ + ( + needs.pr-metadata.outputs.commonLibraryUpdated && + '[{"name": "common", "repository": "file://../../library/common", "version": "*"}]' + ) || '[]' + }} 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 needs: - pr-metadata @@ -52,12 +51,15 @@ jobs: checkoutCommit: ${{ github.sha }} chartsToTest: |- ${{ - ( - contains(fromJSON(needs.pr-metadata.outputs.addedOrModifiedCharts), 'library/common') && - '["other/app-template"]' - ) || '[]' - }} + ( + needs.pr-metadata.outputs.commonLibraryUpdated && + '["other/app-template"]' + ) || needs.pr-metadata.outputs.chartsToInstall + }} overrideDeps: |- - [ - {"name": "common", "repository": "file://../../library/common", "version": "*"} - ] + ${{ + ( + needs.pr-metadata.outputs.commonLibraryUpdated && + '[{"name": "common", "repository": "file://../../library/common", "version": "*"}]' + ) || '[]' + }} diff --git a/charts/library/common/Chart.yaml b/charts/library/common/Chart.yaml index 1d8e2da7..0c11cb32 100644 --- a/charts/library/common/Chart.yaml +++ b/charts/library/common/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: common description: Function library for Helm charts type: library -version: 0.2.1 +version: 0.2.2 kubeVersion: ">=1.16.0-0" keywords: - common @@ -14,16 +14,6 @@ maintainers: annotations: artifacthub.io/changes: |- - kind: fixed - description: Make sure service.monitor is optional. - - kind: removed - description: BREAKING - Removed support for the `openvpn` and `wireguard` VPN types. - - kind: added - description: Added support for adding serviceMonitors to services. + description: Fix deprecation warning on unsupported vpn types. - kind: changed - description: ConfigMap checksum logic now only looks at ConfigMap data - - 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 + description: Updated code-server image to v4.7.1 diff --git a/charts/library/common/templates/addons/vpn/_vpn.tpl b/charts/library/common/templates/addons/vpn/_vpn.tpl index 1cebf5e5..1c662baf 100644 --- a/charts/library/common/templates/addons/vpn/_vpn.tpl +++ b/charts/library/common/templates/addons/vpn/_vpn.tpl @@ -5,11 +5,11 @@ It will include / inject the required templates based on the given values. {{- define "common.addon.vpn" -}} {{- if .Values.addons.vpn.enabled -}} {{- 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 -}} {{- 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 -}} {{- if eq "gluetun" .Values.addons.vpn.type -}} diff --git a/charts/library/common/values.yaml b/charts/library/common/values.yaml index 868f6720..115a4d42 100644 --- a/charts/library/common/values.yaml +++ b/charts/library/common/values.yaml @@ -604,7 +604,7 @@ addons: # -- Specify the code-server image repository: ghcr.io/coder/code-server # -- Specify the code-server image tag - tag: 4.7.0 + tag: 4.7.1 # -- Specify the code-server image pull policy pullPolicy: IfNotPresent diff --git a/charts/other/app-template/Chart.yaml b/charts/other/app-template/Chart.yaml index b875a630..601ad44b 100644 --- a/charts/other/app-template/Chart.yaml +++ b/charts/other/app-template/Chart.yaml @@ -2,19 +2,19 @@ apiVersion: v2 description: A common powered chart template. This can be useful for small projects that don't have their own chart. name: app-template -version: 0.2.1 +version: 0.2.2 maintainers: - name: bjw-s email: me@bjw-s.dev dependencies: - name: common repository: https://bjw-s.github.io/helm-charts - version: 0.2.1 + version: 0.2.2 annotations: artifacthub.io/changes: |- - kind: changed description: | - Updated library version to 0.2.1 (**BREAKING** when coming from < 0.2.0). + Updated library version to 0.2.2. links: - name: Common library chart definition url: https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/Chart.yaml diff --git a/charts/other/app-template/tests/configmap/metadata_test.yaml b/charts/other/app-template/tests/configmap/metadata_test.yaml index 5513961f..7f7cebb2 100644 --- a/charts/other/app-template/tests/configmap/metadata_test.yaml +++ b/charts/other/app-template/tests/configmap/metadata_test.yaml @@ -21,7 +21,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 set: @@ -48,7 +48,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 - it: custom metadata with global metadata should pass @@ -83,5 +83,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-0.2.0 + helm.sh/chart: app-template-0.2.2 test_label: test diff --git a/charts/other/app-template/tests/controller/metadata_daemonset_test.yaml b/charts/other/app-template/tests/controller/metadata_daemonset_test.yaml index 36b9bc82..a3d20ace 100644 --- a/charts/other/app-template/tests/controller/metadata_daemonset_test.yaml +++ b/charts/other/app-template/tests/controller/metadata_daemonset_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-0.2.0 + helm.sh/chart: app-template-0.2.2 test_label: test diff --git a/charts/other/app-template/tests/controller/metadata_deployment_test.yaml b/charts/other/app-template/tests/controller/metadata_deployment_test.yaml index 18470c60..ab1dc261 100644 --- a/charts/other/app-template/tests/controller/metadata_deployment_test.yaml +++ b/charts/other/app-template/tests/controller/metadata_deployment_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-0.2.0 + helm.sh/chart: app-template-0.2.2 test_label: test diff --git a/charts/other/app-template/tests/controller/metadata_statefulset_test.yaml b/charts/other/app-template/tests/controller/metadata_statefulset_test.yaml index b70dcb97..7e2eb66e 100644 --- a/charts/other/app-template/tests/controller/metadata_statefulset_test.yaml +++ b/charts/other/app-template/tests/controller/metadata_statefulset_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-0.2.0 + helm.sh/chart: app-template-0.2.2 test_label: test diff --git a/charts/other/app-template/tests/ingress/metadata_test.yaml b/charts/other/app-template/tests/ingress/metadata_test.yaml index 06ead2f3..4b84b872 100644 --- a/charts/other/app-template/tests/ingress/metadata_test.yaml +++ b/charts/other/app-template/tests/ingress/metadata_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 - it: custom metadata with global metadata should pass @@ -79,5 +79,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-0.2.0 + helm.sh/chart: app-template-0.2.2 test_label: test diff --git a/charts/other/app-template/tests/pvc/metadata_test.yaml b/charts/other/app-template/tests/pvc/metadata_test.yaml index dc8ab371..6d386895 100644 --- a/charts/other/app-template/tests/pvc/metadata_test.yaml +++ b/charts/other/app-template/tests/pvc/metadata_test.yaml @@ -19,7 +19,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 set: @@ -42,7 +42,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 set: @@ -68,7 +68,7 @@ tests: app.kubernetes.io/instance: RELEASE-NAME app.kubernetes.io/managed-by: Helm 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 - it: custom metadata with global metadata should pass @@ -102,5 +102,5 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: RELEASE-NAME global_label: test - helm.sh/chart: app-template-0.2.0 + helm.sh/chart: app-template-0.2.2 test_label: test diff --git a/charts/other/app-template/tests/service/metadata_test.yaml b/charts/other/app-template/tests/service/metadata_test.yaml index 189940fa..b5ca163a 100644 --- a/charts/other/app-template/tests/service/metadata_test.yaml +++ b/charts/other/app-template/tests/service/metadata_test.yaml @@ -18,7 +18,7 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: 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 set: @@ -45,7 +45,7 @@ tests: app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: 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 - it: custom metadata with global metadata should pass @@ -80,5 +80,5 @@ tests: app.kubernetes.io/name: RELEASE-NAME app.kubernetes.io/service: RELEASE-NAME global_label: test - helm.sh/chart: app-template-0.2.0 + helm.sh/chart: app-template-0.2.2 test_label: test