Compare commits

...

3 Commits

Author SHA1 Message Date
Xinwei Xiong(cubxxw-openim) ed23dc8a4b feat: add more test
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 18:03:37 +08:00
Xinwei Xiong(cubxxw-openim) 5d4fd6110d feat: add more test
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 18:03:29 +08:00
Xinwei Xiong(cubxxw-openim) bac711e29f feat: add more test
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 17:50:06 +08:00
27 changed files with 196 additions and 62 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
.dockerignore .dockerignore
# Ignore build artifacts # Ignore build artifacts
# _output/ _output/
logs/ logs/
# Ignore non-essential documentation # Ignore non-essential documentation
+2 -2
View File
@@ -15,5 +15,5 @@
USER=root USER=root
PASSWORD=openIM123 PASSWORD=openIM123
MINIO_ENDPOINT=http://127.0.0.1:10005 MINIO_ENDPOINT=http://127.0.0.1:10005
API_URL=http://\;\;\ communications\ error\ to\ 216.239.36.10#53:\ timed\ out14.153.17.42:10002 API_URL=http://127.0.0.1:10002
DATA_DIR=/root/workspaces/openim/openim-server DATA_DIR=./
+14
View File
@@ -1,3 +1,17 @@
# Copyright © 2023 OpenIM. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
OpenIMSDK/openim-docker: OpenIMSDK/openim-docker:
- source: ./config - source: ./config
dest: ./openim-server/release/config dest: ./openim-server/release/config
+2 -2
View File
@@ -10,8 +10,8 @@ ENV GOPROXY=$GOPROXY
# Set up the working directory # Set up the working directory
WORKDIR /openim/openim-server WORKDIR /openim/openim-server
COPY go.mod go.sum go.work ./ COPY go.mod go.sum ./
#RUN go mod download RUN go mod download
# Copy all files to the container # Copy all files to the container
ADD . . ADD . .
+10 -5
View File
@@ -58,6 +58,16 @@ export USAGE_OPTIONS
init: init:
@$(MAKE) gen.init @$(MAKE) gen.init
## init-githooks: Initialize git hooks ✨
.PHONY: init-githooks
init-githooks:
@$(MAKE) gen.init-githooks
## gen: Generate all necessary files. ✨
.PHONY: gen
gen:
@$(MAKE) gen.run
## demo: Run demo get started with Makefiles quickly ✨ ## demo: Run demo get started with Makefiles quickly ✨
.PHONY: demo .PHONY: demo
demo: demo:
@@ -190,11 +200,6 @@ push.multiarch:
tools: tools:
@$(MAKE) tools.install @$(MAKE) tools.install
## gen: Generate all necessary files. ✨
.PHONY: gen
gen:
@$(MAKE) gen.run
## swagger: Generate swagger document. ✨ ## swagger: Generate swagger document. ✨
.PHONY: swagger .PHONY: swagger
swagger: swagger:
+19 -20
View File
@@ -29,8 +29,8 @@
zookeeper: zookeeper:
schema: openim schema: openim
address: [ 127.0.0.1:2181 ] address: [ 127.0.0.1:2181 ]
username: '' username:
password: '' password:
###################### Mysql ###################### ###################### Mysql ######################
# MySQL configuration # MySQL configuration
@@ -60,7 +60,7 @@ mysql:
# Default MongoDB database name # Default MongoDB database name
# Maximum connection pool size # Maximum connection pool size
mongo: mongo:
uri: '' uri:
address: [ 127.0.0.1:37017 ] address: [ 127.0.0.1:37017 ]
database: openIM_v3 database: openIM_v3
username: root username: root
@@ -73,7 +73,7 @@ mongo:
# Username is required only for Redis version 6.0+ # Username is required only for Redis version 6.0+
redis: redis:
address: [ 127.0.0.1:16379 ] address: [ 127.0.0.1:16379 ]
username: '' username:
password: openIM123 password: openIM123
###################### Kafka configuration information ###################### ###################### Kafka configuration information ######################
@@ -84,8 +84,8 @@ redis:
# It's not recommended to modify this topic name # It's not recommended to modify this topic name
# Consumer group ID, it's not recommended to modify # Consumer group ID, it's not recommended to modify
kafka: kafka:
username: '' username:
password: '' password:
addr: [ 127.0.0.1:9092 ] addr: [ 127.0.0.1:9092 ]
latestMsgToRedis: latestMsgToRedis:
topic: "latestMsgToRedis" topic: "latestMsgToRedis"
@@ -105,7 +105,7 @@ kafka:
# IP address to register with zookeeper when starting RPC, the IP and corresponding rpcPort should be accessible by api/gateway # IP address to register with zookeeper when starting RPC, the IP and corresponding rpcPort should be accessible by api/gateway
# Default listen IP is 0.0.0.0 # Default listen IP is 0.0.0.0
rpc: rpc:
registerIP: '' registerIP:
listenIP: 0.0.0.0 listenIP: 0.0.0.0
###################### API configuration information ###################### ###################### API configuration information ######################
@@ -132,27 +132,26 @@ api:
# minio.signEndpoint is minio public network address # minio.signEndpoint is minio public network address
object: object:
enable: "minio" enable: "minio"
apiURL: "http://14.153.17.42:10002" apiURL: "http://127.0.0.1:10002"
minio: minio:
bucket: "openim" bucket: "openim"
endpoint: "http://127.0.0.1:10005" endpoint: "http://127.0.0.1:10005"
accessKeyID: "root" accessKeyID: "root"
secretAccessKey: "openIM123" secretAccessKey: "openIM123"
sessionToken: '' sessionToken: ""
signEndpoint: "http://14.153.17.42:10005" signEndpoint: "http://127.0.0.1:10005"
cos: cos:
bucketURL: https://temp-1252357374.cos.ap-chengdu.myqcloud.com bucketURL: "https://temp-1252357374.cos.ap-chengdu.myqcloud.com"
secretID: '' secretID: ""
secretKey: '' secretKey: ""
sessionToken: '' sessionToken: ""
oss: oss:
endpoint: "https://oss-cn-chengdu.aliyuncs.com" endpoint: "https://oss-cn-chengdu.aliyuncs.com"
bucket: "demo-9999999" bucket: "demo-9999999"
bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com" bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com"
accessKeyID: '' accessKeyID: ""
accessKeySecret: '' accessKeySecret: ""
sessionToken: '' sessionToken: ""
###################### RPC Port Configuration ###################### ###################### RPC Port Configuration ######################
# RPC service ports # RPC service ports
@@ -194,11 +193,11 @@ rpcRegisterName:
# Whether to output in json format # Whether to output in json format
# Whether to include stack trace in logs # Whether to include stack trace in logs
log: log:
storageLocation: /root/workspaces/openim/openim-server/logs/ storageLocation: ../../../../../logs/
rotationTime: 24 rotationTime: 24
remainRotationCount: 2 remainRotationCount: 2
remainLogLevel: 6 remainLogLevel: 6
isStdout: false isStdout: false
isJson: false isJson: false
withStack: false withStack: false
+1 -1
View File
@@ -107,7 +107,7 @@ services:
- 10001:10001 - 10001:10001
- 10002:10002 - 10002:10002
healthcheck: healthcheck:
test: ["CMD-SHELL", "./scripts/check-all.sh"] test: ["CMD", "./scripts/check-all.sh"]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 5 retries: 5
+1 -1
View File
@@ -1,4 +1,4 @@
go 1.20.0 go 1.18
use ( use (
. .
+14
View File
@@ -1,3 +1,17 @@
// Copyright © 2023 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package kafka package kafka
import ( import (
+14
View File
@@ -1,3 +1,17 @@
// Copyright © 2023 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package tls package tls
import ( import (
+1 -1
View File
@@ -20,7 +20,7 @@
# package, the build will produce executable files under $(OUT_DIR)/bin/platforms OR $(OUT_DIR)/bin—tools/platforms. # package, the build will produce executable files under $(OUT_DIR)/bin/platforms OR $(OUT_DIR)/bin—tools/platforms.
# If not specified, "everything" will be built. # If not specified, "everything" will be built.
# Usage: `scripts/build-all-service.sh`. # Usage: `scripts/build-all-service.sh`.
# Example: `hack/build-go.sh WHAT=cmd/kubelet`. # Example: `scripts/build-go.sh WHAT=cmd/kubelet`.
set -o errexit set -o errexit
set -o nounset set -o nounset
+89
View File
@@ -0,0 +1,89 @@
#!/usr/bin/env bash
# Copyright © 2023 OpenIM. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# -----------------------------------------------------------------------------
# init-githooks.sh
#
# This script assists in managing Git hooks for the OpenIM project.
# When executed:
# 1. It prompts the user to enable git hooks.
# 2. If the user accepts, it copies predefined hook scripts to the appropriate
# Git directory, making them executable.
# 3. If requested, it can delete the added hooks.
#
# This script equal runs `make init-githooks` command.
# Usage:
# ./init-githooks.sh Prompt to enable git hooks.
# ./init-githooks.sh --delete Delete previously added git hooks.
# ./init-githooks.sh --help Show the help message.
#
# Example: `scripts/build-go.sh --help`.
# Documentation & related context can be found at:
# https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694
#
# -----------------------------------------------------------------------------
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
HOOKS_DIR=".git/hooks"
help_info() {
echo "Usage: $0 [options]"
echo
echo "This script helps to manage git hooks."
echo
echo "Options:"
echo " -h, --help Show this help message and exit."
echo " -d, --delete Delete the hooks that have been added."
echo " By default, it will prompt to enable git hooks."
}
delete_hooks() {
for file in scripts/githooks/*.sh; do
hook_name=$(basename "$file" .sh)
rm -f "$HOOKS_DIR/$hook_name"
done
echo "Git hooks have been deleted."
}
enable_hooks() {
echo "Would you like to enable git hooks mode? [y/n]"
read -r choice
if [[ $choice == "y" || $choice == "Y" ]]; then
for file in scripts/githooks/*.sh; do
cp -f "$file" "$HOOKS_DIR/$(basename "$file" .sh)"
done
chmod +x $HOOKS_DIR/*
echo "Git hooks mode has been enabled."
echo "With git hooks enabled, every time you perform a git action (e.g. git commit), the corresponding hooks script will be triggered automatically."
echo "This means that if the size of the file you're committing exceeds the set limit (e.g. 42MB), the commit will be rejected."
else
echo "Git hooks mode remains disabled."
fi
}
case "$1" in
-h|--help)
help_info
;;
-d|--delete)
delete_hooks
;;
*)
enable_hooks
;;
esac
-4
View File
@@ -140,10 +140,6 @@ ifndef V
MAKEFLAGS += --no-print-directory MAKEFLAGS += --no-print-directory
endif endif
# Copy githook scripts when execute makefile
# TODO! GIT_FILE_SIZE_LIMIT=42000000 git commit -m "This commit is allowed file sizes up to 42MB"
COPY_GITHOOK:=$(shell cp -f scripts/githooks/* .git/hooks/; chmod +x .git/hooks/*)
# COMMA: Concatenate multiple strings to form a list of strings # COMMA: Concatenate multiple strings to form a list of strings
COMMA := , COMMA := ,
# SPACE: Used to separate strings # SPACE: Used to separate strings
+6
View File
@@ -28,6 +28,12 @@ gen.init:
@echo "===========> Initializing openim server project" @echo "===========> Initializing openim server project"
@${ROOT_DIR}/scripts/init-config.sh @${ROOT_DIR}/scripts/init-config.sh
## gen.init-githooks: Initialize git hooks ✨
.PHONY: gen.init-githooks
gen.init-githooks:
@echo "===========> Initializing git hooks"
@${ROOT_DIR}/scripts/init-githooks.sh
## gen.run: Generate necessary files and docs ✨ ## gen.run: Generate necessary files and docs ✨
.PHONY: gen.run .PHONY: gen.run
#gen.run: gen.errcode gen.docgo #gen.run: gen.errcode gen.docgo
-17
View File
@@ -1,17 +0,0 @@
# FROM ghcr.io/openim-sigs/openim-bash-image:latest
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
COPY ./_output/bin/platforms /openim/openim-server/_output/bin/platforms
COPY ./config /openim/openim-server/config
ENV PORT 10002
EXPOSE 10002
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-api /usr/bin/openim-api
ENTRYPOINT ["/usr/bin/openim-api","-c","${SERVER_WORKDIR}/config"]
CMD ["--port 10002"]
+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/OpenIMSDK/Open-IM-Server/test/typecheck module github.com/OpenIMSDK/Open-IM-Server/test/typecheck
go 1.20 go 1.18
require golang.org/x/tools v0.12.0 require golang.org/x/tools v0.12.0
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/changelog module github.com/OpenIMSDK/Open-IM-Server/tools/changelog
go 1.20 go 1.18
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/component module github.com/OpenIMSDK/Open-IM-Server/tools/component
go 1.19 go 1.18
+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/imctl module github.com/OpenIMSDK/Open-IM-Server/tools/imctl
go 1.20 go 1.18
require ( require (
github.com/MakeNowJust/heredoc/v2 v2.0.1 github.com/MakeNowJust/heredoc/v2 v2.0.1
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/infra module github.com/OpenIMSDK/Open-IM-Server/tools/infra
go 1.20 go 1.18
+1 -1
View File
@@ -1,5 +1,5 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/ncpu module github.com/OpenIMSDK/Open-IM-Server/tools/ncpu
go 1.20 go 1.18
require go.uber.org/automaxprocs v1.5.3 require go.uber.org/automaxprocs v1.5.3
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/versionchecker module github.com/OpenIMSDK/Open-IM-Server/tools/versionchecker
go 1.20.0 go 1.18
+14
View File
@@ -1,3 +1,17 @@
// Copyright © 2023 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package main package main
import ( import (
+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/yamlfmt module github.com/OpenIMSDK/Open-IM-Server/tools/yamlfmt
go 1.20 go 1.18
require ( require (
github.com/likexian/gokit v0.25.13 github.com/likexian/gokit v0.25.13