Skip to content

WIP: D2iQ Build Environment Updates. #30

WIP: D2iQ Build Environment Updates.

WIP: D2iQ Build Environment Updates. #30

Workflow file for this run

# 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: crictl setup
run: |
export OS=xUbuntu_22.04
export CRIO_VERSION=1.25
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /"| sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$CRIO_VERSION/$OS/ /"|sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$CRIO_VERSION.list
curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$CRIO_VERSION/$OS/Release.key | sudo apt-key add -
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install cri-tools -y
- 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*