服务器要求最好是4G或以上的,系统镜像我用的是CentOs 7.6
GitLab
添加镜像
新建文件 /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
复制代码
建立缓存&安装
yum makecache
yum install -y gitlab-ce
复制代码
安装成功后修改external_url
external_url修改为当前服务器ip地址或域名,如果不修改仓库clone地址不正确
修改 /etc/gitlab/gitlab.rb
更新配置
gitlab-ctl reconfigure
复制代码
配置成功&修改初始密码
gitlab自带nginx,默认80端口,配置成功后直接访问服务器ip
第一次登陆使用初始密码,位置在 /etc/gitlab/initial_root_password
修改密码
只是自建git仓库的话到此就结束了
GitLab-Runner
gitlab-runner配置自动构建发布
添加镜像
新建文件 /etc/yum.repos.d/gitlab-runner.repo
[gitlab-runner]
name=gitlab-runner
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/yum/el$releasever-$basearch/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
复制代码
建立缓存&安装
yum makecache
yum install -y gitlab-runner
复制代码
注册runner
新建一个项目,在设置-ci中找到runner配置需要的url和token
开始注册
gitlab-runner register
复制代码
初始化一个vite项目,体验完整构建流程
npm init @vitejs/app
复制代码
添加.gitlab-ci.yml文件
stages:
- install
- build
- deploy
cache:
paths:
- node_modules
- dist
install-job:
stage: install
only:
- main
script:
- npm install
- echo "install success"
build-job:
stage: build
only:
- main
script:
- npm run build
- echo "build success"
deploy-job:
stage: deploy
only:
- main
before_script:
script:
- cp -r ./dist/* /html/individual-project
after_script:
- echo "deploy success"
复制代码
安装node
cd /usr/local/src
wget https://nodejs.org/dist/v12.21.0/node-v12.21.0-linux-x64.tar.xz
解压
tar -xvf node-v12.21.0-linux-x64.tar.xz
重命名
mv node-v12.21.0-linux-x64 node-v12.21.0
建立软链
ln -s /usr/local/src/node-v12.21.0/bin/node /usr/bin/node
node -v
ln -s /usr/local/src/node-v12.21.0/bin/npm /usr/bin/npm
npm -v
复制代码
部署当前服务器
部署到当前服务器可以用gitlab默认安装的nginx
修改nginx配置
/var/opt/gitlab/nginx/conf/nginx.conf
server {
listen 8081;
server_name 81.70.105.238;
location / {
root /html/individual-project;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
复制代码
重启nginx
gitlab-ctl restart nginx
复制代码
提交代码&自动部署
部署到其他服务器
安装sshpass
yum -y install sshpass
复制代码
目标服务器安装nginx
安装
yum -y install nginx
启动
service nginx start
开机启动
systemctl enable nginx.service
查看状态
systemctl list-dependencies
复制代码
修改nginx配置 /etc/nginx/nginx.conf
server {
listen 8080;
server_name 112.124.19.9;
root /usr/share/nginx/html/group-runner-project;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
复制代码
重启nginx
nginx -s reload
复制代码
runner配置同上
添加几个变量
.gitlab-ci.yml
stages:
- preInstall
- install
- build
- deploy
variables:
TARGETDIR: /usr/share/nginx/html/group-runner-project
cache:
paths:
- node_modules
- dist
preInstall-job:
stage: preInstall
only:
refs:
- main
changes:
- package.json
script:
- npm install
- echo "pre-install success"
install-job:
stage: install
only:
- main
script:
- npm install
- echo "install success"
build-job:
stage: build
only:
- main
script:
- npm run build
- echo "build success"
deploy-job:
stage: deploy
only:
- main
before_script:
script:
- sshpass -p $PASSWORD scp -o StrictHostKeyChecking=no -r ./dist/* $USER@$HOST:$TARGETDIR
after_script:
- echo "deploy success"
复制代码
Success