Skip to content

Create deploy.yml

Create deploy.yml #1

Workflow file for this run

name: Deploy to Minikube
on:
push:
branches:
- main # Change this to your default branch
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker images
run: |
docker build -t alihdr116/single-crud-nodejs-mysql-client ./client
docker build -t alihdr116/single-crud-nodejs-mysql-server ./server
docker build -t alihdr116/mysql:latest .
docker push alihdr116/single-crud-nodejs-mysql-client
docker push alihdr116/single-crud-nodejs-mysql-server
docker push alihdr116/mysql:latest
- name: Set up Minikube
run: |
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start
- name: Enable Ingress
run: minikube addons enable ingress
- name: Deploy to Minikube
run: |
kubectl apply -f k8s/mysql-deployment.yaml
kubectl apply -f k8s/server-deployment.yaml
kubectl apply -f k8s/client-deployment.yaml
- name: Wait for deployments to be ready
run: |
kubectl rollout status deployment/mysql
kubectl rollout status deployment/server
kubectl rollout status deployment/client