Skip to content

Run pipeline on PRs (#43) #72

Run pipeline on PRs (#43)

Run pipeline on PRs (#43) #72

name: Helm
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
HELM_VERSION: v3.12.1
PYTHON_VERSION: 3.9
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v3
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: ${{ env.HELM_VERSION }}
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
check-latest: true
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (lint)
run: ct lint --target-branch main --validate-maintainers=false
test-values:
needs: lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Run the test
run: |
cd charts/db-operator
./scripts/test_values -p ./ci/unit-test
test:
needs: test-values
runs-on: ubuntu-latest
strategy:
matrix:
k8s_version:
- v1.22.15
- v1.23.17
- v1.24.15
- v1.25.11
- v1.26.6
- v1.27.3
- v1.28.0
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v3
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: ${{ env.HELM_VERSION }}
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
check-latest: true
- name: Set up chart-testing
uses: helm/[email protected]
# It's not used anymore, but it's a small step, maybe we'll need it in the future, so let it be here
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Setup helmfile
uses: mamezou-tech/[email protected]
- name: Prepare a config for the kind cluster
run: |
cat > kind-config.yaml <<EOF
# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
EOF
- name: Create kind cluster
uses: helm/[email protected]
with:
node_image: kindest/node:${{ matrix.k8s_version }}
config: ./kind-config.yaml
- name: Test db-operator charts install
run: |
helmfile -l name=prometheus-stack sync
helmfile sync
ct install --target-branch main --charts ./charts/db-operator
helmfile destroy
# -- TODO: Enable it when new tests are used in main
# - name: Test db-operator charts upgrade
# run: make test-upgrade
- name: Test db-instances charts install
run: |
helmfile -l name=prometheus-stack sync
helmfile sync -e instances
kubectl rollout status deploy/db-operator -n db-operator
kubectl rollout status deploy/db-operator-webhook -n db-operator
ct install --target-branch main --charts ./charts/db-instances
helmfile destroy
# -- TODO: Enable it when new tests are used in main
# - name: Test db-instances charts upgrade
# run: make test-upgrade-instances
release:
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Install Helm
uses: azure/setup-helm@v3
with:
version: v3.9.4
- name: Run chart-releaser
uses: helm/[email protected]
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"