使用Jenkins自动化部署Vuepress项目

1/5/2022 jenkinsvuepress

Jenkins自动化部署中踩的坑

# Jenkins 安装

【Linux】yum安装Jenkins与卸载(简单方便) (opens new window)

【linux】安装java步骤 (opens new window)

前提要安装Java,版本至少8,推荐11

# Jenkins 实操

实战笔记:Jenkins打造强大的前端自动化工作流 (opens new window)

安装 Generic Webhook Trigger Plugin插件,WEB Hook URL :

http://<User ID>:<API Token>@<Jenkins IP地址>:端口/generic-webhook-trigger/invoke

安装 Publish Over SSH 插件,系统管理-系统设置里找到Publish over SSH这一项:

Passphrase:密码(key的密码,没设置就是空)

Path to key:key文件(私钥)的路径

Key:将私钥复制到这个框中(path to key和key写一个即可)

SSH Servers的配置:

SSH Server Name:标识的名字(随便你取什么)

Hostname:需要连接ssh的主机名或ip地址(建议ip)

Username:用户名

Remote Directory:远程目录(上面第二步建的testjenkins文件夹的路径)

# SSH 密钥登录

SSH 密钥登录(用于git中免用户名密码的认证) (opens new window)

windows 10 git配置.ssh秘钥 (opens new window)

目前Gtihub已弃用用户名&密码的认证方式

首先 cd ~/.ssh 查看是否有密钥

概括 :ssh-keygen 后一路回车,带pub结尾的是公钥,不带的是私钥

# Jenkins Tips

最后这条比较重要,因为Jenkins用户没有sudo权限

# linux安装nodeJs

一般对root用户有效,jenkins用户需额外设置

wget https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x64.tar.xz
tar -xvf node-v16.13.1-linux-x64.tar.xz
sudo mv ./node-v16.13.1-linux-x64 /usr/local/node
sudo ln -s /usr/local/node/bin/node /usr/bin/node
sudo ln -s /usr/local/node/bin/npm /usr/bin/npm

使用 NVM 管理不同的 Node.js 版本(对Jenkins用户无效) (opens new window)

Jenkins---jenkins中安装nodejs(利用插件) (opens new window)

# serve 部署相关

【Windows】PowerShell:因为在此系统上禁止运行脚本,解决方法 (opens new window)

Serve - Npm (opens new window)

linux系统安装yarn (opens new window)

jenkins Process leaked file descriptors(Jenkins会默认杀掉所有衍生进程) (opens new window)

以下Shell命令仅供参考:

git stash
git pull origin master

yarn 

yarn build 

cd docs/.vuepress/dist

BUILD_ID=dontKillMe # Jenkins默认会杀掉所有衍生进程,需要标识

nohup /usr/local/bin/serve >run.out & # Jenkins走的绝对路径,否则会报错的

exit

Jenkins默认会杀掉所有衍生进程,需要标识