Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0656d245d5 | |||
| d2b9d0bce9 |
@@ -21,13 +21,3 @@ jobs:
|
|||||||
chmod 600 ~/.ssh/deploy_key
|
chmod 600 ~/.ssh/deploy_key
|
||||||
ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-nginx
|
ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-nginx
|
||||||
|
|
||||||
test:
|
|
||||||
needs: deploy
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-python@v5
|
|
||||||
with:
|
|
||||||
python-version: '3.x'
|
|
||||||
- run: pip install pytest
|
|
||||||
- run: pytest tests/ -v
|
|
||||||
|
|||||||
+2
-1
@@ -23,13 +23,14 @@ server {
|
|||||||
}
|
}
|
||||||
NGINXCONF
|
NGINXCONF
|
||||||
|
|
||||||
trap 'git -C /opt/hantim restore "docker/nginx/conf.d/$APP.conf" 2>/dev/null || rm -f "/opt/hantim/docker/nginx/conf.d/$APP.conf"' EXIT
|
trap 'git -C /opt/hantim restore "docker/nginx/conf.d/$APP.conf" 2>/dev/null || rm -f "/opt/hantim/docker/nginx/conf.d/$APP.conf"; docker exec nginx nginx -t && docker exec nginx nginx -s reload' EXIT
|
||||||
docker exec nginx nginx -t && docker exec nginx nginx -s reload
|
docker exec nginx nginx -t && docker exec nginx nginx -s reload
|
||||||
certbot certonly --webroot -w /opt/hantim/docker/nginx/certbot/www \
|
certbot certonly --webroot -w /opt/hantim/docker/nginx/certbot/www \
|
||||||
--non-interactive --agree-tos -m timothykim@fastmail.fm \
|
--non-interactive --agree-tos -m timothykim@fastmail.fm \
|
||||||
--cert-name "$APP" -d "$APP" -d "www.$APP"
|
--cert-name "$APP" -d "$APP" -d "www.$APP"
|
||||||
git -C /opt/hantim restore "docker/nginx/conf.d/$APP.conf" 2>/dev/null || rm -f "/opt/hantim/docker/nginx/conf.d/$APP.conf"
|
git -C /opt/hantim restore "docker/nginx/conf.d/$APP.conf" 2>/dev/null || rm -f "/opt/hantim/docker/nginx/conf.d/$APP.conf"
|
||||||
trap - EXIT
|
trap - EXIT
|
||||||
|
docker exec nginx nginx -t && docker exec nginx nginx -s reload
|
||||||
echo "Certificate issued for $APP"
|
echo "Certificate issued for $APP"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
+29
-14
@@ -253,16 +253,22 @@ cmd_repo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmd_files() {
|
cmd_files() {
|
||||||
|
local all_exist=true
|
||||||
for f in "docker/$APP/compose.yml" ".gitea/workflows/deploy-$APP.yml" "docker/nginx/conf.d/$APP.conf"; do
|
for f in "docker/$APP/compose.yml" ".gitea/workflows/deploy-$APP.yml" "docker/nginx/conf.d/$APP.conf"; do
|
||||||
if [ -e "$REPO_ROOT/$f" ]; then
|
if [ ! -e "$REPO_ROOT/$f" ]; then
|
||||||
echo "Error: $f already exists."
|
all_exist=false
|
||||||
exit 1
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
if [ "$all_exist" = true ]; then
|
||||||
|
echo " All files already exist, skipping."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
echo "==> Creating docker/$APP/compose.yml..."
|
if [ ! -e "$REPO_ROOT/docker/$APP/compose.yml" ]; then
|
||||||
mkdir -p "$REPO_ROOT/docker/$APP"
|
echo "==> Creating docker/$APP/compose.yml..."
|
||||||
cat > "$REPO_ROOT/docker/$APP/compose.yml" <<EOF
|
mkdir -p "$REPO_ROOT/docker/$APP"
|
||||||
|
cat > "$REPO_ROOT/docker/$APP/compose.yml" <<EOF
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
image: git.timothykim.net/hantim/$APP:latest
|
image: git.timothykim.net/hantim/$APP:latest
|
||||||
@@ -275,10 +281,14 @@ networks:
|
|||||||
shared:
|
shared:
|
||||||
external: true
|
external: true
|
||||||
EOF
|
EOF
|
||||||
|
else
|
||||||
|
echo " docker/$APP/compose.yml already exists, skipping."
|
||||||
|
fi
|
||||||
|
|
||||||
echo "==> Creating .gitea/workflows/deploy-$APP.yml..."
|
if [ ! -e "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" ]; then
|
||||||
mkdir -p "$REPO_ROOT/.gitea/workflows"
|
echo "==> Creating .gitea/workflows/deploy-$APP.yml..."
|
||||||
cat > "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" <<'OUTER'
|
mkdir -p "$REPO_ROOT/.gitea/workflows"
|
||||||
|
cat > "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" <<'OUTER'
|
||||||
name: Deploy APP_PLACEHOLDER
|
name: Deploy APP_PLACEHOLDER
|
||||||
|
|
||||||
on:
|
on:
|
||||||
@@ -299,10 +309,14 @@ jobs:
|
|||||||
chmod 600 ~/.ssh/deploy_key
|
chmod 600 ~/.ssh/deploy_key
|
||||||
ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-APP_PLACEHOLDER
|
ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-APP_PLACEHOLDER
|
||||||
OUTER
|
OUTER
|
||||||
sed -i "s/APP_PLACEHOLDER/$APP/g" "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml"
|
sed -i "s/APP_PLACEHOLDER/$APP/g" "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml"
|
||||||
|
else
|
||||||
|
echo " .gitea/workflows/deploy-$APP.yml already exists, skipping."
|
||||||
|
fi
|
||||||
|
|
||||||
echo "==> Creating docker/nginx/conf.d/$APP.conf..."
|
if [ ! -e "$REPO_ROOT/docker/nginx/conf.d/$APP.conf" ]; then
|
||||||
cat > "$REPO_ROOT/docker/nginx/conf.d/$APP.conf" <<NGINX
|
echo "==> Creating docker/nginx/conf.d/$APP.conf..."
|
||||||
|
cat > "$REPO_ROOT/docker/nginx/conf.d/$APP.conf" <<NGINX
|
||||||
# Redirect HTTP to HTTPS, bare domain to www
|
# Redirect HTTP to HTTPS, bare domain to www
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80;
|
||||||
@@ -357,8 +371,9 @@ server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
NGINX
|
NGINX
|
||||||
|
else
|
||||||
echo " Files created. Run 'git add' and commit when ready."
|
echo " docker/nginx/conf.d/$APP.conf already exists, skipping."
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd_cert() {
|
cmd_cert() {
|
||||||
|
|||||||
+26
-11
@@ -156,15 +156,23 @@ cmd_dns() {
|
|||||||
cmd_files() {
|
cmd_files() {
|
||||||
local name="$1"
|
local name="$1"
|
||||||
|
|
||||||
if [ -d "$REPO_ROOT/docker/$name" ]; then
|
local all_exist=true
|
||||||
echo "Error: docker/$name already exists."
|
for f in "docker/$name/compose.yml" ".gitea/workflows/deploy-$name.yml"; do
|
||||||
exit 1
|
if [ ! -e "$REPO_ROOT/$f" ]; then
|
||||||
|
all_exist=false
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ "$all_exist" = true ]; then
|
||||||
|
echo " All files already exist, skipping."
|
||||||
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "==> Creating docker/$name/compose.yml..."
|
if [ ! -e "$REPO_ROOT/docker/$name/compose.yml" ]; then
|
||||||
mkdir -p "$REPO_ROOT/docker/$name"
|
echo "==> Creating docker/$name/compose.yml..."
|
||||||
touch "$REPO_ROOT/docker/$name/.gitignore"
|
mkdir -p "$REPO_ROOT/docker/$name"
|
||||||
cat > "$REPO_ROOT/docker/$name/compose.yml" <<EOF
|
touch "$REPO_ROOT/docker/$name/.gitignore"
|
||||||
|
cat > "$REPO_ROOT/docker/$name/compose.yml" <<EOF
|
||||||
services:
|
services:
|
||||||
$name:
|
$name:
|
||||||
image: TODO
|
image: TODO
|
||||||
@@ -177,10 +185,14 @@ networks:
|
|||||||
shared:
|
shared:
|
||||||
external: true
|
external: true
|
||||||
EOF
|
EOF
|
||||||
|
else
|
||||||
|
echo " docker/$name/compose.yml already exists, skipping."
|
||||||
|
fi
|
||||||
|
|
||||||
echo "==> Creating .gitea/workflows/deploy-$name.yml..."
|
if [ ! -e "$REPO_ROOT/.gitea/workflows/deploy-$name.yml" ]; then
|
||||||
mkdir -p "$REPO_ROOT/.gitea/workflows"
|
echo "==> Creating .gitea/workflows/deploy-$name.yml..."
|
||||||
cat > "$REPO_ROOT/.gitea/workflows/deploy-$name.yml" <<'OUTER'
|
mkdir -p "$REPO_ROOT/.gitea/workflows"
|
||||||
|
cat > "$REPO_ROOT/.gitea/workflows/deploy-$name.yml" <<'OUTER'
|
||||||
name: Deploy APP_PLACEHOLDER
|
name: Deploy APP_PLACEHOLDER
|
||||||
|
|
||||||
on:
|
on:
|
||||||
@@ -201,7 +213,10 @@ jobs:
|
|||||||
chmod 600 ~/.ssh/deploy_key
|
chmod 600 ~/.ssh/deploy_key
|
||||||
ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-APP_PLACEHOLDER
|
ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-APP_PLACEHOLDER
|
||||||
OUTER
|
OUTER
|
||||||
sed -i "s/APP_PLACEHOLDER/$name/g" "$REPO_ROOT/.gitea/workflows/deploy-$name.yml"
|
sed -i "s/APP_PLACEHOLDER/$name/g" "$REPO_ROOT/.gitea/workflows/deploy-$name.yml"
|
||||||
|
else
|
||||||
|
echo " .gitea/workflows/deploy-$name.yml already exists, skipping."
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Done. Edit docker/$name/compose.yml, then commit and push."
|
echo "Done. Edit docker/$name/compose.yml, then commit and push."
|
||||||
|
|||||||
Reference in New Issue
Block a user