配置push gitlab触发jenkins自动打包发布记录

前提:承接上篇 flutter1.9 + vscode + Andorid SDK + java JDK实践,用flutte-web做了一个简单的导航网页(这里推荐老孟的组件库),现在发布一个flutter-web做的门户导航,导航资源(常用地址)在项目json文件中

目的: 任何有权限的人更改项目的json文件(增减常用网站资源)后,提交代码到git就能自动发布

准备工作和配置

   1. 服务器一台(安装flutter,jenkins,nginx)

   2. 登录服务器工具(我用secureCRT  => 用到这个就想到java大神--陈涛) 

   2. 配置jenkins, 配置gitlab

   3. 配置nginx访问页面


第一步: 安装secureCRT

crt详细破解教程  就不赘述了。看完链接记得这两个点: 

1. 输入name和company 用截图图片上的 

 2. 点击generate重新生成license key 再粘贴过去否则不会成功

第二步: 在linux上安装flutter

 前提:我推荐先看一篇关于linux环境变量的文章  环境配置文件的区别 

 了解了基础知识,我们来操作

  1.  安装flutter

    我选在在home目录下, git clone  https://github.com/flutter/flutter

   很慢的话,我就直接在下载到本地(链接要是打不开,就去上面的github上下载)

   2. 如果是下载到本地,就用CRT上传本地安装包到服务器  

        (1)在 CRT  按ALT+P进入sftp

        (2)pwd查看当前所在目录

        (3)cd  /home (我下载在home目录)

         (4)put  本机文件路径(put  C:\Users\Downloads\flutter_linux_1.17.3-stable.tar.xz)

         (5) 在服务器home目录下查看是否上传成功

          (6) 

                   将xz文件解压成tar文件 xz -d filename (压缩xz -z filename)

                   将tar文件解压  tar -xvf filename (压缩tar -cvf filename)

                    或者一次性到位tar xvJf filename

  3.  解压了安装包出现了flutter文件夹,接下来就是配置环境变量 

   进入 vi ~/.bash_profile

   按 i  进行插入编辑

  export PUB_HOSTED_URL=https://pub.flutter-io.cn

  export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

  export PATH=/home/flutter/bin:$PATH

按 esc  退出插入模式  :wq保存退出

source ~/.bash_profile 使保存生效

4.验证是否有了flutter命令

执行 flutter doctor -v

如果可以了 查看分支  flutter channel

切换分支flutter channel beta  (web项目才需要到beta)

尝试一下flutter build  web打包可不可以

提示我暂时不支持,所以切记要开启web支持 , 执行:flutter config --enable-web 

执行 flutter doctor -v 能看到有devices就ok 了



第三步: 在服务器上安装jenkins

完美的安装教程点这里

service jenkins start  提示service 命令找不到,那就安装一个

bash: service: command not found

1. yum list | grep initscripts

2. yum install initscripts -y


第四步:配置gitlab push触发jenkins自动打包

  注意:三个插件:gitlab(只有有这个插件才会出现下图图一钩子,如果是github触发就需要相应的github插件,下面的钩子名称也会有所区别),gitlab hook, Build Authorization Token Root

图一

下图中的token是点问号生成的,注意了。

图二

  参考链接 1  参考链接 

这里我只描述问题。按照第一篇就可以配置成功,第二篇辅助

问题1:gitlab 10.6 版本以后为了安全,不允许向本地网络发送webhook请求,如果想向本地网络发送webhook请求,则需要使用管理员帐号登录


解决1:下图圈出来的地方,管理员有一个扳手样的设置,进入admin area后选择---setting ---network---找到下图中的outBound request 勾选 allow requests to the local network from hooks services



问题二: 下载插件总是失败,gotlab hook 依赖的ruby-runtime提示不支持java11

现在高版本jenkins都支持java11,甚至会提示你升级。但是插件没跟上兼容。但是在虚拟机上查看java版本java -version看到的是8.    让后一度困惑。

后来发现乌班图上面有两个java版本,一个11,一个8. 切换java版本后gitlab hook安装成功

```

//此命令将列出Ubuntu存储库中可用的所有JDK软件包,系统上仅安装带有“i”前缀的软件包

sudo aptitude search jdk  // 查看所有安装的jdk

which java  // 安装目录

sudoupdate-alternatives --config java  // 切换java版本

```


如果是下面的错误,多下载几次吧。要不就去官网下载后上传

java.net.UnknownHostException: updates.jenkins.io


配置成功后,点击test测试,返回200代表成功,或者修改代码push,看见jenkins有构建记录,那代码在哪里呢

/usr/lib/jenkins/jenkins.war WAR包

/etc/sysconfig/jenkins 配置文件

/var/lib/jenkins/ 默认的JENKINS_HOME目录

/var/log/jenkins/jenkins.log Jenkins日志文件

代码已经可以自动化部署到我们的jenkins所在的服务器,目录为jenkins的workspace目录

在这里

/var/lib/jenkins/workspace

这个工作目录包含代码 和打包后的文件,可以指定到其他文件夹,按照下面的设置代码就会被放到指定文件夹

jenkins部署到多台服务器,有兴趣可以参考链接

问题2: 当服务器有了flutter命令后,打包却不成功,jenkins构建错误记录:提示找不到flutter命令

这里就要注意  jenkins执行shell环境变量问题,需要知道jenkins找环境变量的顺序

解决2:

在执行命令前都去刷一遍变量文件:source ~/.bash_profile 就可以了


可以发现构建前会出来一堆的文件信息,最下面就是我们配置的环境变量,找到了环境变量就可以构建了


第五步 :在服务器安装nginx,配置好后访问页面

安装很简单

在安装nginx前首先要确认系统中安装了

安装: yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

(1) 下载 wget http://nginx.org/download/nginx-1.12.2.tar.gz

        # 如果没有安装wget

        # 下载已编译版本

        $ yum install wget

    (2) 解压 tar.gz 使用tar命令进行解压 : tar -zxvf nginx-1.12.2.tar.gz

tip:解压到指定的文件夹 :tar -zxvf nginx-1.12.2.tar.gz  -C /usr/java

    gz文件的解压 gzip 命令: gzip -b nginx.gz

    (3) 进入解压后的文件夹 cd nginx-1.12.2

    (4) 执行 ./configure  来查看是否可以执行安装

安装报错误的话比如:“C compiler cc is not found”,这个就是缺少编译环境,安装一下就可以了 yum -y install gcc make        gcc-c++ openssl-devel wget

        安装Nginx时报错

        ./configure:  error: the HTTP rewrite module requires the PCRE library.

解决:yum -y install pcre-devel openssl openssl-devel

        如果没有error信息,就可以执行下边的安装了:

    (5) 安装  make -j4 && make install

    (6) 此时已经有nginx文件夹生成,返回进入到nginx目录,执行sbin/nginx -t 看结果是否成功 (在/usr/local/nginx)

(7) 编辑nginx配置文件

到nginx目录  

cd usr/local/nginx

vim conf/nginx.conf   配置端口和打包后的路径

:wq保存退出后,在nginx目录下重启nginx  

重启服务 sbin/nginx -s reload

  问题:在重启时报错  提示 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

  解决: [root@localhost nginx]/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

  再重启即可


curl 127.0.0.1:8324 尝试访问本地文件,可行就很nice

问题:如果在浏览器打不开,要考虑是不是防火墙没开这个8342 端口

      检查系统版本cat /etc/redhat-release

      显示  CentOS Linux release 7.5.1804 (Core)

      CentOS7 默认使用firewalld防火墙,也有的是iptables防火墙,去这里仔细看看命令检查,开启端口 传送门

      查看端口是否开启 : firewall-cmd --query-port=8324/tcp

      开启端口 : firewall-cmd --add-port=8324/tcp --permanent  ( --permanent   #永久生效,没有此参数重启后失效)

       重启防火墙: systemctl restart firewalld

问题:访问页面提示403 forbidden

修改nginx配置文件第一行: vim  conf/nginx.conf

user root; 给nginx 用户root权限

tips:重启服务器后记得要重启jenkins 和 nginx  ,当然你也可以配置开机自启动

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342