forked from HoverBaum/meilidu-hexo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
52 lines (45 loc) · 1.88 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Deploy hexo site by travis-ci
# https://github.com/jkeylu/deploy-hexo-site-by-travis-ci
# LICENSE: MIT
#
# 1. Copy this file to the root of your repository, then rename it to '.travis.yml'
# 2. Replace 'YOUR NAME' and 'YOUR EMAIL' at line 29
# 3. Add an Environment Variable 'DEPLOY_REPO'
# 1. Generate github access token on https://github.com/settings/applications#personal-access-tokens
# 2. Add an Environment Variable on https://travis-ci.org/{github username}/{repository name}/settings/env_vars
# Variable Name: DEPLOY_REPO
# Variable Value: https://{githb access token}@github.com/{github username}/{repository name}.git
# Example: DEPLOY_REPO=https://[email protected]/jkeylu/test-hexo-on-travis-ci.git
language: node_js
node_js:
- "6"
branches:
only:
- master
before_install:
- npm install -g hexo
install:
- npm install
# Notice: Replace 'YOUR NAME' and 'YOUR EMAIL'
before_script:
- git config --global user.name 'Travis'
- git config --global user.email '[email protected]'
script:
- mkdir .theme
- TARGETDIR='.theme';for file in *;do test "$file" != "$TARGETDIR" && cp -r "$file" "$TARGETDIR/";done #create a folder with theme in it
- mkdir .predeploy # make a folder for pre deploy
- cd .predeploy
- git clone --depth 1 --branch development --single-branch $DEPLOY_REPO . # get the files from the development branch
- cp -r ../.theme themes/meilidu/ #copy theme over
- npm install
- hexo generate #generate site
- mkdir .deploy
- cd .deploy # create folder for deploy
- git clone --depth 1 --branch master --single-branch $DEPLOY_REPO . # get the master branch
- rm -rf ./*
- cp -r ../public/* . # copy generated site over
- cp ../README.md README.md # also copy readme so repo isn't so empty
- git add -A . # add all the things
- git commit -m 'Site updated'
- git branch -m master
- git push -q -u origin master # push new version