WIP: D2iQ Build Environment Updates. #16
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
# workflow name | |
name: CI | |
# on events | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
release: | |
types: | |
- created | |
env: | |
KUBERNETES_VERSION: v1.27.6 | |
# jobs to run | |
jobs: | |
build: | |
runs-on: | |
- self-hosted | |
- large-cgv2 | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
# - name: Login to GHCR | |
# uses: docker/login-action@v3 | |
# with: | |
# registry: ghcr.io | |
# username: ${{ github.repository_owner }} | |
# password: ${{ secrets.GITHUB_TOKEN }}` | |
- name: Set up Go 1.21 | |
uses: actions/setup-go@v2 | |
with: | |
go-version: "1.21" | |
id: go | |
- name: Set up Go for root | |
run: | | |
sudo ln -sf `which go` `sudo which go` || true | |
sudo go version | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v2 | |
- name: get go version | |
run: go version | |
- name: install utilites | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y build-essential conntrack | |
- name: Gofmt and License checks | |
run: make check | |
- name: unit tests | |
run: make test | |
- name: build crds & images | |
run: make build | |
- name: install kubectl | |
uses: azure/setup-kubectl@v3 | |
with: | |
version: '${{ env.KUBERNETES_VERSION }}' | |
- name: minikube setup | |
uses: medyagh/setup-minikube@latest | |
with: | |
driver: docker | |
container-runtime: containerd | |
kubernetes-version: ${{ env.KUBERNETES_VERSION }} | |
wait: all | |
- name: verify minikube | |
run: | | |
which minikube | |
minikube version | |
minikube profile list | |
kubectl get pods -A -o wide | |
- name: setup e2e environment | |
run: | | |
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default | |
kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v1/ --docker-username="testanisha" --docker-password="123456789" [email protected] | |
# - uses: docker/setup-buildx-action@v3 | |
# - name: Codecov | |
# uses: codecov/[email protected] | |
# - name: Set env | |
# run: | | |
# echo "KUBERNETES_VERSION=v1.23.1" >> $GITHUB_ENV | |
# echo "MINIKUBE_VERSION=v1.25.2" >> $GITHUB_ENV | |
# echo "KUBERNETES_CONFIG_FILE=$HOME/.kube/config" >> $GITHUB_ENV | |
# echo "CHANGE_MINIKUBE_NONE_USER=true" >> $GITHUB_ENV | |
# - name: minikube setup | |
# run: | | |
# curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$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/ | |
# CHANGE_MINIKUBE_NONE_USER=true | |
# export KUBERNETES_CONFIG_FILE=$HOME/.kube/config | |
# export KUBERNETES_CONFIG_FILE=$HOME/.kube/config;export CHANGE_MINIKUBE_NONE_USER=true;sudo minikube start --vm-driver=none --bootstrapper=kubeadm --kubernetes-version=$KUBERNETES_VERSION | |
# echo "minikube started, updating context" | |
# export KUBERNETES_CONFIG_FILE=$HOME/.kube/config;export CHANGE_MINIKUBE_NONE_USER=true; sudo minikube update-context | |
# echo "context is updated" | |
# #JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1; done | |
# sleep 60 | |
# sudo kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default | |
# echo "created cluster role" | |
# sudo kubectl cluster-info | |
# echo "cluster info" | |
# sudo kubectl -n kube-system get pod -o wide | |
# sudo kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v1/ --docker-username="testanisha" --docker-password="123456789" [email protected] | |
- name: E2E | |
run: make test-e2e | |
publish: | |
name: Publish docker image | |
runs-on: | |
- self-hosted | |
- large-cgv2 | |
needs: build | |
if: github.event_name == 'release' && github.event.action == 'created' | |
steps: | |
- name: Pushing docker images | |
run: sudo make push | |
- name: Uploading binary files | |
uses: actions/upload-artifact@v2 | |
with: | |
name: zookeeper-exporter | |
path: bin/zookeeper-exporter* |