WIP: D2iQ Build Environment Updates. #29
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: | |
MINIKUBE_VERSION: 1.25.2 | |
KUBERNETES_VERSION: v1.23.1 | |
CHANGE_MINIKUBE_NONE_USER: true | |
# jobs to run | |
jobs: | |
build: | |
runs-on: | |
- ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- 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: Gofmt and License checks | |
run: make check | |
- name: unit tests | |
run: make test | |
#------------------------------------------ | |
# - name: Login to GHCR | |
# uses: docker/login-action@v3 | |
# with: | |
# registry: ghcr.io | |
# username: ${{ github.repository_owner }} | |
# password: ${{ secrets.GITHUB_TOKEN }}` | |
# - name: install utilites | |
# run: | | |
# sudo mount --make-rshared / | |
# sudo apt-get update | |
# sudo apt-get install -y build-essential conntrack | |
# - name: install kubectl | |
# uses: azure/setup-kubectl@v3 | |
# with: | |
# version: '${{ env.KUBERNETES_VERSION }}' | |
# - name: minikube setup | |
# uses: medyagh/setup-minikube@latest | |
# with: | |
# driver: none | |
# container-runtime: docker | |
# kubernetes-version: ${{ env.KUBERNETES_VERSION }} | |
# minikube-version: ${{ env.MINIKUBE_VERSION }} | |
# wait: all | |
# - name: verify minikube | |
# run: | | |
# which minikube | |
# minikube version | |
# minikube update-context | |
# 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] | |
# - name: E2E | |
# run: sudo make test-e2e | |
#------------------------------------------ | |
# This fails | |
# - name: Codecov | |
# uses: codecov/[email protected] | |
#------------------------------------------ | |
# This is now working.... | |
- name: Set env | |
run: | | |
echo "KUBERNETES_VERSION=v1.27.6" >> $GITHUB_ENV | |
echo "MINIKUBE_VERSION=v1.32.0" >> $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/ | |
sudo mount --make-rshared / | |
sudo apt-get install -y conntrack | |
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: sudo 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* |