Skip to content

WIP: D2iQ Build Environment Updates. #28

WIP: D2iQ Build Environment Updates.

WIP: D2iQ Build Environment Updates. #28

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.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/
# 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*