1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-10 00:12:09 +00:00

CI: use Makefile to lint, build, and deploy

Switch from the deploy.sh shell script to a more configurable Makefile.
This commit is contained in:
rohan kumar 2020-12-12 21:04:01 -08:00
parent b9d22a1510
commit 40ea94c33b
No known key found for this signature in database
GPG key ID: 1E892DB2A5F84479
8 changed files with 71 additions and 46 deletions

View file

@ -13,10 +13,7 @@ triggers:
condition: always condition: always
to: seirdy@seirdy.one to: seirdy@seirdy.one
tasks: tasks:
- build: | - build_deploy: |
cd seirdy.one
hugo
- upload: |
cd seirdy.one cd seirdy.one
echo "StrictHostKeyChecking=no" >> ~/.ssh/config echo "StrictHostKeyChecking=no" >> ~/.ssh/config
sh ./deploy.sh seirdy.one make build deploy

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
public/ public/
public_*/ public_*/
hint-report/ hint-report/
.hintrc-local

View file

@ -5,12 +5,15 @@
"connector": { "connector": {
"name": "puppeteer", "name": "puppeteer",
"options": { "options": {
"browser": "Chromium", "headless": true,
"headless": false "browser": "Chromium"
} }
}, },
"browserslist": [ "browserslist": [
">.01%, last 2 versions, not dead" ">0%",
"last 8 versions",
"not dead",
"dead"
], ],
"hints": { "hints": {
"axe/other": "error", "axe/other": "error",

5
.rsyncignore Normal file
View file

@ -0,0 +1,5 @@
misc/
music.txt
music.txt.gz
.well-known
_*

4
.stylelintignore Normal file
View file

@ -0,0 +1,4 @@
public/
public_*/
hint-report/
themes/etch-custom/exampleSite

6
.stylelintrc.json Normal file
View file

@ -0,0 +1,6 @@
{
"extends": "stylelint-config-standard",
"rules": {
"indentation": "tab"
}
}

47
Makefile Normal file
View file

@ -0,0 +1,47 @@
CSS_DIR = themes/etch-custom/assets/css
USER = deploy@seirdy.one
WWW_ROOT = /var/www/seirdy.one
GEMINI_ROOT = /srv/gemini/seirdy.one
WWW_RSYNC_DEST = $(USER):$(WWW_ROOT)
GEMINI_RSYNC_DEST = $(USER):$(GEMINI_ROOT)
OUTPUT_DIR = public/
RSYNCFLAGS += -avzP --zc=zstd
# .hintrc-local for linting local files
# same as regular .hintrc but with a different connector.
.hintrc-local: .hintrc
jq --tab '.connector .name = "local" | del(.connector .options)' <.hintrc >.hintrc-local
clean:
rm -rf $(OUTPUT_DIR) .hintrc-local
lint-css:
stylelint $(CSS_DIR)/main.css $(CSS_DIR)/dark.css $(CSS_DIR)/narrow.css
csslint $(CSS_DIR)
lint: lint-css build .hintrc-local
hint --config .hintrc-local -f codeframe $(OUTPUT_DIR)
hugo:
hugo
build: hugo
ifndef NO_GZIP_STATIC
find $(OUTPUT_DIR) -type f -name '*.html' -o -name '*.css' -o -name '*.xml' -o -name '*.txt' \
| grep -v gemini \
| xargs zopfli --i150 --gzip
endif
deploy: build
rsync $(RSYNCFLAGS) --exclude 'gemini' --exclude '*.gmi' --exclude-from .rsyncignore public/ $(WWW_RSYNC_DEST) --delete
rsync $(RSYNCFLAGS) --exclude '*.html' --exclude '*.xml' --exclude-from .rsyncignore public/gemini/ public/about public/posts public/publickey.txt $(GEMINI_RSYNC_DEST)/
rsync $(RSYNCFLAGS) public/posts/gemini.xml $(GEMINI_RSYNC_DEST)/feed.xml
all: clean lint deploy
.PHONY: clean lint-css lint build deploy all

View file

@ -1,38 +0,0 @@
#!/bin/sh
case "$1" in
seirdy.one)
login='deploy@seirdy.one' # user@host
www_prefix="$login:/var/www/seirdy.one"
gemini_prefix="$login:/srv/gemini/seirdy.one"
;;
envs.net)
login='seirdy@envs.net'
www_prefix="$login:/home/seirdy/public_html"
gemini_prefix="$login:/home/seirdy/public_gemini"
;;
localhost)
www_prefix='/tmp/www/seeirdy.one'
gemini_prefix='/tmp/gemini/serve/seirdy.one'
mkdir -p "$www_prefix" "$gemini_prefix"
;;
*)
echo 'must supply hostname' >&2
exit 1
;;
esac
# I use gzip_static with nginx
if [ "$1" = 'seirdy.one' ]; then
find public -type f -name '*.html' -o -name '*.css' -o -name '*.xml' -o -name '*.txt' \
| grep -v gemini \
| xargs zopfli
fi
rsync -avzP \
--exclude 'gemini' --exclude '*.gmi' --exclude 'misc/' --exclude 'music.txt' --exclude '.well-known' \
public/ "$www_prefix/" --delete
rsync -avzP \
--exclude '*.html' --exclude 'misc/' --exclude 'music.txt' --exclude '*.xml' \
public/gemini/ public/about public/posts public/publickey.txt "$gemini_prefix/" --delete
rsync -avzP public/posts/gemini.xml "$gemini_prefix/feed.xml"