From dd7e2be74a07d836ef6c8c5e3b192b873db2777b Mon Sep 17 00:00:00 2001
From: Xinwei Xiong <86140903+cubxxw@users.noreply.github.com>
Date: Wed, 12 Jul 2023 12:28:18 +0800
Subject: [PATCH] feat: add logic to deploy images (#497)
* feat: add logic to deploy images
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* feat: add logic to deploy images
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* fix: add ubuntu
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* fix: sync quest
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* feat: add copyright information
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* feat: add more cicd design
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* fix: fix sync
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* feat: test file
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* feat: test file
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* feat: build multiarch
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* feat: build multiarch
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
* feat: add start scripts
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
---------
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
---
.github/workflows/golangci-link.yml | 4 +-
.github/workflows/openim-ci.yml | 148 ++++++++++++++----
.github/workflows/scripts-test.yml | 50 ++++++
.github/workflows/sync.yml | 4 -
README.md | 14 +-
assets/README.md | 32 ++++
assets/intive-slack.png | Bin 0 -> 21044 bytes
assets/logo-gif/LICENSE | 1 +
assets/logo-gif/openim-logo.gif | Bin 0 -> 430462 bytes
assets/logo/LICENSE | 1 +
assets/logo/openim-logo-blue.png | Bin 0 -> 32557 bytes
assets/logo/openim-logo-cyan.png | Bin 0 -> 35907 bytes
assets/logo/openim-logo-gradient.png | Bin 0 -> 38678 bytes
assets/logo/openim-logo-green.png | Bin 0 -> 32597 bytes
assets/logo/openim-logo-orange.png | Bin 0 -> 37334 bytes
assets/logo/openim-logo-purple.png | Bin 0 -> 32931 bytes
assets/logo/openim-logo-red.png | Bin 0 -> 31948 bytes
assets/logo/openim-logo-yellow.png | Bin 0 -> 36659 bytes
assets/logo/openim-logo.png | Bin 0 -> 38208 bytes
go.mod | 1 -
go.sum | 2 -
install_im_server.sh | 38 +++--
.../msgtransfer/persistent_msg_handler.go | 14 ++
pkg/common/db/relation/mysql_init.go | 4 +-
pkg/common/kafka/consumer_group.go | 14 ++
pkg/utils/strings.go | 14 ++
pkg/utils/time_format.go | 14 ++
scripts/build_all_service.sh | 8 +-
scripts/path_info.sh | 14 ++
scripts/style_info.sh | 14 ++
30 files changed, 324 insertions(+), 67 deletions(-)
create mode 100644 .github/workflows/scripts-test.yml
create mode 100644 assets/README.md
create mode 100644 assets/intive-slack.png
create mode 100644 assets/logo-gif/LICENSE
create mode 100644 assets/logo-gif/openim-logo.gif
create mode 100644 assets/logo/LICENSE
create mode 100644 assets/logo/openim-logo-blue.png
create mode 100644 assets/logo/openim-logo-cyan.png
create mode 100644 assets/logo/openim-logo-gradient.png
create mode 100644 assets/logo/openim-logo-green.png
create mode 100644 assets/logo/openim-logo-orange.png
create mode 100644 assets/logo/openim-logo-purple.png
create mode 100644 assets/logo/openim-logo-red.png
create mode 100644 assets/logo/openim-logo-yellow.png
create mode 100644 assets/logo/openim-logo.png
diff --git a/.github/workflows/golangci-link.yml b/.github/workflows/golangci-link.yml
index 057dcff74..c5fdd7b1b 100644
--- a/.github/workflows/golangci-link.yml
+++ b/.github/workflows/golangci-link.yml
@@ -17,8 +17,8 @@ name: OpenKF golangci-lint
on:
push:
branches: [main]
- pull_request:
- branches: [main]
+# pull_request:
+# branches: [main]
jobs:
golangci:
name: lint
diff --git a/.github/workflows/openim-ci.yml b/.github/workflows/openim-ci.yml
index c8b95eb8e..5794b2ef3 100644
--- a/.github/workflows/openim-ci.yml
+++ b/.github/workflows/openim-ci.yml
@@ -1,26 +1,52 @@
+# Copyright © 2023 OpenIM open source community. 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.
+
name: OpenIM CI
-on:
-# main branch
+on:
push:
branches:
- - main
+ - main
+ paths-ignore:
+ - "docs/**"
+ - "README.md"
+ - "README_zh-CN.md"
+ - "CONTRIBUTING.md"
pull_request:
branches:
- - main
+ - main
+ paths-ignore:
+ - "README.md"
+ - "README_zh-CN.md"
+ - "CONTRIBUTING.md"
+ - "docs/**"
+
+env:
+ GO_VERSION: "1.19"
+ GOLANGCI_VERSION: "v1.50.1"
jobs:
-
- openimci:
+ openim:
name: Test with go ${{ matrix.go_version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
environment:
- name: openimci
+ name: openim
strategy:
matrix:
- go_version: ['1.18', '1.19', '1.20']
- os: [ubuntu-latest, macOS-latest]
+ go_version: ["1.18","1.19","1.20"]
+ os: [ubuntu-latest]
steps:
- name: Set up Go ${{ matrix.go_version }}
@@ -32,41 +58,95 @@ jobs:
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- - name: Run go modules Tidy
+ - name: Run go modules tidy
run: |
make tidy
- - name: Generate all necessary files, such as error code files
+ - name: Run go format
run: |
- make gen
+ make format
+ echo "Run go format successfully"
- - name: Check syntax and styling of go sources
- run: |
- make lint
+ # - name: Generate all necessary files, such as error code files
+ # run: |
+ # make generate
- - name: Run unit test and get test coverage
- run: |
- make cover
+ # - name: Check syntax and styling of go sources
+ # run: |
+ # set -e
+ # make lint
+
+ # - name: Run unit test and get test coverage
+ # run: |
+ # make cover
- name: Build source code for host platform
run: |
- make build
+ make multiarch
+ echo "Build source code for host platform successfully"
- - name: Collect Test Coverage File
- uses: actions/upload-artifact@v1.0.0
- with:
- name: main-output
- path: _output/coverage.out
+ # - name: Collect Test Coverage File
+ # uses: actions/upload-artifact@v1.0.0
+ # with:
+ # name: main-output
+ # path: _output/tmp/coverage.out
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v1
+ # - name: Set up Docker Buildx
+ # uses: docker/setup-buildx-action@v1
- - name: Login to DockerHub
- uses: docker/login-action@v1
- with:
- username: ${{ env.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
+# lint:
+# runs-on: ubuntu-20.04
+# steps:
+# - name: Checkout
+# uses: actions/checkout@v3
+# with:
+# fetch-depth: 0
+
+# - name: Set up Go
+# uses: actions/setup-go@v3
+# with:
+# go-version: ${{ env.GO_VERSION }}
+
+# - name: golangci-lint
+# uses: golangci/golangci-lint-action@v3
+# with:
+# version: ${{ env.GOLANGCI_VERSION }}
- - name: Build docker images for host arch and push images to registry
- run: |
- make push
\ No newline at end of file
+# docker-image-tests:
+# runs-on: ubuntu-20.04
+# steps:
+# - name: Checkout
+# uses: actions/checkout@v3
+# with:
+# fetch-depth: 0
+
+# - name: Set up Go
+# uses: actions/setup-go@v3
+# with:
+# go-version: ${{ env.GO_VERSION }}
+
+# - name: Run tests
+# run: make build
+
+# - name: Test docker image
+# run: |
+# docker build -t openim:ci-build .
+
+# goreleaser-test:
+# runs-on: ubuntu-20.04
+# steps:
+# - name: Checkout
+# uses: actions/checkout@v3
+# with:
+# fetch-depth: 0
+
+# - name: Set up Go
+# uses: actions/setup-go@v3
+# with:
+# go-version: ${{ env.GO_VERSION }}
+
+# - name: Run GoReleaser
+# uses: goreleaser/goreleaser-action@v4
+# with:
+# version: latest
+# args: release --clean --skip-publish --snapshot
\ No newline at end of file
diff --git a/.github/workflows/scripts-test.yml b/.github/workflows/scripts-test.yml
new file mode 100644
index 000000000..5bcb2277c
--- /dev/null
+++ b/.github/workflows/scripts-test.yml
@@ -0,0 +1,50 @@
+name: Execute Scripts
+
+on:
+ push:
+ branches:
+ - main
+ paths-ignore:
+ - "docs/**"
+ - "README.md"
+ - "README_zh-CN.md"
+ - "CONTRIBUTING.md"
+ pull_request:
+ branches:
+ - main
+ paths-ignore:
+ - "README.md"
+ - "README_zh-CN.md"
+ - "CONTRIBUTING.md"
+ - "docs/**"
+
+jobs:
+ execute-scripts:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Start Docker Compose
+ run: docker-compose up -d
+
+ - name: Stop all services
+ run: |
+ chmod +x ./scripts/stop_all.sh
+ ./scripts/stop_all.sh
+
+ - name: Build all services
+ run: |
+ chmod +x ./scripts/build_all_service.sh
+ ./scripts/build_all_service.sh
+
+ - name: Start all services
+ run: |
+ chmod +x ./scripts/start_all.sh
+ ./scripts/start_all.sh
+
+ - name: Check all services
+ run: |
+ chmod +x ./scripts/check_all.sh
+ ./scripts/check_all.sh
diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml
index 871e400d5..d6e15bf23 100644
--- a/.github/workflows/sync.yml
+++ b/.github/workflows/sync.yml
@@ -8,9 +8,6 @@ on:
push:
branches:
- main
- pull_request:
- branches:
- - main
workflow_dispatch:
jobs:
@@ -25,7 +22,6 @@ jobs:
with:
GH_INSTALLATION_TOKEN: "${{ secrets.BOT_GITHUB_TOKEN }}"
CONFIG_PATH: .github/sync.yml
- GH_PAT: "${{ secrets.BOT_GITHUB_TOKEN }}"
ORIGINAL_MESSAGE: true
SKIP_PR: true
COMMIT_EACH_FILE: false
diff --git a/README.md b/README.md
index e8da2ab5e..b180f4438 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,11 @@
-
-
- Open IM Server
-
- ⭐️ Open source Instant Messaging Server ⭐️
-
+
+
+
+
+
+
+ ⭐️ Open source Instant Messaging Server ⭐️
+
diff --git a/assets/README.md b/assets/README.md
new file mode 100644
index 000000000..d3e735dc0
--- /dev/null
+++ b/assets/README.md
@@ -0,0 +1,32 @@
+# `/assets`
+
+The `/assets` directory in the OpenIM repository contains various assets such as images, logos, and animated GIFs. These assets serve different purposes and contribute to the functionality and aesthetics of the OpenIM project.
+
+## Directory Structure:
+
+```bash
+assets/
+├── README.md # Documentation for the assets directory
+├── images # Directory holding images related to OpenIM
+│ ├── architecture.png # Image depicting the architecture of OpenIM
+│ └── mvc.png # Image illustrating the Model-View-Controller (MVC) pattern
+├── intive-slack.png # Image displaying the Intive Slack logo
+├── logo # Directory containing various logo variations for OpenIM
+│ ├── openim-logo-black.png # OpenIM logo with a black background
+│ ├── openim-logo-blue.png # OpenIM logo with a blue background
+│ ├── openim-logo-green.png # OpenIM logo with a green background
+│ ├── openim-logo-purple.png # OpenIM logo with a purple background
+│ ├── openim-logo-white.png # OpenIM logo with a white background
+│ ├── openim-logo-yellow.png # OpenIM logo with a yellow background
+│ └── openim-logo.png # OpenIM logo with a transparent background
+└── logo-gif # Directory containing animated GIF versions of the OpenIM logo
+ └── openim-log.gif # Animated OpenIM logo with a transparent background
+```
+
+## Copyright Notice:
+
+The OpenIM logo, including its variations and animated versions, displayed in this repository [OpenIM](https://github.com/OpenIMSDK/openim) under the `/assets/logo` and `/assets/logo-gif` directories, are protected by copyright laws.
+
+The logo design is credited to @Xx(席欣).
+
+Please respect the intellectual property rights and refrain from unauthorized use and distribution of these assets.
\ No newline at end of file
diff --git a/assets/intive-slack.png b/assets/intive-slack.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f27e0c6959298ec79a093ac36a00a58755767e9
GIT binary patch
literal 21044
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
DC_6OD
literal 0
HcmV?d00001
diff --git a/assets/logo-gif/LICENSE b/assets/logo-gif/LICENSE
new file mode 100644
index 000000000..fe61855c2
--- /dev/null
+++ b/assets/logo-gif/LICENSE
@@ -0,0 +1 @@
+# The OpenIM logo files are licensed under a choice of either Apache-2.0 or CC-BY-4.0 (Creative Commons Attribution 4.0 International).
\ No newline at end of file
diff --git a/assets/logo-gif/openim-logo.gif b/assets/logo-gif/openim-logo.gif
new file mode 100644
index 0000000000000000000000000000000000000000..7797896413b8fa290d3c51ad7ac145f34a44f2ed
GIT binary patch
literal 430462
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
z
zMEs|Nc)D;xi*`brV?sx8LYDr_2T})_NzIB9s0EG$8srQLd>PF)WRsLWX9lZ_f4;*tMn`yIz(P3S
zX&StM%mJ>85U`9NJ}tR}<30kg=cA#TTRc-10uYnoJ8$-aXB_&6Q7q
zYx)B*N-2_PNC*QtLNPg4nnFVuvg*ylIHXz~Pz(ip_rcE<+S{slZt|x;?h|CJ&Z`E6aa)qgY9uCxDLWY
z-;6vTom~_cl?K$Z+mZE`m0V(Z=8SP4$nAo(cV@u2DKXVx8VuyWYzM)c$kttK%xgCeO%-A#u
zG$ciXV*~f{`(eyuuV;ri&Ln2C3=PO%dqlL|K|~sKNv}2c*qGGYFEgcx(kp;SOgu%$r4&;0UVM3U{f0q
z%bV?C%M-Ezhi)PJ>0H%<>F8_asvjhN0a%y@)M6_m%K0@x2_%OD+ffij6fPc7>0e~7
zA_~IF27KpSf$Qy@>mtxpNco6!*r}d(HBpi*o4F93ssPA*825$+8=0e_FZ|ht0Ok5i
zDX8Nr&LSGpiWRr^;{DI8f>0FO0G&&x^1t6o6;LnbaSYNP2U52Iv9?sGat;~|l4pXf
z8O6PHt_lco#gNs}eQ%8iZ;67oMe?NSY55E`H^}Yb=qmC!R~H89#aha^0zqssNhw9%
zA7Z`bRt6})Iw$uF%dKsNxbgcfG_*zv2UN$y^H63fO9uYEHu7%D3^bb^4lHVulf43r
zQcf`dK-k!kWj36%DDLcC@v0zhoNgI`?Om=_iKI@ECJmB7ui12XoEBy!@5bHj&*l>X
zl+odQ9M1e|V%nTMvNy2*<7D>pgN>Y8%V-359rs2X}1FzX~{hRR{{E!+*Wqj$@(8`5ChEBqIVYix17d;D>#Zelt80Ic>
zJGUbvw=rBr48+NxR}sFYBukJL1KGaM6`7%=W%NYjuTq8#_bAM8gn=}&Og%jb_7(%3
z$3mvm*(PYR7BiA%DfFmRwNyUtAu=0@0yn~E*{Y6-;fi*wq<&+cWDbwH*m19*xyEsv
zFGV>SWH#WP_YydY@5Pkd!?Q^eoU0>~&;Cy4N=y}OOj61X%5iKt6nJVvq21kLUv?-7
z!#2di!0vJ;5+`n|a<$;t8t<|du&8AlxOhlb`rlmF3y>=ecnn?g#i*GCIwBdzv4{V1J(-({VSkK<+M%E}c!&{W
z#89t9l)XsW26CARxdecMB%zR-OxP19g5~zAedSPtUc^AQoEys}Kt}!$mZon*QB6m2
z%6H7F{G7GKfz`49LzeHjym{MQ>we+e9hW(IH84hUUfp0`um$a##O60nUaq<=rUVU$?@rgJ>$0Z1zq%_U1EDq!lLu+_iOiPH{ODo5=*m(
zQzL_Ayz4+P)d
z(c(_Yh@I>Iw5`VtGC045{rY_>zFR5#^@+UQ3%5j@+Km`Y#03U9?QZFVo5fMqtjE3|
z^mIS?zkONqz6`GYN#6dWA9HGnX(10jICj_S&t&IVXGTrFZ+NrheM+=xY&RbdH@2Mi
zKmJ^P2=vQ^fc_m)q<$BiVghddF1q#m0{Qm^|KDX_e*@nB{wMyeB4I9Y_LC%_D&POz
zK-u#1TcVeKa;=l=1azre=e8ayr%2nR