166 lines
4.8 KiB
YAML
166 lines
4.8 KiB
YAML
name: OpenIM Chat Build Test
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- release-*
|
|
paths-ignore:
|
|
- "docs/**"
|
|
- "README.md"
|
|
- "README_zh-CN.md"
|
|
- "**.md"
|
|
- "docs/**"
|
|
- "CONTRIBUTING.md"
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- release-*
|
|
paths-ignore:
|
|
- "README.md"
|
|
- "README_zh-CN.md"
|
|
- "CONTRIBUTING/**"
|
|
- "**.md"
|
|
- "docs/**"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-linux:
|
|
name: Execute OpenIM Script On Linux
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
# environment:
|
|
# name: openim
|
|
strategy:
|
|
matrix:
|
|
arch: [amd64]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: "1.22"
|
|
|
|
- name: init
|
|
run: sudo bash bootstrap.sh
|
|
timeout-minutes: 20
|
|
|
|
- name: Checkout chat repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: "openimsdk/chat-deploy"
|
|
path: "server-repo"
|
|
|
|
- name: Set up Docker for Linux
|
|
run: |
|
|
cd ${{ github.workspace }}/server-repo
|
|
sudo docker compose up -d
|
|
sudo sleep 30 # Increased sleep time for better stability
|
|
timeout-minutes: 30 # Increased timeout for Docker setup
|
|
|
|
- name: Modify Server Configuration
|
|
run: |
|
|
yq e '.secret = 123456' -i ${{ github.workspace }}/server-repo/config/share.yml
|
|
|
|
- name: Build and Start IM Serevr Services
|
|
run: |
|
|
cd ${{ github.workspace }}/server-repo
|
|
sudo mage
|
|
sudo mage start
|
|
sudo mage check
|
|
|
|
- name: Modify Chat Configuration
|
|
run: |
|
|
yq e '.openIM.secret = 123456' -i config/share.yml
|
|
|
|
- name: Build, Start, Check Services and Print Logs for Linux
|
|
run: |
|
|
sudo mage
|
|
sudo mage start
|
|
sudo mage check
|
|
|
|
- name: Restart Services and Print Logs
|
|
run: |
|
|
sudo mage stop
|
|
sudo mage start
|
|
sudo mage check
|
|
|
|
- name: Test Chat
|
|
run: |
|
|
check_error() {
|
|
echo "Response: $1"
|
|
errCode=$(echo $1 | jq -r '.errCode')
|
|
if [ "$errCode" != "0" ]; then
|
|
errMsg=$(echo $1 | jq -r '.errMsg')
|
|
echo "Error: $errMsg"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Test register
|
|
response1=$(curl -X POST -H "Content-Type: application/json" -H "operationID: imAdmin" -d '{
|
|
"verifyCode": "666666",
|
|
"platform": 3,
|
|
"autoLogin": true,
|
|
"user":{
|
|
"nickname": "test12312",
|
|
"areaCode":"+86",
|
|
"phoneNumber": "12345678190",
|
|
"password":"test123456"
|
|
}
|
|
}' http://127.0.0.1:10008/account/register)
|
|
check_error "$response1"
|
|
userID1=$(echo $response1 | jq -r '.data.userID')
|
|
echo "userID1: $userID1"
|
|
|
|
response2=$(curl -X POST -H "Content-Type: application/json" -H "operationID: imAdmin" -d '{
|
|
"verifyCode": "666666",
|
|
"platform": 3,
|
|
"autoLogin": true,
|
|
"user":{
|
|
"nickname": "test22312",
|
|
"areaCode":"+86",
|
|
"phoneNumber": "12345678290",
|
|
"password":"test123456"
|
|
}
|
|
}' http://127.0.0.1:10008/account/register)
|
|
check_error "$response2"
|
|
userID2=$(echo $response2 | jq -r '.data.userID')
|
|
echo "userID2: $userID2"
|
|
|
|
# Test login
|
|
login_response=$(curl -X POST -H "Content-Type: application/json" -H "operationID: imAdmin" -d '{
|
|
"platform": 3,
|
|
"areaCode":"+86",
|
|
"phoneNumber": "12345678190",
|
|
"password":"test123456"
|
|
}' http://localhost:10008/account/login)
|
|
check_error "$login_response"
|
|
|
|
# Test get admin token
|
|
get_admin_token_response=$(curl -X POST -H "Content-Type: application/json" -H "operationID: imAdmin" -d '{
|
|
"secret": "123456",
|
|
"platformID": 2,
|
|
"userID": "imAdmin"
|
|
}' http://127.0.0.1:10002/auth/get_admin_token)
|
|
check_error "$get_admin_token_response"
|
|
adminToken=$(echo $get_admin_token_response | jq -r '.data.token')
|
|
echo "adminToken: $adminToken"
|
|
|
|
# Test send message
|
|
send_msg_response=$(curl -X POST -H "Content-Type: application/json" -H "operationID: imAdmin" -H "token: $adminToken" -d '{
|
|
"sendID": "'$userID1'",
|
|
"recvID": "'$userID2'",
|
|
"senderPlatformID": 3,
|
|
"content": {
|
|
"content": "hello!!"
|
|
},
|
|
"contentType": 101,
|
|
"sessionType": 1
|
|
}' http://127.0.0.1:10002/msg/send_msg)
|
|
check_error "$send_msg_response"
|