From 2e7f1554e6b41913b46bf0db87815521209315c6 Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Thu, 7 Dec 2023 11:41:09 +0100 Subject: [PATCH] ci: update --- .forgejo/workflows/build.yml | 145 +++++++++++++++++++++++++---------- .vscode/settings.json | 4 + renovate.json | 10 +++ 3 files changed, 119 insertions(+), 40 deletions(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 20d7c3c..e30bf2b 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -51,31 +51,24 @@ jobs: - name: install deps run: | apt-get update -qq - apt-get -q install -qq make python3 python3-pip + apt-get -q install -qq make python3 - - run: pip3 install yamllint yamale - - - name: install helm ${{ env.HELM_VERSION }} - run: | - curl -LO "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" - tar --strip 1 -C "/usr/local/bin" -xf "helm-${HELM_VERSION}-linux-amd64.tar.gz" linux-amd64/helm - rm "helm-${HELM_VERSION}-linux-amd64.tar.gz" - helm --version - - - name: install chart-testing ${{ env.HELM_CHART_TESTING_VERSION }} - run: | - curl -LO "https://github.com/helm/chart-testing/releases/download/${HELM_CHART_TESTING_VERSION}/chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" - tar -C "/usr/local/bin" -xf "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" ct - mkdir /etc/ct - tar --strip 1 -C "/etc/ct" -xf "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" etc/chart_schema.yaml etc/lintconf.yaml - rm "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" - ct --version + - name: install helm + uses: github.com/azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5 + with: + version: v3.13.2 # renovate: datasource=github-releases depName=helm packageName=helm/helm - run: helm plugin install --version ${{ env.HELM_UNITTEST_VERSION }} https://github.com/helm-unittest/helm-unittest + - name: install chart-testing + uses: github.com/helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 + with: + version: v3.10.1 # renovate: datasource=github-releases depName=chart-testing packageName=helm/chart-testing + - uses: actions/checkout@v4 with: show-progress: false + fetch-depth: 0 - run: helm dependency build @@ -87,38 +80,110 @@ jobs: e2e: runs-on: self-hosted + + strategy: + matrix: + k8s: + # from https://hub.docker.com/r/kindest/node/tags + # - v1.25.3 # renovate: kindest + - v1.28.0 # renovate: kindest + steps: - run: cat /etc/os-release - name: install deps run: | apt-get update -qq - apt-get -q install -qq make python3 python3-pip - - - run: pip3 install yamllint yamale - - - name: install kind ${{ env.KIND_VERSION }} + apt-get -q install -qq \ + ca-certificates \ + curl \ + gnupg \ + make \ + python3 \ + python3-pip \ + ; + - name: install docker run: | - curl -Lo /usr/local/bin/kind "https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-linux-amd64" - chmod +x /usr/local/bin/kind - kind --version + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + chmod a+r /etc/apt/keyrings/docker.gpg + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update -qq + apt-get -q install -qq \ + docker-ce \ + docker-ce-cli \ + containerd.io \ + ; - - name: install helm ${{ env.HELM_VERSION }} - run: | - curl -LO "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" - tar --strip 1 -C "/usr/local/bin" -xf "helm-${HELM_VERSION}-linux-amd64.tar.gz" linux-amd64/helm - rm "helm-${HELM_VERSION}-linux-amd64.tar.gz" - helm --version + # - run: pip3 install yamllint yamale - - name: install chart-testing ${{ env.HELM_CHART_TESTING_VERSION }} - run: | - curl -LO "https://github.com/helm/chart-testing/releases/download/${HELM_CHART_TESTING_VERSION}/chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" - tar -C "/usr/local/bin" -xf "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" ct - mkdir /etc/ct - tar --strip 1 -C "/etc/ct" -xf "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" etc - rm "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" - ct --version + # - name: install kind ${{ env.KIND_VERSION }} + # run: | + # curl -Lo /usr/local/bin/kind "https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-linux-amd64" + # chmod +x /usr/local/bin/kind + # kind --version + + # - name: install helm ${{ env.HELM_VERSION }} + # run: | + # curl -LO "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" + # tar --strip 1 -C "/usr/local/bin" -xf "helm-${HELM_VERSION}-linux-amd64.tar.gz" linux-amd64/helm + # rm "helm-${HELM_VERSION}-linux-amd64.tar.gz" + # helm --version + + # - name: install chart-testing ${{ env.HELM_CHART_TESTING_VERSION }} + # run: | + # curl -LO "https://github.com/helm/chart-testing/releases/download/${HELM_CHART_TESTING_VERSION}/chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" + # tar -C "/usr/local/bin" -xf "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" ct + # mkdir /etc/ct + # tar --strip 1 -C "/etc/ct" -xf "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" etc + # rm "chart-testing_${HELM_CHART_TESTING_VERSION#v}_linux_amd64.tar.gz" + # ct --version - uses: actions/checkout@v4 with: show-progress: false + fetch-depth: 0 + + - run: docker info + + - name: Create kind ${{ matrix.k8s }} cluster + uses: github.com/helm/kind-action@dda0770415bac9fc20092cacbc54aa298604d140 # v1.8.0 + with: + node_image: kindest/node:${{ matrix.k8s }} + version: v0.20.0 # renovate: datasource=github-releases depName=kind packageName=kubernetes-sigs/kind + + - run: kubectl get no -o wide + + - name: Install chart-testing + uses: github.com/helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 + with: + version: v3.10.1 # renovate: datasource=github-releases depName=chart-testing packageName=helm/chart-testing + + # Catch-all required check for test matrix + test-success: + needs: + - node-lint + - helm-lint + - e2e + runs-on: self-hosted + timeout-minutes: 1 + if: always() + steps: + - name: Fail for failed or cancelled node-lint + if: | + needs.node-lint.result == 'failure' || + needs.node-lint.result == 'cancelled' + run: exit 1 + - name: Fail for failed or cancelled helm-lint + if: | + needs.helm-lint.result == 'failure' || + needs.helm-lint.result == 'cancelled' + run: exit 1 + - name: Fail for failed or cancelled e2e + if: | + needs.e2e.result == 'failure' || + needs.e2e.result == 'cancelled' + run: exit 1 diff --git a/.vscode/settings.json b/.vscode/settings.json index 93bb0e3..2133edb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,9 @@ { "yaml.schemas": { + "https://json.schemastore.org/github-workflow.json": [ + ".github/workflows/*", + ".forgejo/workflows/*" + ], "https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.3.6/schema/helm-testsuite.json": [ "/unittests/**/*.yaml" ] diff --git a/renovate.json b/renovate.json index a2ed136..8889b3c 100644 --- a/renovate.json +++ b/renovate.json @@ -69,6 +69,16 @@ "https:\\/\\/raw\\.githubusercontent\\.com\\/(?[^\\s]+?)\\/(?v[0-9.]+?)\\/schema\\/helm-testsuite\\.json" ], "datasourceTemplate": "github-releases" + }, + { + "customType": "regex", + "description": "Update kindest kubernetes references", + "fileMatch": ["^\\.forgejo\\/workflows\\/[^/]+\\.ya?ml$"], + "matchStrings": [ + " +- (?v\\d+\\.\\d+\\.\\d+) # renovate: kindest\\n" + ], + "depNameTemplate": "kindest/node", + "datasourceTemplate": "docker" } ] }