diff --git a/.github/testing/config.yml b/.github/testing/config.yml new file mode 100644 index 00000000..e332cf35 --- /dev/null +++ b/.github/testing/config.yml @@ -0,0 +1,7 @@ +DRYDOCK_INIT_JOBS: true +K8S_NAMESPACE: testing-openedx +PLUGINS: +- forum +- mfe +- minio +- drydock diff --git a/.github/testing/requirements.txt b/.github/testing/requirements.txt new file mode 100644 index 00000000..a5dd1f54 --- /dev/null +++ b/.github/testing/requirements.txt @@ -0,0 +1 @@ +tutor[full]<18 diff --git a/.github/workflows/validation.yaml b/.github/workflows/validation.yaml new file mode 100644 index 00000000..9235403e --- /dev/null +++ b/.github/workflows/validation.yaml @@ -0,0 +1,38 @@ +name: Kubernetes Validation + +on: + pull_request: + branches: + - main + + +env: + TUTOR_ROOT: ./.github/testing + +jobs: + validation: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: setup python + uses: actions/setup-python@v5 + with: + python-version: 3.12 + - name: Install python reqs + run: | + pip install -r ./.github/testing/requirements.txt + pip install -e . + tutor plugins list + - name: Tutor config save + run: tutor config save + - name: Run Kubernetes tools + uses: alexellis/arkade-get@master + with: + kubectl: latest + kustomize: latest + helm: latest + kubeconform: latest + - name: Check k8s manifests + run: | + kustomize build $TUTOR_ROOT/env | kubeconform -strict -ignore-missing-schemas -kubernetes-version latest