Skip to content

working on CI jobs

working on CI jobs #1

Workflow file for this run

name: Build and Deploy
on: [push, pull_request]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: |
curl -sLo kind "$(curl -sL https://github.com/gitapi/repos/kubernetes-sigs/kind/releases/latest | jq -r '[.assets[] | select(.name == "kind-linux-amd64")] | first | .browser_download_url')"
chmod +x kind
sudo mv kind /bin/
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /bin/
sudo apt-get update
sudo apt-get install -y docker.io
- name: Build Docker image
run: |
sudo -E docker build -t checkpoint-restore-operator:ci .
# sudo -E docker tag checkpoint-restore-operator:ci docker.io/remontada007/checkpoint-restore-operator:v2
# - name: Log in to Docker Hub
# uses: docker/login-action@v1
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
# - name: Push Docker image to Docker Hub
# run: sudo -E docker push docker.io/remontada007/checkpoint-restore-operator:v2
- name: Create Kubernetes cluster
run: |
kind create cluster
kind export kubeconfig
- name: Apply CRDs
run: |
kubectl apply -f deploy/upstream/quickstart/crds.yaml
- name: Wait for CRDs to be established
run: |
kubectl wait --timeout=5m --for=condition=Established crd $(kubectl get crd --output=jsonpath='{.items[*].metadata.name}')
- name: Deploy to Kubernetes
run: |
make deploy IMG=checkpoint-restore-operator:ci
# /home/ubuntu/checkpoint-restore-operator/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
# cd config/manager && /home/ubuntu/checkpoint-restore-operator/bin/kustomize edit set image controller=docker.io/remontada007/checkpoint-restore-operator:v2
# /home/ubuntu/checkpoint-restore-operator/bin/kustomize build config/default | kubectl apply -f -
- name: Wait for deployments to be ready
run: |
wait_for_deployment() {
local deployment_name=$1
timeout=60
i=1
echo "Checking if the ${deployment_name} deployment is ready"
until kubectl -n checkpoint-restore-operator-system get deployment ${deployment_name} -o jsonpath='{.status.conditions[?(@.status=="True")].type}' | grep "Available" 2>/dev/null; do
((i++))
if [[ ${i} -gt ${timeout} ]]; then
echo "the ${deployment_name} deployment has not become ready before the timeout period"
exit 1
fi
echo "waiting for ${deployment_name} deployment to report a ready status"
sleep 5
done
echo "The ${deployment_name} deployment is ready"
}
wait_for_deployment checkpoint-restore-operator-controller-manager
- name: Check resources
run: kubectl get all -n checkpoint-restore-operator-system