chore(deps): update actions/checkout action to v4 #271
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Lint and test PR | |
on: pull_request | |
jobs: | |
chart-lint: | |
name: Lint Helm charts | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install helm/chart-testing | |
uses: helm/[email protected] | |
- name: Lint charts | |
run: ct --config .github/ct.yaml lint --all | |
chart-unittest: | |
name: Unit test Helm charts | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install helm-unittest plugin | |
run: helm plugin install https://github.com/helm-unittest/helm-unittest | |
- name: Run unit tests | |
run: | | |
for chart in charts/*; do | |
if [ -d "$chart/tests/" ]; then | |
helm unittest $chart -3 | |
else | |
echo "::warning file=$chart,title=Skipping unit test for $chart::$chart does not have a tests/ folder" | |
fi | |
done | |
chart-install: | |
name: Installation test for Helm charts | |
runs-on: ubuntu-latest | |
needs: | |
# This test is expensive so only run it when cheap tests pass: | |
- chart-lint | |
- chart-unittest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
# Install Minikube to test chart installation | |
- name: Install Minikube | |
uses: manusa/[email protected] | |
with: | |
minikube version: v1.31.0 | |
kubernetes version: v1.27.4 | |
github token: ${{ secrets.GITHUB_TOKEN }} | |
driver: docker | |
start args: "--container-runtime=containerd" | |
# Test chart installation | |
- name: Install helm/chart-testing | |
uses: helm/[email protected] | |
- name: Test charts' installation path | |
run: | | |
ct install --all \ | |
--config .github/ct.yaml \ | |
--helm-extra-args "--timeout 1m" | |
# Install charts with the e2e values (tested also in lint-charts job) | |
- name: Installing charts being tested | |
run: | | |
for CHART in charts/*; do | |
if [ -f "$CHART/ci/e2e-values.yaml" ]; then | |
helm upgrade --install \ | |
"$(basename $CHART)" "$CHART" \ | |
--create-namespace --namespace e2e-staless-dns \ | |
--values "$CHART/ci/e2e-values.yaml" \ | |
--wait --timeout 60s | |
fi | |
done | |
- name: Configure testing scenarios | |
run: | | |
helm upgrade --install \ | |
test-chart "testing/chart" \ | |
--create-namespace --namespace e2e-staless-dns \ | |
--wait --timeout 60s | |
# In this first iteration, readineess probes may not be reliable. | |
- name: Wait 5 seconds for everything to settle | |
run: sleep 5 | |
# Begin e2e test. | |
- name: Testing e2e | |
run: | | |
IP=$(minikube ip) | |
errors=0 | |
for TEST in testing/*.sh; do | |
echo "Running tests for $(basename $TEST)" | |
bash "$TEST" $IP || ((errors++)) | |
done | |
exit $errors |