在Travis-CI中调用EGO自动更新博客
经过一番努力,总于把 EGO 改到可以无需人工介入自动更新博客了,现在只需要在 source
branch中加上两个文件:
.travis.yml
dist: xenial language: generic branches: only: - source git: depth: false quiet: true before_install: - git clone https://github.com/lujun9972/EGO ~/EGO - sudo add-apt-repository ppa:ubuntu-elisp/ppa -y - sudo apt-get update - sudo apt-get install emacs-snapshot -y - emacs-snapshot --version script: - git config --global core.quotepath false - export REPO=$(git remote -v |grep fetch |head -n 1|awk '{print $2}') - git clone -b source ${REPO} ~/source - git clone -b master ${REPO} ~/web - emacs-snapshot --batch -l ./auto_publish.el deploy: provider: pages skip_cleanup: true keep_history: true github_token: $GITHUB_TOKEN local_dir: /home/travis/web target_branch: master on: branch: - source
auto_publish.el
(require 'package) (let* ((no-ssl (and (memq system-type '(windows-nt ms-dos)) (not (gnutls-available-p)))) (proto (if no-ssl "http" "https"))) (when no-ssl (warn "\ Your version of Emacs does not support SSL connections, which is unsafe because it allows man-in-the-middle attacks. There are two things you can do about this warning: 1. Install an Emacs version that does support SSL and be safe. 2. Remove this warning from your init file so you won't see it again.")) ;; Comment/uncomment these two lines to enable/disable MELPA and MELPA Stable as desired (add-to-list 'package-archives (cons "melpa" (concat proto "://melpa.org/packages/")) t) ;;(add-to-list 'package-archives (cons "melpa-stable" (concat proto "://stable.melpa.org/packages/")) t) (when (< emacs-major-version 24) ;; For important compatibility libraries like cl-lib (add-to-list 'package-archives (cons "gnu" (concat proto "://elpa.gnu.org/packages/"))))) (package-initialize) (package-refresh-contents) (package-install 'mustache) (package-install 'htmlize) (setq load-path (cons "~/EGO/" load-path)) (require 'log-edit) (require 'htmlize) (require 'ego) (setq ego-project-config-alist `(("blog" :repository-directory "~/source" :site-domain "https://lujun9972.github.io/" :site-main-title "暗无天日" :site-sub-title "=============>随便,谢谢" :theme (emacs_love) :summary (("years" :year :updates 10) ("authors" :authors) ("tags" :tags)) :source-browse-url ("Github" ,(getenv "REPO")) :personal-disqus-shortname "lujun9972" :personal-google-analytics-id "7bac4fd0247f69c27887e0d4e3aee41e" :ignore-file-name-regexp "README.org" :store-dir "~/web"))) (message "BEGIN TO AUTO PUBLIC") (setq org-export-use-babel nil) (setq debug-on-error t) (ego-do-publication "blog" nil nil nil)
根据自己的需求更改 auto_publish.el
中 ego-project-config-alist
的配置。
然后根据 这里步骤 创建一个repo权限的github token,再为travis-ci中的仓库添加一个名为 GITHUB_TOKEN
的变量,值就是新创建的github token,就可以了。