前端还在手动打包上传代码到服务器?

308 阅读2分钟

前言

测试:前端传一下代码

你:好的。

接下来就得合并代码,执行build,连接ftp,上传文件,一顿操作下来,忘记了刚才在干啥了,哎,刚才在干啥呢。。

打包、传代码这种事一看就是可以自动化做的事情,怎么还让我们来手动操作呢

看看正确的做法

image.png

来看看我是怎么传代码的,点击立即构建,沟通群就收到消息 @测试,前端已经传好代码啦

image.png

是什么

这么好用的到底是啥呢?

Jenkins 作为领先的开源自动化服务,Jenkins 提供了数百个插件来支持构建、部署和自动化任何项目。

安装链接: www.jenkins.io/doc/book/in…

配置教程

安装插件

系统管理->插件管理:安装插件 Publish Over SSH

ssh上传的关键插件

image.png

添加凭据

系统管理-凭据管理:添加凭据

这里我们是git私有仓库,需要账号密码,这里创建一个通用的拉代码的账号

image.png

配置nodejs版本

系统管理-全局工具配置

image.png

配置ssh服务器

系统管理-系统配置

image.png

添加任务

添加一个流水线任务,一般现在都用这个

image.png

配置任务

配置了那么多,终于来到了最重要的任务配置了

主要的是我们流水线脚本怎么写了

image.png

看这么复杂的脚本,其实就3步,拉代码,打包,传代码

pipeline {
    agent any
    stages {
         
        stage('view') { //阶段名字,自己定义
            steps {
                dir('view') {//指定凭据git_jenkins从git拉代码到view文件夹
                    git branch: 'test', credentialsId: 'git_jenkins', url: 'http://git.xxxxx.com/project1'
                }
            }
        }
        stage('npm') {
            steps {
                nodejs('nodejs14') {//使用nodejs14版本,打包
                    dir('view') {
                        sh 'npm install -g yarn'
                        sh 'yarn install'
                        sh 'yarn run build'
                    }
                }
            }
        }
        stage('tar') {//压缩
            steps {
                sh 'pwd && cd view/dist && tar -cf ../../dist.tar *'
            }
        }
        stage('sshPublisher') { //上传文件
            steps{
                sshPublisher(publishers: [sshPublisherDesc(configName: 'deve_test', sshCredentials: [encryptedPassphrase: '{+/afdsasdf++fYYnrlhLX2sa}', key: '', keyPath: '', username: 'root'], transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /data/websites/test/vue/main
                pwd
                tar -xf dist.tar''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/data/websites/test/vue/main', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'dist.tar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
		 
    }
}

sshPublisher这一步需要我们用流水线语法生成

image.png

点击流水线语法,单独生成最后一步

image.png

image.png

image.png

把生成的代码,放到最后一步

立即构建

点击立即构建,在服务器应该就能看到这样的文件

image.png

总结

jenkins作为自动化部署服务,可以做任务自动化相关的任务,前端打包,后端打包、测试、服务发布等等

例如:git代码push后自动打包