This commit is contained in:
@@ -15,6 +15,9 @@ jobs:
|
||||
SSH_USER: ${{ vars.SSH_USER }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Show resolved non-secret config
|
||||
run: |
|
||||
echo "SSH_HOST=$SSH_HOST"
|
||||
@@ -44,6 +47,24 @@ jobs:
|
||||
"$SSH_USER@$SSH_HOST" \
|
||||
"echo SSH OK"
|
||||
|
||||
- name: Install deployment script
|
||||
run: |
|
||||
set -e
|
||||
scp -i ~/.ssh/id_deploy \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-o BatchMode=yes \
|
||||
-o ConnectTimeout=10 \
|
||||
-P "$SSH_PORT" \
|
||||
scripts/actualize-singlechat.sh \
|
||||
"$SSH_USER@$SSH_HOST:/tmp/actualize-singlechat.sh"
|
||||
ssh -i ~/.ssh/id_deploy \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-o BatchMode=yes \
|
||||
-o ConnectTimeout=10 \
|
||||
-p "$SSH_PORT" \
|
||||
"$SSH_USER@$SSH_HOST" \
|
||||
"sudo install -m 755 /tmp/actualize-singlechat.sh /usr/local/bin/actualize-singlechat.sh"
|
||||
|
||||
- name: Run deployment script
|
||||
run: |
|
||||
set -e
|
||||
|
||||
@@ -55,14 +55,14 @@ sudo journalctl -u ypchat -f
|
||||
|
||||
## Auto-Rollout mit Gitea
|
||||
|
||||
Der Workflow `.gitea/workflows/deploy.yml` startet bei Push auf `main` per SSH das Server-Skript `/usr/local/bin/actualize-singlechat.sh`.
|
||||
Der Workflow `.gitea/workflows/deploy.yml` startet bei Push auf `main` per SSH das Server-Skript `/usr/local/bin/actualize-singlechat.sh`. Das Skript wird vom Workflow vor dem Start nach `/usr/local/bin` installiert.
|
||||
|
||||
Gitea-Konfiguration:
|
||||
|
||||
- Variables: `SSH_HOST`, `SSH_PORT`, `SSH_USER`
|
||||
- Secret: `PROD_SSH_KEY_B64` mit dem base64-kodierten privaten Deploy-Key
|
||||
|
||||
Server-Skript installieren:
|
||||
Server-Skript manuell testen:
|
||||
|
||||
```bash
|
||||
sudo install -m 755 scripts/actualize-singlechat.sh /usr/local/bin/actualize-singlechat.sh
|
||||
|
||||
@@ -101,7 +101,7 @@ sudo systemctl stop singlechat
|
||||
|
||||
### Automatisch per Gitea Actions
|
||||
|
||||
Der Workflow `.gitea/workflows/deploy.yml` deployt bei jedem Push auf `main` per SSH auf den Produktionsserver und startet dort das Rollout-Skript.
|
||||
Der Workflow `.gitea/workflows/deploy.yml` deployt bei jedem Push auf `main` per SSH auf den Produktionsserver, installiert dort das aktuelle Rollout-Skript und startet es.
|
||||
|
||||
In Gitea müssen dafür gesetzt sein:
|
||||
|
||||
@@ -112,7 +112,7 @@ In Gitea müssen dafür gesetzt sein:
|
||||
- Repository Secret:
|
||||
- `PROD_SSH_KEY_B64`: privater SSH-Key base64-kodiert
|
||||
|
||||
Auf dem Produktionsserver das Rollout-Skript installieren:
|
||||
Das Rollout-Skript kann bei Bedarf auch manuell installiert und getestet werden:
|
||||
|
||||
```bash
|
||||
sudo install -m 755 scripts/actualize-singlechat.sh /usr/local/bin/actualize-singlechat.sh
|
||||
|
||||
Reference in New Issue
Block a user