Cross Platform Compilation

Preface https://github.com/OpenIMSDK/Open-IM-Server/issues/432 Many places now have requirements for local adaptation of services. Generally, localized platforms provide an arm version of Linux cloud environment for us to deploy services, so it is necessary to build an arm version of the image. Build plan In the above issue, we describe the general construction ideas and solution steps. Let’s take a look at the construction plan. We take the most commonly used amd machine as an example to compile arm....

September 16, 2023 · 14 min · 2923 words · Xinwei Xiong, Me

Github Actions Advanced Techniques

Create actions **actions are individual tasks that can be combined to create jobs and custom workflows. You can create your own actions, or use and customize actions shared by the GitHub community. ** Actions can be created by writing custom code that interacts with your repository in any way you like, including integrating with GitHub’s API and any publicly available third-party API. You can write your own actions for use in workflows, or share the actions you build with the GitHub community....

September 16, 2023 · 47 min · 9905 words · Xinwei Xiong, Me

Openim Devops Design

DevOps DevOps 🔥 DevOps is a culture and methodology for software development and operations that aims to shorten the software development cycle and improve software quality through automation and collaboration. DevOps (a portmanteau of Development and Operations) is a A culture, movement or practice that values communication and cooperation between “software developers (Dev)” and “IT operations and maintenance technicians (Ops)”. By automating the “software delivery” and “architecture change” processes, we can build, test, and release software faster, more frequently, and more reliably....

September 16, 2023 · 14 min · 2919 words · Xinwei Xiong, Me

GoReleaser: Automate your software releases

The goal of GoReleaser is to automate much of the tedious work when releasing software, by using sensible defaults and making it simple for the most common use cases. Preparation: .goreleaser.yaml file: contains all configuration information. (For more information, see Customization ) Clean working tree: Make sure the code is up to date and all changes have been committed. SemVer compliant version number (e.g. 10.21.34-prerelease+buildmeta) GoReleaser running steps: The operation of GoReleaser is mainly divided into the following four steps:...

September 16, 2023 · 53 min · 11220 words · Xinwei Xiong, Me

Openim Multi Process Management

111: OpenIM multi-process management strategy Main modules This article will start from the most basic single-process foreground operation of OpenIM, to the nohup background operation, to the system system process, and then to Supervisord, container management, and kubernetes health detection. Current issues Read: https://github.com/cubxxw/Open-IM-Server/blob/refactor/feat-enhance/scripts/install/openim-crontask.sh source code The current process management strategy before OpenIM is started in the background through nohup. The entire project is run by multiple processes, and now a reliable keep-alive mechanism is needed to quickly pull it up when the process crashes....

September 16, 2023 · 22 min · 4567 words · Xinwei Xiong, Me

About My Hugo teaching

Rebuild my blog (static) The enemy is back… It’s so difficult this time. When I was preparing my resume, I found that my blog was gone. My dearest blog nsddd.top , which I had accompanied for a year and was well-received, was sacrificed. Wuwuwuwu Don’t be impatient, don’t be impatient, learn a lesson, what is the first thing? I will definitely not use dynamic blogs anymore. I used workpress for my first blog in my freshman year....

September 12, 2023 · 14 min · 2903 words · 熊鑫伟 (Xinwei Xiong)

Openkf Multi Architecture Image

Automate Multi-Architecture Image Build for openkf and Push to Multiple Image Repositories https://github.com/openimsdk/openkf Description: To meet the requirements of a diverse set of users, we aim to automate the process of building the openkf Docker images for various architectures and push them to multiple image repositories seamlessly. Objective: Automatically build Docker images of openkf for linux/amd64 and linux/arm64 architectures. Push the images to Docker Hub, AliYun Docker Hub, and GitHub Container Registry....

September 1, 2023 · 2 min · 318 words · 熊鑫伟 (Xinwei Xiong)

Prow Ecological Learning

why? The story starts with this proposal idea~ 🤖OpenIM cicd robot machine proposal Prow is a CI/CD system based on Kubernetes. Jobs can be triggered by various types of events and report their status to many different services. In addition to job execution, Prow also provides GitHub automation in the form of policy enforcement, chat operations via /foo style commands, and automatic PR merging. For Golang documentation, see GoDoc . Please note that these libraries are for prow use only and we do not attempt to preserve backwards compatibility....

August 12, 2023 · 13 min · 2593 words · Xinwei Xiong, Me

Openim Remote Work Culture

Principles 0) Ownership & Leadership When you see issues with the team or project, don’t wait or endure. Speak up immediately, propose solutions, initiate a meeting yourself, and adjust promptly. Don’t suppress your concerns! “Every team member embodies the roles of both Owner and Leader. When issues arise, be proactive in pointing them out and offering solutions. Don’t just wait or stay silent.” 1) Initiative Everyone must take the initiative. Whether it’s about starting something or claiming a task, if you find yourself idle, proactively identify problems and areas of improvement....

July 13, 2023 · 5 min · 1062 words · Xinwei Xiong, Me

Advanced Githook Design

What to do if the community is not standardized As the COO of the OpenIM community, I am responsible for the communtiy and [GitHub configuration repository](https:/ /github.com/OpenIMSDK/.github) has been fully configured. And architect and design the entire OpenIM Makefile and CICD flows, as well as the log package, error codes, collaborative flows, contributor documents and community documents used by the entire OpenIM. There will always be some problems at this time, even if you think your Contributor Document is very awesome....

June 16, 2023 · 9 min · 1872 words · Xinwei Xiong, Me