• 更加紧密团结在以习近平同志为核心的党中央周围  2019-05-21
  • 马拉维“红旗飘飘”十年间,中国工程印上了当地纸币 2019-05-21
  • 庆祝人民日报创刊70周年系列访谈之颜世贵 2019-05-15
  • 国产新型雷达芯片华睿2号与组网中心同时亮相 2019-05-15
  • VRAR从热转凉 追风上市公司“跌落神坛”追风上市公司“跌落神坛”-手机行情 2019-05-06
  • The GNU General Public License v3.0 2019-05-05
  • 第21届上海国际电影节启幕 设“一带一路电影周” 2019-04-11
  • 广西壮族自治区东兰县“七民一站一阵地工作法”维护群众权益 2019-04-08
  • 苗山脱贫影像志——父母在 不远行 2019-04-08
  • 竹编:缝隙里的乡愁文章中国国家地理网 2019-03-31
  • “几乎是时时在流血、天天有牺牲”,他们的故事你知道吗? 2019-03-31
  • 当前位置:浙江十一选五开奖直播 >  域名 >  正文 > 紫?;ㄊ屎显谥厍煸灾致??

    浙江十一选五开奖直播 www.wmdzr.com   交易 任务 SEO服务 站长团购 联盟

    强夺高达变回高达形态,手臂上和口部的武器打开,短距离能量加农炮,能量加农炮不断发射,完全将战神高达前后左右四个方向完全封锁。

    红花蔷薇小苗多少钱一株?

    风魂只觉脑中轰然一响,心神再乱,纷纷涌涌的意念立时消失,他眼中的天地已失去了刚才那一刻的清明。
    “尽管那时候大哥的修为刚刚达到了封号斗罗级别,家族长老也不乏强者。但就算我们是天下第一宗门,失去了你爷爷的统驭,宗门下各方势力也在蠢蠢欲动。面对武魂殿的步步逼迫,你大伯可谓是举步维艰。幸好,我们昊天宗实力强悍。就算是武魂殿,也绝不敢轻举妄动?!?/p>

    “哼!”娜洁希坦更是郁闷了,就算牙齿受不了也是我疼的好不,你应该关心我,不是关心我的牙齿受不受得了。

    的方式去连接


    前言

    利用markdown+Hexo写文章,整体体验已经很棒。在写作过程中,节省了我不少时间。
    但是,美中不足的,就是发布的时候,需要手动输入命令,build好文件,再用scp部署到服务器上。
    本文,用于记录解决这个痛点的过程。采取的解决方案就是持续集成。

    以下是我用于部署个人站点的服务器概况:

    服务器 - 阿里云ECS
    系统 - CentOS 7
    Git仓库管理工具 - Gitlab(9.0.0)
    CPU - 1核
    内存 - 2 GB (乞丐版????)

    正常情况下,注册GitLab-Runner的服务器和部署生产文件的服务器是分开的。
    因为穷????,我只有一台服务器,所以两者都部署到一起,大家就别太纠结这个点了。

    一、持续集成

    持续集成(Continuous integration),简称 CI,是指开发代码频繁地合并进主干,始终保持可发布状态的这个过程。其中包含持续构建持续发布。

    GitLab 8.0以上的版本就有提供持续集成服务。只要在项目中添加一个.gitlab-ci.yml文件,然后再添加一个Runner,即可进行持续集成。

    我对自动发布博客的总体实现思路:
    添加Runner用于监听git push操作,然后用.gitlab-ci.yml指导步骤的执行,最后用shell脚本copy目标文件到指定目录下。

    二、注册Runner

    前提:请自行Google gitlab-ci-multi-runner 安装教程。

    1. 查看注册必需的URLtoken

    浏览器打开一个GitLab项目,到 Settings-CI/CD Pipelines 下,可以看到一个 Specific Runners块,主要有以下内容:

    How to setup a specific Runner for a new project

    1.Install a Runner compatible with GitLab CI (checkout the GitLab Runner section for information on how to install it).

    2.Specify the following URL during the Runner setup:
    //gitlab.***.com/ci

    3.Use the following registration token during setup: TB8nknzg1woVb4pCx666
    Start the Runner!

    其中第2项的URL和第3项的token,是注册Runner所必需的。
    Runner凭借token注册监听对应的URL。

    2. 在服务器上配置GitLab-Runner

    这里,我用SecureCRT连接上服务器,进行以下操作:

    // 1.运行命令
    sudo gitlab-ci-multi-runner register
    
    // 2.根据提示输入`URL`
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    //gitlab.***.com/ci
    
    // 3.根据提示输入`token`
    Please enter the gitlab-ci token for this runner:
    TB8nknzg1woVb4pCx666
    
    // 4.然后输入runner的描述
    Please enter the gitlab-ci description for this runner:
    wall-runner
    
    // 5.输入标签,可以多个,用逗号隔开即可
    Please enter the gitlab-ci tags for this runner (comma separated):
    test
    
    // 6.是否运行无此标签的构建
    Whether to run untagged builds [true/false]:
    true
    
    // 7.将Runer锁定到当前项目
    Whether to lock the Runner to current project [true/false]:
    true
    
    // 8.选择Runner的类型
    Please enter the executor: ssh, docker+machine, kubernetes, docker, docker-ssh, parallels, shell, virtualbox, docker-ssh+machine:
    shell

    这样,一个GitLab-Runner就创建成功。刷新浏览器页面,在Settings-CI/CD Pipelines 下可以看到runner已经绑定成功。

    GitLab-Runner创建成功

    三. 配置.gitlab-ci.yml

    在要添加持续集成功能的项目的根目录下,创建.gitlab-ci.yml文件,编写构建步骤。
    在编写之前,先大致了解下写法:

    # 定义stages
    stages:
      - install
      - deploy
    
    # 定义需要缓存的文件
    cache:
      paths:
        - node_modules/
    
    # 定义任务
    job1:
      stage: install
      script:
        - cnpm install
      only:
        - master
    
    # 定义任务
    job2:
      stage: deploy
      script:
        - bash pub.sh
      only:
        - master
    • stages关键字定义Pipeline中的各个构建阶段的先后顺序
    • cache关键字定义每个构建阶段,不需要清除的文件
    • 每个构建阶段有自己的别名,比如例子中的job1job2。也有真正的stage名,用于stages中标识先后的顺序
    • script用于定义当前构建阶段需要执行的命令
    • only用于指定哪个Git分支的push操作才能触发自动构建

    以下是我在blog项目应用的.gitlab-ci.yml

    # 持续集成
    
    stages:
      - install
      - build
      - minify
      - deploy
    
    cache:
      paths:
        - node_modules/
        - public/
        - db.json
    
    # 安装依赖
    install_npm:
      stage: install
      script:
       ## - cnpm install [email protected] -g ## 同一台服务器,不用多次安装
        - cnpm install
      only:
        - master
    
    # 编译,生成静态文件
    build_public:
      stage: build
      script:
        - npm run build
      only:
        - master
    
    # 压缩文件
    mini_file:
      stage: minify
      script:
        - npm run minify
      only:
        - master
    
    # 部署
    deploy:
      stage: deploy
      script:
        - bash pub.sh
      only:
        - master
    

    四、用于部署的Shell脚本

    前言中,有提到一个痛点就是scp部署文件。因为网速的原因,每次跑scp命令都要等好几分钟,电脑也不能关机。得等到传输完成,才可以。
    升级为持续集成后,就不需要在本地跑命令了,都统一在服务器上跑。
    而能代替文件传输这个步骤的,就是写一个Shell脚本,让服务器自动copy文件到对应的目录下。


    以下是我应用的Shell脚本pub.sh

    #!bin/bash
    cp -f -r -v ./public/* /mnt/blog/

    作用就是将public文件夹下所有文件copy到/mnt/blog/下。

    五、权限问题

    因为我是同一台服务器上跑命令,所以当前Runner进程必须对相关文件夹有写入和读取权限。
    所以,我把几个文件夹的读写权限赋予Runner进程。
    使用chown命令,对文件夹对拥有者权限进行更改:

    chown wall-runner 文件路径

    如果Runner服务器和生产环境服务器是相互独立的,则可以使用ssh的方式去连接。配置好密钥和绕过指纹检查即可。

    六、享受愉快的持续集成体验

    经过上述的配置,每次push代码到master分支。Runner监听到操作后,就会启动自动构建,完成部署。
    这样,我发表新文章,只需要负责把markdown写好,push代码到GitLab。其他的工作,服务器会自动帮我做好。
    写好文章,我也可以愉快地关机休息,不用去打理其他的事,感觉真棒!
    而且,每次构建记录都有保存在GitLab上??梢栽?code>Pipelines中查看每次构建的结果。

    构建结果

    还可以在README.md加入构建状态图标:

    构建状态图标

    有需要的,就买个服务器折腾下,挺好玩的????
    附上阿里云服务器的优惠券

    当前文章://www.wmdzr.com/ask/question_59174.html

    发布时间:2019-05-22 12:17:31

    红叶碧桃适合在南方种植吗? 又好又多又便宜,木香批发就来华东大型木香产区 金森女贞小苗多少钱一棵? 常春藤小苗多少钱一棵? 红龙月季是藤本吗? 陕西可以栽植葱兰吗? 凌霄的种植时间是什么时候? 紫藤花苗什么时候种植?

    米径13公分黄金柳什么价格能买到? 沭阳高度40~60公分冠幅30~45公分珍珠梅价格 中华文母种子多少钱一斤? 一亩地需要种植多少颗格?;ㄓ酌缒?? 华南哪里有卖结缕草种子的? 云南适合种植玉簪吗? 今年楠木种子价格便宜吗? 枸骨种子一斤有多少粒? 河北哪里有卖蔷薇种子的?

    编辑:文徒

      文章推荐

      分类排行榜

      专栏文章

      更多>

      服务推荐

      浙江十一选五开奖直播
      八仙花耐水湿吗? 扫一扫关注最新创业资讯
    • 更加紧密团结在以习近平同志为核心的党中央周围  2019-05-21
    • 马拉维“红旗飘飘”十年间,中国工程印上了当地纸币 2019-05-21
    • 庆祝人民日报创刊70周年系列访谈之颜世贵 2019-05-15
    • 国产新型雷达芯片华睿2号与组网中心同时亮相 2019-05-15
    • VRAR从热转凉 追风上市公司“跌落神坛”追风上市公司“跌落神坛”-手机行情 2019-05-06
    • The GNU General Public License v3.0 2019-05-05
    • 第21届上海国际电影节启幕 设“一带一路电影周” 2019-04-11
    • 广西壮族自治区东兰县“七民一站一阵地工作法”维护群众权益 2019-04-08
    • 苗山脱贫影像志——父母在 不远行 2019-04-08
    • 竹编:缝隙里的乡愁文章中国国家地理网 2019-03-31
    • “几乎是时时在流血、天天有牺牲”,他们的故事你知道吗? 2019-03-31