在 GitHub Actions 中将 minikube 设置为 CI 步骤
如何在 GitHub Actions 中使用 minikube 测试您的应用程序
要安装并启动 minikube 集群,请将以下步骤添加到您的 GitHub Actions 工作流程中。
steps:
- name: start minikube
id: minikube
uses: medyagh/setup-minikube@latest
更多信息请参见 GitHub Actions marketplace 中的 setup-minikube。
示例:在每次 PR 时构建镜像并部署到 minikube
要求
- 有效的 Dockerfile
- 一个带有
imagePullPolicy: Never
的有效deployment.yaml
文件,示例如下
创建工作流程
-
将此 YAML 复制到您的工作流程文件,例如
.github/workflows/pr.yml
中name: CI on: - pull_request jobs: job1: runs-on: ubuntu-latest name: build example and deploy to minikube steps: - uses: actions/checkout@v4 with: repository: medyagh/local-dev-example-with-minikube - name: Start minikube uses: medyagh/setup-minikube@latest - name: Try the cluster! run: kubectl get pods -A - name: Build image run: | minikube image build -t local/devex:v1 . - name: Deploy to minikube run: kubectl apply -f deploy/k8s.yaml kubectl wait --for=condition=ready pod -l app=local-devex - name: Test service URLs run: | minikube service list minikube service local-devex-svc --url echo "------------------opening the service------------------" curl $(minikube service local-devex-svc --url)
上述示例工作流程 YAML 将在每次 PR 时执行以下步骤
- 检出源代码
- 安装并启动 minikube
- 通过运行
kubectl
命令试用集群 - 使用 minikube 的 docker-env 功能构建 Docker 镜像
- 将部署 YAML 文件应用到 minikube
- 检查 minikube 中已创建的服务
包含服务的 minikube 部署 YAML 示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
spec:
selector:
matchLabels:
app: example
replicas: 2
template:
metadata:
labels:
app: example
spec:
containers:
- name: example-api
imagePullPolicy: Never
image: local/example:latest
resources:
limits:
cpu: 50m
memory: 100Mi
requests:
cpu: 25m
memory: 10Mi
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: example
spec:
type: NodePort
selector:
app: example
ports:
- port: 8080
targetPort: 8080