-
Notifications
You must be signed in to change notification settings - Fork 0
125 lines (100 loc) · 3.82 KB
/
keploy.yml
File metadata and controls
125 lines (100 loc) · 3.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
name: Keploy API Testing
on:
push:
branches: [ main ]
pull_request:
jobs:
keploy-test:
runs-on: ubuntu-latest
steps:
- name: 📥 Checkout Code
uses: actions/checkout@v3
# - name: 🐬 Start MySQL Container
# run: |
# docker network create keploy-network || true
# docker run --name mysql-db \
# --network keploy-network \
# -e MYSQL_ROOT_PASSWORD=root \
# -e MYSQL_DATABASE=User \
# -p 3306:3306 -d mysql:8.0
- name: 🐳 Build and Run Spring Boot Docker Container
run: |
docker build -t user-api .
docker network create keploy-network || true
docker run -d --name user-api \
--network keploy-network \
-p 8080:8080 \
user-api
- name: ⏳ Wait for Server Port to Open (8080)
run: |
echo "Waiting for Spring Boot app to start on port 8080..."
timeout 60 bash -c 'while ! nc -z localhost 8080; do sleep 2; done'
- name: 📄 Show Spring Boot Logs
run: docker logs user-api
# - name: ❤️ Check Server Health (Optional)
# continue-on-error: true
# run: |
# until curl -s http://localhost:8080/actuator/health | grep -q UP; do
# echo "Waiting for /actuator/health..."
# sleep 2
# done
# - name: 🛠️ Install Keploy CLI
# run: |
# curl -s https://raw.githubusercontent.com/keploy/keploy/main/install.sh | bash
# echo "$HOME/.keploy/bin" >> $GITHUB_PATH
# export PATH="$HOME/.keploy/bin:$PATH"
# - name: 🛠️ Install Keploy CLI on Windows
# run: |
# Invoke-WebRequest -Uri "https://github.com/keploy/keploy/releases/latest/download/keploy_windows_amd64.exe" -OutFile "keploy.exe"
# $env:Path += ";$PWD"
# ./keploy.exe version
# shell: pwsh
- name: 🛠️ Install Keploy CLI on Ubuntu
run: |
curl -L https://github.com/keploy/keploy/releases/download/v0.1.13/keploy_linux_amd64 -o keploy
chmod +x keploy
sudo mv keploy /usr/local/bin/keploy
# - name: 📡 Warm-up API with Sample Request (Optional)
# run: |
# curl -v -X POST http://localhost:8080/users/signup \
# -H "Content-Type: application/json" \
# -d '{"name":"lily","email":"lily@example.com","user_name":"lilyuser","password":"password123"}'
- name: 🧪 Run Keploy Test Cases
run: |
keploy test -c "curl http://localhost:8080"
# name: Keploy API Testing
# on:
# push:
# branches: [ main ]
# pull_request:
# jobs:
# test:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
# - name: Set up Docker
# run: |
# docker build -t user-api .
# docker network create keploy-network || true
# docker run -d -p 8080:1012 --name user-api --network keploy-network user-api
# - name: Wait for server port
# run: |
# echo "Waiting for server to start..."
# timeout 60 bash -c 'while ! nc -z localhost 8080; do sleep 2; done'
# - name: Check container logs
# run: docker logs user-api
# - name: Wait for server health
# run: |
# until curl -s http://localhost:8080/actuator/health | grep -q UP; do
# sleep 2
# done
# - name: Inspect user-api container
# run: docker ps -a
# - name: Run curl to test user signup
# run: |
# curl -v -X POST http://localhost:8080/users/signup \
# -H "Content-Type: application/json" \
# -d '{"name":"lily","email":"lily@example.com","user_name":"lilyuser","password":"password123"}'
# - name: Run Keploy Tests
# run: keploy test