云服务器中代码版本管理与自动化构建

0x01 环境准备

  • 云服务器:阿里云服务器 ECS 2核2G

    • 安全组配置(入方向):

      目的 描述(可选) (其他项)
      80 所有IPv4(0.0.0.0/0) HTTP (默认)
      3000 所有IPv4(0.0.0.0/0) Gitea (默认)
      8080 所有IPv4(0.0.0.0/0) Jenkins (默认)
      (其他) (默认) (系统添加的项保留) (默认)
  • 操作系统:Ubuntu 22.04 64位

  • 远程工具:VS Code 与 Remote - SSH 插件

  • 前端项目:(以通过 create-tw 创建的 Preact 项目为例,可参考《Install Tailwind CSS in Preact | DEV-saim》)

0x02 相关工具

(1)Nginx 1.18.0

  • 安装步骤:参考《Nginx | 博客园-SRIGT

  • 注意事项:nginx.conf 文件内容需要修改为:

    worker_processes  1;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
        
        keepalive_timeout  65;
    
        server {
            listen       80;
            server_name  localhost;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
        }
    }
    

(2)Gitea 1.22.6

  • 官网链接:https://about.gitea.com/

  • 安装步骤:参考《Ubuntu 安装 轻量级的Git仓库管理工具Gitea | CSDN-LXSHYZHX

  • 注意事项

    • 整体上需要完全按照该文章提供的步骤

    • gitea.service 文件内容需要修改为:

      [Unit]
      Description=Gitea (Git with a cup of tea)
      After=syslog.target
      After=network.target
      
      [Service]
      RestartSec=2s
      Type=simple
      User=git
      Group=git
      WorkingDirectory=/var/lib/gitea/
      ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
      Restart=always
      Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
      
      [Install]
      WantedBy=multi-user.target
      
    • /etc/gitea/app.ini 文件的 [server] 中需要修改或添加以下内容:

      ini 复制代码
      START_SSH_SERVER = true
      SSH_PORT = 2222

      其中,SSH_PORT = 2222 用于解决 SSH 22 端口冲突

    • 如果无法访问 3000 端口,需要按以下顺序确认原因:

      1. 访问阿里云的云服务器管理控制台,确认云服务器安全组设置是否正确
      2. 使用命令 netstat -nltp | grep 3000 确认 3000 端口状态
      3. 使用命令 journalctl -u gitea.service 查看 Gitea 服务的日志,关注 [E] 开头的信息

(3)JDK 21、Jenkins 2.479.2、NodeJS 23.5.0

  • 官网链接:https://www.jenkins.io/zh/

  • 安装步骤:参考《How to Install Jenkins on Ubuntu 24.04 | unixhint-Zahid Amin

  • 注意事项

    • 安装完成后,在 系统管理 的 插件管理 中搜索并安装 NodeJS Plugin

    • 使用以下命令修改 Nginx 中绑定的 HTTP 服务源目录的权限

      1. chown -R jenkins:jenkins /var/www/html:将 /var/www/html 目录的所有者更改为 jenkins 用户
        • jenkins 用户由 Jenkins 安装时创建
      2. chmod -R 755 /var/www/html:保证所有者对目录内容可读可写,其他用户可读不可写
    • 创建并配置构建项目时,需要注意:

      1. 源码管理 选择 Git;仓库地址为 Gitea 中对应的仓库地址;指定分支需要根据仓库中的分支决定,如 */main

      2. 构建环境 选择 Provide Node & npm bin/ folder to PATH

      3. 构建步骤 选择 执行 shell,其中命令写入以下内容:

        shell 复制代码
        npm config set registry https://registry.npmmirror.com && npm i && npm run build && cp -rf ./dist/* /var/www/html/

        依次为:

        1. 设置镜像源,加快依赖安装速度
        2. 安装依赖
        3. 打包并构建
        4. 将结果递归并强制替换复制到 Nginx 中绑定的 HTTP 服务源目录
    • 点击 立即构建 即可完成构建操作与部署操作

      • 如果报错,可以在详情中查看 控制台输出 寻找原因

-End-