Skip to content

E2E Weekly

E2E Weekly #109

Workflow file for this run

name: E2E Weekly
on:
workflow_dispatch: # Allow manual runs
schedule:
- cron: '35 16 * * 1' # 16:35 UTC, weekly on Monday
jobs:
build:
name: Build latest binary
runs-on: ubuntu-latest
steps:
- name: setup go
uses: actions/setup-go@v5
with:
go-version: 1.20.x
- name: checkout source
uses: actions/checkout@v4
- name: build
run: make build
- name: upload build
uses: actions/upload-artifact@v4
with:
name: konstraint
path: build/konstraint
e2e-prep:
name: Prep for End-to-end Tests
runs-on: ubuntu-latest
needs:
- build
steps:
- name: checkout source
uses: actions/checkout@v4
- name: fetch gatekeeper versions
id: fetch-gk-versions
working-directory: .github/scripts
run: echo "gk-versions=$(./fetch_gk_versions.sh)" >> $GITHUB_OUTPUT
outputs:
gk-versions: ${{ steps.fetch-gk-versions.outputs.gk-versions }}
e2e:
name: End-to-end Tests
runs-on: ubuntu-latest
needs:
- e2e-prep
strategy:
matrix:
gk-version: ${{ fromJson(needs.e2e-prep.outputs.gk-versions) }}
steps:
- name: checkout source
uses: actions/checkout@v4
- name: download build
uses: actions/download-artifact@v4
with:
name: konstraint
- name: generate resources
run: |
chmod +x ./konstraint
./konstraint create -o e2e-resources examples
./konstraint create -o e2e-resources test
- name: create kind cluster
run: kind create cluster
- name: install gatekeeper
env:
GK_VERSION: ${{ matrix.gk-version }}
run: |
helm repo add gk https://open-policy-agent.github.io/gatekeeper/charts
kubectl create ns gatekeeper-system
helm install gatekeeper gk/gatekeeper -n gatekeeper-system --set replicas=1 --version ${GK_VERSION} --set psp.enabled=false
- name: apply resources
working-directory: e2e-resources
run: |
for ct in $(ls template*); do kubectl apply -f $ct; done
sleep 60 # gatekeeper takes some time to create the CRDs
for c in $(ls constraint*); do kubectl apply -f $c; done