tangled
alpha
login
or
join now
dunkirk.sh
/
indiko
6
fork
atom
my own indieAuth provider!
indiko.dunkirk.sh/docs
indieauth
oauth2-server
6
fork
atom
overview
issues
pulls
pipelines
feat: update the deploy workflow
dunkirk.sh
2 weeks ago
6610cb02
e03aeaf8
verified
This commit was signed with the committer's
known signature
.
dunkirk.sh
SSH Key Fingerprint:
SHA256:DqcG0RXYExE26KiWo3VxJnsxswN1QNfTBvB+bdSpk80=
+9
-65
1 changed file
expand all
collapse all
unified
split
.github
workflows
deploy.yaml
+9
-65
.github/workflows/deploy.yaml
···
2
2
3
3
on:
4
4
push:
5
5
-
branches:
6
6
-
- main
5
5
+
branches: [main]
7
6
workflow_dispatch:
8
7
9
8
jobs:
10
9
deploy:
11
11
-
runs-on: ubuntu-latest
12
12
-
steps:
13
13
-
- uses: actions/checkout@v3
14
14
-
15
15
-
- name: Setup Tailscale
16
16
-
uses: tailscale/github-action@v3
17
17
-
with:
18
18
-
oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}
19
19
-
oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}
20
20
-
tags: tag:ci
21
21
-
use-cache: "true"
22
22
-
23
23
-
- name: Configure SSH
24
24
-
run: |
25
25
-
mkdir -p ~/.ssh
26
26
-
echo "StrictHostKeyChecking no" >> ~/.ssh/config
27
27
-
28
28
-
- name: Deploy to server
29
29
-
run: |
30
30
-
ssh indiko@terebithia << 'EOF'
31
31
-
cd /var/lib/indiko/app
32
32
-
git fetch --all
33
33
-
git reset --hard origin/main
34
34
-
bun install
35
35
-
sudo /run/current-system/sw/bin/systemctl restart indiko.service
36
36
-
EOF
37
37
-
38
38
-
- name: Health check
39
39
-
run: |
40
40
-
HEALTH_URL="https://indiko.dunkirk.sh/health"
41
41
-
MAX_RETRIES=6
42
42
-
RETRY_DELAY=5
43
43
-
44
44
-
for i in $(seq 1 $MAX_RETRIES); do
45
45
-
echo "Health check attempt $i/$MAX_RETRIES..."
46
46
-
47
47
-
RESPONSE=$(curl -s -w "\n%{http_code}" "$HEALTH_URL" || echo "000")
48
48
-
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
49
49
-
BODY=$(echo "$RESPONSE" | head -n-1)
50
50
-
51
51
-
if [ "$HTTP_CODE" = "200" ]; then
52
52
-
# Validate response contains "status":"ok"
53
53
-
if echo "$BODY" | grep -q '"status":"ok"'; then
54
54
-
echo "✅ Service is healthy (HTTP $HTTP_CODE)"
55
55
-
echo "Response: $BODY"
56
56
-
exit 0
57
57
-
else
58
58
-
echo "❌ Health check returned 200 but invalid body"
59
59
-
echo "Response: $BODY"
60
60
-
fi
61
61
-
else
62
62
-
echo "❌ Health check failed with HTTP $HTTP_CODE"
63
63
-
echo "Response: $BODY"
64
64
-
fi
65
65
-
66
66
-
if [ $i -lt $MAX_RETRIES ]; then
67
67
-
echo "Retrying in ${RETRY_DELAY}s..."
68
68
-
sleep $RETRY_DELAY
69
69
-
fi
70
70
-
done
71
71
-
72
72
-
echo "❌ Health check failed after $MAX_RETRIES attempts"
73
73
-
exit 1
10
10
+
uses: taciturnaxolotl/dots/.github/workflows/deploy-service.yml@main
11
11
+
with:
12
12
+
service: indiko
13
13
+
health_url: https://indiko.dunkirk.sh/health
14
14
+
db_path: /var/lib/indiko/data/indiko.db
15
15
+
secrets:
16
16
+
TS_OAUTH_CLIENT_ID: ${{ secrets.TS_OAUTH_CLIENT_ID }}
17
17
+
TS_OAUTH_SECRET: ${{ secrets.TS_OAUTH_SECRET }}