Initial
This commit is contained in:
parent
dc4e7ec333
commit
87856c9f86
18
conf/engler-labs/release
Executable file
18
conf/engler-labs/release
Executable file
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
VER="$1"
|
||||
|
||||
cd /var/db/repos/febuild || exit 1
|
||||
|
||||
mv ./www-servers/engler-labs/engler-labs-*.ebuild \
|
||||
./www-servers/engler-labs/engler-labs-$VER.ebuild || exit 1
|
||||
|
||||
pkgdev manifest
|
||||
|
||||
git add .
|
||||
git commit -m "post-release engler-labs $VER"
|
||||
git push
|
||||
|
||||
emerge --oneshot --nodeps engler-labs
|
||||
|
||||
rc-service engler-labs restart
|
||||
20
conf/teatrade/push
Executable file
20
conf/teatrade/push
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
[ ! -d /var/src/teatrader ] && \
|
||||
cd /var/src && \
|
||||
git clone git@git.engler-labs.root64.de:fabous005/teatrader.git && \
|
||||
return 1;
|
||||
cd /var/src/teatrader
|
||||
|
||||
git pull
|
||||
|
||||
cargo build --release
|
||||
|
||||
rsync -av ./static ./templates ./.env /var/lib/teatrader-edge/
|
||||
cp ./target/release/teatrade /var/lib/teatrader-edge/teatrade-edge
|
||||
|
||||
killall teatrade-edge
|
||||
|
||||
cd /var/lib/teatrader-edge/
|
||||
|
||||
exec teatrade-edge
|
||||
23
conf/teatrade/release
Executable file
23
conf/teatrade/release
Executable file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
[ ! -d /var/src/teatrader ] && \
|
||||
cd /var/src && \
|
||||
git clone git@git.engler-labs.root64.de:fabous005/teatrader.git && \
|
||||
return 1;
|
||||
cd /var/src/teatrader
|
||||
|
||||
tag=$(curl -s $GITEA/api/v1/repos/$OWNER/$REPO/releases/latest \
|
||||
| jq -r .tag_name)
|
||||
|
||||
git checkout "$tag"
|
||||
|
||||
cargo build --release
|
||||
|
||||
rsync -av ./static ./templates ./.env /var/lib/teatrader-stable/
|
||||
cp ./target/release/teatrade /var/lib/teatrader-stable/teatrade-stable
|
||||
|
||||
killall teatrade-stable
|
||||
|
||||
cd /var/lib/teatrader-stable/
|
||||
|
||||
exec teatrade-stable
|
||||
57
main.py
Normal file
57
main.py
Normal file
@ -0,0 +1,57 @@
|
||||
import os
|
||||
import subprocess
|
||||
from flask import Flask, request, jsonify
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
WEBBUMP_DIR = "/etc/webbump"
|
||||
|
||||
@app.route('/status', methods=['GET'])
|
||||
def status():
|
||||
"""Minimal endpoint for health check."""
|
||||
return "OK", 200
|
||||
|
||||
@app.route("/webhook", methods=["POST"])
|
||||
def gitea_webhook():
|
||||
data = request.json
|
||||
if not data:
|
||||
print("Received webhook without JSON")
|
||||
return jsonify({"error": "Invalid JSON"}), 400
|
||||
|
||||
# Repository name
|
||||
repo_name = data.get("repository", {}).get("name")
|
||||
if not repo_name:
|
||||
print("Could not get Repository name from JSON")
|
||||
return jsonify({"error": "Repository name not found"}), 400
|
||||
|
||||
# Determine event type from header
|
||||
event_type = request.headers.get("X-Gitea-Event", "").lower()
|
||||
if event_type not in ("release", "push"):
|
||||
return jsonify({"message": f"Ignored event type: {event_type}"}), 200
|
||||
|
||||
if event_type == "push":
|
||||
args = []
|
||||
|
||||
elif event_type == "release":
|
||||
version = data.get("release", {}).get("tag_name")
|
||||
if not version:
|
||||
return jsonify({"error": "Release version not found"}), 400
|
||||
args = [version]
|
||||
|
||||
script_path = os.path.join(WEBBUMP_DIR, repo_name, event_type)
|
||||
if not os.path.isfile(script_path) or not os.access(script_path, os.X_OK):
|
||||
return jsonify({"message": f"No scripts executed for event: {event_type}"}), 200
|
||||
|
||||
# Run the script
|
||||
try:
|
||||
subprocess.run([script_path, *args], check=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(repo_name + " " + script_name + " script failed with exit code: " + e)
|
||||
return jsonify({"error": f"Script failed: {e}"}), 500
|
||||
|
||||
return jsonify({"message": f"Executed {script_path}"}), 200
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host='0.0.0.0', port=5000, debug=True)
|
||||
Loading…
Reference in New Issue
Block a user