adodo0829 / blog

搭建知识体系
29 stars 4 forks source link

搭建前端自动集成环境 #55

Open adodo0829 opened 4 years ago

adodo0829 commented 4 years ago

搭建自动集成环境

以 gitlab 为基础搭建前端自动集成发布环境...

1.服务器安装Nginx

以 ubuntu 为例

查看服务器版本信息: 用于添加正确的软件更新源以及安装

uname -a

Linux ubuntu 4.15.0-100-generic

101-Ubuntu SMP Wed Apr 29 20:39:14 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

- 查看 Linux 系统版本
```shell
lsb_release -a # 列出所有版本信息, 适用于所有
# Distributor ID:   Ubuntu
# Description:  Ubuntu 18.04.4 LTS
# Release:  18.04
# Codename: bionic

cat /etc/redhat-release # 只适合Redhat系的Linux, 如centos

cat /etc/issue # 适用于所有
# Ubuntu 18.04.4 LTS \n \l

安装对应版本软件

# 1.更新软件源
sudo apt-get update
# 2.安装
sudo apt-get install nginx
# 3.查看安装结果
nginx -v # 配置了环境变量,可以全局执行
# 4.查看安装目录
which nginx # /usr/sbin/nginx
# 5.nignx配置目录
cd /etc/nginx
# 6.修改 nginx.conf 配置文件
参考链接1: https://juejin.im/post/5c1616186fb9a049a42ef21d
参考链接2: https://juejin.im/post/5ea931866fb9a043815146fb
# 7.配置我们的打包文件地址
# 创建 project-name-test.conf 文件;
server {
    listen 9001;
    server_name localhost;
    location / {
        root /www/project-name-test/dist;
        try_files $uri $uri/ /index.html;
    }
}
# 8.nginx 服务命令
nginx 启动
nginx -t 查看配置
nginx -s reload 重载配置
# 查看服务监听
netstat -tlnp

2.服务器安装gitlal-runner

1.添加gitlab的官方存储库源 curl

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

2.安装

sudo apt-get install gitlab-runner

3.查看

gitlab-runner -v
# Version:      12.10.1
# Git revision: ce065b93
# Git branch:   12-10-stable
# GO version:   go1.13.8
# Built:        2020-04-22T21:29:52+0000
# OS/Arch:      linux/amd64
gitlab-runner status # 运行状态
gitlab-runner list

3.注册&配置gitlal-runner

注册 runner 参考 https://docs.gitlab.com/runner/register/index.html

注册 runner
gitlab-runner register

示例:
Running in system-mode.

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.xxx.xxx/   // 在这里输入gitlab安装的服务器ip/或者域名

Please enter the gitlab-ci token for this runner:
eaYyokc57xxZbzAsoshT    // 这里的token可通过Gitlab上的项目Runners选项查看

Please enter the gitlab-ci description for this runner:
[E5]: ci-demo       // 这里填写一个描述信息,不太重要,看着填吧

Please enter the gitlab-ci tags for this runner (comma separated):
demo           // 在这里填写tag信息,多个tag可通过逗号,分割。
Registering runner... succeeded                     runner=eaYyokc5

Please enter the executor: docker+machine, docker-ssh+machine, kubernetes, custom, docker, docker-ssh, parallels, virtualbox, shell, ssh:
shell       // 在这里需要输入runner的执行方式,因为我的Gitlab和runner是安装在同一台服务器上的,直接输入shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
// 出现这样信息表示服务端的配置就已经成功结束了,如果需要使用到自动构建,还需要再添加一个配置文件

4.添加项目的yml文件

项目根目录下创建.gitlab-ci.yml 文件 因为相对熟悉 shell, 采用 shell 脚本; 也可以用 docker 等...

# 这里还可以添加测试环节等...
stages:
  - build

# 测试环境构建
build:test:
    stage: build
    script:
      - yarn install
      - yarn run build:test
      - rm -rf /www/test-admin/dist
      - cp -a dist /www/test-admin/
    only:
        - dev
    tags:
        - test-admin-dev

# 正式环境构建
build:prod:
    stage: build
    script:
      - yarn install
      - yarn run build:prod
      - rm -rf /www/prod-admin/dist
      - cp -a dist /www/prod-admin/
    only:
        - prod
    tags:
        - prod-admin-prod

5.配置服务器的 node 环境

安装相关的工具node, yarn

# 添加 node 的环境变量
vi /etc/profile
export NODE_HOME=/usr/local/nodejs # nodejs位置
export PATH=$PATH:$NODE_HOME/bin # 启动命令

# 安装 yarn
# 1.启用Yarn存储库
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
# 2.Yarn APT存储库添加到系统的软件存储库中输入以下内容列出列表
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
# 3.更新软件包列表并安装Yarn
sudo apt update
sudo apt install yarn
# 4.测试安装
yarn -v # 1.22.4

服务端 node 包管理 nvm

常用命令

nvm ls-remote # 列出全部可以安装的版本号 nvm install v7.7.0 # 安装指定版本 nvm use v7.8.0 # 切换nodejs的版本,效果是全局的哦 nvm current # 查看当前使用的版本 nvm ls # 查看系统当前使用版本

#### 卸载 node
```shell
# apt-get 卸载
sudo apt-get remove --purge npm
sudo apt-get remove --purge nodejs
sudo apt-get remove --purge nodejs-legacy
sudo apt-get autoremove
# 手动删除 npm 相关目录
rm -r /usr/local/bin/npm
rm -r /usr/local/lib/node-moudels
find / -name npm
rm -r /tmp/npm*

6.测试

直接向远程服务器 push 测试分支代码, 看看流水线是否在构建代码,如果是,则恭喜成功了,以后部署直接 push 一下就完事了,不用手动传了.

7.多台服务器同时发布

找到项目对应的设置项: 仓库 -> Deploy Keys 添加对应服务器的 ssh key 就可以拉取仓库更新;

adodo0829 commented 4 years ago

注意卸载系统自带的 node 版本