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 · 2788 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 · 44 min · 9236 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 · 51 min · 10670 words · Xiong Xinwei, 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 · 4555 words · Xinwei Xiong, Me

About My Blog

Hello, I am Xiong Xinwei. In the river of time, I’m so honored to step into this significant moment of my senior year. More than just a student, I’m passionate about writing those pulsating codes. Hence, I became an avid follower of open source. Welcome to explore my digital realm—My GitHub. Here, you will witness my love for technology, my third-generation blog, and I hope it becomes the ultimate link for my conversation with the world....

September 14, 2023 · 2 min · 317 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 · 2812 words · Me

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 · Me

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 · 12 min · 2535 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