-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdeploy
executable file
·58 lines (36 loc) · 1.04 KB
/
deploy
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
53
54
55
56
57
58
#!/bin/sh
set -ex
# Steps:
# - Stash (any) changes so we can switch branches later
git stash
# - Generate metadata
mkdir -p metadata
./scripts/make-image-metadata
./scripts/git-metadata
# - Build the site
stack run -- clean
stack run -- build
# - Switch branches
git checkout gh-pages
# - Copy the "_site" to the root, but don't delete things we want. (i.e. the
# things that are peristed due to branch switches; those things in the
# gitignore file.)
rsync -a --filter='P _site/' \
--filter='P _cache/' \
--filter='P .git/' \
--filter='P .gitignore' \
--filter='P .stack-work' \
--filter='P .env' \
--filter='P .nojekyll' \
--filter='P metadata' \
--filter='P CNAME' \
--filter='P spellcheck' \
--delete-excluded \
_site/ .
# - Add commit and push
git add -A
git commit -m "Update." || true
git push --force-with-lease origin gh-pages
# - Bring everything back
git checkout main
git stash pop