diff --git a/.github/actions/prepare-k8s/action.yaml b/.github/actions/prepare-k8s/action.yaml new file mode 100644 index 00000000..4c80097c --- /dev/null +++ b/.github/actions/prepare-k8s/action.yaml @@ -0,0 +1,51 @@ +name: Prepare K8s for Helm tests +runs: + using: "composite" + steps: + - name: Set up Helm + uses: azure/setup-helm@v4 + with: + version: v3.14.4 + + # Python is required because `ct lint` runs Yamale (https://github.com/23andMe/Yamale) and + # yamllint (https://github.com/adrienverge/yamllint) which require Python + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.7 + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.6.1 + with: + version: v3.10.1 + + - name: Create kind cluster + uses: helm/kind-action@v1.9.0 + + - name: Install kubectl + uses: azure/setup-kubectl@v4.0.0 + with: + version: 'v1.28.8' + id: install + + - name: Set up cert-manager + shell: bash + run: | + kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml --namespace ingress-nginx + kubectl label node --all ingress-ready=true + kubectl describe pod --selector=app.kubernetes.io/component=controller -n ingress-nginx + kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=5m + kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml + + - name: Set up cmctl + shell: bash + run: | + curl -sSL -o cmctl.tar.gz https://github.com/cert-manager/cert-manager/releases/download/v1.6.1/cmctl-linux-amd64.tar.gz + tar xzf cmctl.tar.gz + sudo mv cmctl /usr/local/bin + cmctl version + + - name: Check if cert-manager is up + shell: bash + run: | + cmctl check api --wait=5m diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index 5b00b5be..a4014005 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -3,11 +3,10 @@ name: Lint and Test Charts on: pull_request jobs: - lint-test: + lint: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v2 + - uses: actions/checkout@v2 with: fetch-depth: 0 @@ -39,34 +38,14 @@ jobs: - name: Run chart-testing (lint) run: ct lint --config ct.yaml - - name: Create kind cluster - uses: helm/kind-action@v1.9.0 - if: steps.list-changed.outputs.changed == 'true' - - - name: Install kubectl - uses: azure/setup-kubectl@v4.0.0 + test-with-cassandra: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 with: - version: 'v1.28.8' - id: install - - - name: Set up cert-manager - run: | - kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml --namespace ingress-nginx - kubectl label node --all ingress-ready=true - kubectl describe pod --selector=app.kubernetes.io/component=controller -n ingress-nginx - kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=5m - kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.6.1/cert-manager.yaml - - - name: Set up cmctl - run: | - curl -sSL -o cmctl.tar.gz https://github.com/cert-manager/cert-manager/releases/download/v1.6.1/cmctl-linux-amd64.tar.gz - tar xzf cmctl.tar.gz - sudo mv cmctl /usr/local/bin - cmctl version + fetch-depth: 0 - - name: Check if cert-manager is up - run: | - cmctl check api --wait=5m + - uses: ./.github/actions/prepare-k8s - name: Run chart-testing (install) run: ct install --config ct.yaml