60 lines
2.7 KiB
YAML
60 lines
2.7 KiB
YAML
name: Run tests
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
types: [opened, synchronize, ready_for_review, reopened]
|
|
branches:
|
|
- master
|
|
jobs:
|
|
run-tests:
|
|
if: github.event.pull_request.draft == false
|
|
name: Run automated tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up env vars
|
|
run: |
|
|
echo "GO111MODULE=on" >> $GITHUB_ENV
|
|
echo "CHANGE_MINIKUBE_NONE_USER=true" >> $GITHUB_ENV
|
|
echo "MINIKUBE_WANTUPDATENOTIFICATION=false" >> $GITHUB_ENV
|
|
echo "MINIKUBE_WANTREPORTERRORPROMPT=false" >> $GITHUB_ENV
|
|
echo "GO_VERSION=v$(sed -n 's/GO_VERSION=//p' config.base.env)" >> $GITHUB_ENV
|
|
echo "MINIKUBE_VERSION=v$(sed -n 's/MINIKUBE_VERSION=//p' config.minikube.env)" >> $GITHUB_ENV
|
|
echo "OPERATOR_SDK_VERSION=v$(sed -n 's/OPERATOR_SDK_VERSION=//p' config.base.env)" >> $GITHUB_ENV
|
|
echo "MINIKUBE_KUBERNETES_VERSION=$(sed -n 's/MINIKUBE_KUBERNETES_VERSION=//p' config.minikube.env)" >> $GITHUB_ENV
|
|
echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env)" >> $GITHUB_ENV
|
|
echo "GOPATH=/home/runner/go" >> $GITHUB_ENV
|
|
|
|
- name: Prepare go environment
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
|
|
- name: Ensure Golang runtime dependencies
|
|
run: make go-dependencies
|
|
|
|
- name: Verify code formatting
|
|
run: make verify
|
|
|
|
- name: Prepare environment for e2e
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install socat
|
|
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$MINIKUBE_KUBERNETES_VERSION/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
|
|
curl -Lo minikube https://storage.googleapis.com/minikube/releases/$MINIKUBE_VERSION/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
|
|
curl -Lo operator-sdk https://github.com/operator-framework/operator-sdk/releases/download/$OPERATOR_SDK_VERSION/operator-sdk-$OPERATOR_SDK_VERSION-x86_64-linux-gnu && chmod +x operator-sdk && sudo mv operator-sdk /usr/local/bin/
|
|
curl -Lo helm.tar.gz https://get.helm.sh/helm-$HELM_VERSION-linux-amd64.tar.gz && tar xzfv helm.tar.gz && sudo mv linux-amd64/helm /usr/local/bin/
|
|
sudo mkdir -p $HOME/.kube $HOME/.minikube
|
|
touch KUBECONFIG
|
|
sudo minikube start --vm-driver=none --kubernetes-version=$MINIKUBE_KUBERNETES_VERSION
|
|
sudo chown -R $USER $HOME/.kube $HOME/.minikube
|
|
|
|
- name: Jenkins Operator - e2e
|
|
run: make build e2e
|
|
|
|
- name: Jenkins Operator Helm Chart - e2e
|
|
run: make e2e BUILDTAGS=Helm E2E_TEST_SELECTOR='^.*Helm.*$' |