rsync
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Elizabeth Hunt 2024-03-09 00:25:48 -07:00
commit 6a4fc2d151
Signed by: simponic
GPG Key ID: 52B3774857EB24B1
11 changed files with 98 additions and 0 deletions

21
.drone.yml Normal file
View File

@ -0,0 +1,21 @@
---
kind: pipeline
type: docker
name: default
steps:
- name: build
image: alpine
commands:
- sh compile.sh
- apk add rsync openssh
- sh deploy.sh
environment:
RSYNC_DESTINATION:
from_secret: RSYNC_DESTINATION
SSH_KEY:
from_secret: SSH_KEY
trigger:
branch:
- main

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
dist/
.env

9
README.md Normal file
View File

@ -0,0 +1,9 @@
very simple CI/CD setup for my [tilde.club](https://tilde.club/~simponic)
instructions:
1. generate a new ssh key with no password (i.e. @ /tmp/id_ed25519)
2. add the key to .ssh/authorized_keys @ tilde.club
3. set RSYNC_DESTINATION in drone.io worker secrets to "<username>@tilde.club:/home/<username>"
4. set SSH_KEY to (echo /tmp/id_ed25519 | base64 -e --wrap=0)
5. profit (keep it simple! don't want env vars leaking for obvious reasons...)

15
compile.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
set -e
mkdir -p dist
pwd=$PWD
for source in "html" "gemini" "gopher"; do
cd $source
echo "building $source..."
./build.sh
cd $pwd
done

21
deploy.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
set -e
echo $SSH_KEY | base64 -d >> /tmp/key
chmod -R 0600 /tmp/key
for item in dist/*; do
echo "copying $item"
if [ -d "$item" ]; then
SOURCE_PATH="$item/"
DEST_PATH="$RSYNC_DESTINATION/$item/"
else
SOURCE_PATH="$item"
DEST_PATH="$RSYNC_DESTINATION"
fi
rsync -e "ssh -i /tmp/key -o StrictHostKeyChecking=no" -avz --delete $SOURCE_PATH $DEST_PATH
done
echo "finished copying to remote host..."
rm /tmp/key

5
gemini/build.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
cp -r ./public ../dist/public_gemini
echo "built gemini site!"

5
gemini/public/index.gmi Normal file
View File

@ -0,0 +1,5 @@
this is my gemini page.
there are many like it, but this one is mine.
=> / back to tilde.club

5
gopher/build.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
cp -r ./public ../dist/public_gopher
echo "finished building gopher site!"

View File

@ -0,0 +1,7 @@
=/usr/bin/figlet -f slant "~"$(stat -c '%U' `pwd`)
this is my gopher page.
there are many like it, but this one is mine.
1back to tilde.club /

5
html/build.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
cp -r ./public ../dist/public_html
echo "finished building HTML"

3
html/public/index.php Normal file
View File

@ -0,0 +1,3 @@
<?php
echo "hai :3"
?>