CODING 团队版 注意,不是我的版
为项目添加密钥,以便让集成环境能够访问咱们的远程服务器,发布程序。经过ssh-keygen
生成密钥,最好能够重命名,防止覆盖本地密钥。html
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/amber/.ssh/id_rsa): demo #重命名demo Enter passphrase (empty for no passphrase): # 设置密码 这里直接回车略过过 Enter same passphrase again: Your identification has been saved in demo. Your public key has been saved in demo.pub. The key fingerprint is: SHA256:+ie8nyDsn3V+gh1BQBmH6a3p8FVvfZKxZ/UsoxAbECk amber@amber-ubuntu
Linux密钥默认在/home/{user}/.ssh/
目录下,Windows密钥默认在C:\Users\{user}\.ssh
在。在这个文件夹下demo
就是密钥,demo.pub
就是公钥。前端
将经过ssh-keygen
生成的密钥保存至coding
中,留意ID,这里之后会用到。java
建立团队,与项目后,须要初始化一个仓储,用来管理后台代码。web
CODING- 持续继承快速入门
CODING-配置文件DEMO
在目标服务器上建立服务,以即可以经过systemctl
快速管理服务。在/etc/systemd/system
目录下建立一个spring.service
文件。spring
[Unit] Description=spring After=syslog.target [Service] ExecStart= /usr/jdk1.8.0_191/bin/java -jar /data/www/target/server-0.0.1.jar # 在这里启动spring项目 [Install] WantedBy=multi-user.target
经过设置缓存,加速构建速度shell
能够经过如下文件进行配置,注意看注释npm
pipeline { agent any stages { stage('检出') { steps { checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]) } } stage('构建') { steps { echo '构建中...' // 这里开始下载依赖,打包程序 sh 'mvn install' sh 'mvn package' sh 'ls' echo '构建完成.' } } stage('部署') { steps { echo '部署中...' script { def remote = [:] // 这里开始登录目标主机发布程序 remote.name = 'web-server' remote.allowAnyHosts = true remote.host = 'xxxxx.com' //这里填写服务器地址 remote.user = 'root' // 登录用户名 // credentialsId: 密钥存储在coding上,返回的id withCredentials([sshUserPrivateKey(credentialsId: 'c93aac1c-ba76-4149-87e6-45fb5590e613', keyFileVariable: 'id_rsa')]) { remote.identityFile = id_rsa // 将jar包上传至服务器 sshPut remote: remote, from: 'target/server-0.0.1.jar', into: '/data/www/target' // 重启服务 sshCommand remote: remote, command: "systemctl stop spring" sshCommand remote: remote, command: "systemctl start spring" } } } } } }
前端的持续继承与后端基本保持一致。值得注意的是须要把npm的缓存打开。Angular的配置文件以下所示ubuntu
pipeline { agent any stages { stage('检出') { steps { checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]]) } } stage('构建') { steps { echo '构建中...' sh 'npm i' sh 'npm run build:prod' } } stage('部署') { steps { echo '部署中...' script { def remote = [:] remote.name = 'web-server' remote.allowAnyHosts = true remote.host = 'xxxx.xxx' remote.user = 'root' withCredentials([sshUserPrivateKey(credentialsId: 'c93aac1c-ba76-4149-87e6-45fb5590e613', keyFileVariable: 'id_rsa')]) { // 私钥文件地址 remote.identityFile = id_rsa sshPut remote: remote, from: 'dist/nas-web/', into: '/data/www/target/dist' } } } } } }