August 4, 2022
By: Kevin

重新生成blog的自动化脚本

  1. Blog的发布流程
  2. 自动化
  3. 也可用curl直接调用jenkins提供的api
  4. blog的.git/hooks目录下新建pre-receive文件,内容如下:

Blog的发布流程

你会发现, 除了头两步, 后面的其实和写博客都没啥关系....

而且还得有权限, 我们可以使用一个脚本把这部分优化掉.

+--------------+
|  Write Blog  |
+--------------+
       |
       v
+--------------+
| Push to GIT  |---------+
+--------------+         |
       |                 |
       v                 |
+--------------+         |  
| open Jenkins |         |
+--------------+         |  
       |                 |  
       v                 |  
+--------------+         |  
|     Login    |         |  
+--------------+         |  
       |                 | 这些步骤可以用脚本执行!  
       v                 |
+--------------+         |
| find blog Job|         |
+--------------+         |
       |                 |
       v                 |
+---------------+        |
| Start a build |        |
+---------------+        |
       |                 |
       v                 |
+---------------+        |
|      DONE     |<-------+
+---------------+

自动化

什么是我们的首选呢, 当然是clojure!

需要的库, 在project.clj添加一下

[com.offbytwo.jenkins/jenkins-client "0.3.8"]

需要执行的脚本(需要问马老师设置一个低权限用户....)

(import [com.offbytwo.jenkins JenkinsServer]
        [com.offbytwo.jenkins.model JobWithDetails Job ]
        [java.net URI])


(def server (JenkinsServer.
             (URI. "http://47.104.73.40:8888/")
             "mahaiqiang"
             "Marvin.Ma"))

(when-let [job  (.getJob server "blog_auto_deploy")]
  (.build job true))

如果你用emacs

每次写完blog, C-c C-c, 搞定.

也可用curl直接调用jenkins提供的api


curl --user marvin:0b73d8f30555c647815cdef5cecee42d http://106.14.1.13:8080/view/%E5%8D%9A%E5%AE%A2/job/blog_auto_deploy/build?token=Abcd1234

blog的.git/hooks目录下新建pre-receive文件,内容如下:

#!/bin/sh

curl --user marvin:0b73d8f30555c647815cdef5cecee42d http://106.14.1.13:8080/view/%E5%8D%9A%E5%AE%A2/job/blog_auto_deploy/build?token=Abcd1234

给可执行权限

chmod +x pre-receive
Tags: clojure