10 Commits

Author SHA1 Message Date
arian 8e105d8b93 Merge branch 'actions'
Build Debian Package / build (push) Successful in 6s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-28 19:32:00 -04:00
arian 5acd4ac728 ci(build): add branch and tag triggers for build workflow
Build Debian Package / build (push) Successful in 7s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-28 19:29:41 -04:00
arian 387c139274 Merge branch 'pr-templates-rm'
Build Debian Package / build (push) Successful in 8s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-27 18:13:10 -04:00
arian 95556d4d84 refactor(upload): remove unused templates
Build Debian Package / build (push) Successful in 9s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-27 18:05:06 -04:00
arian a56203f4f5 Merge branch 'actions'
Build Debian Package / build (push) Successful in 6s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-27 17:44:47 -04:00
arian 67e9ba55bf ci(debian): downgrade upload-artifact action to v3
Build Debian Package / build (push) Successful in 17s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-27 00:47:09 -04:00
arian 62d70d4726 ci(docker): update build script to copy output from container
Build Debian Package / build (push) Failing after 8s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-27 00:45:12 -04:00
arian fc162bc6ee Revert "ci(debian): fix permissions issue with deb building workflow"
Build Debian Package / build (push) Successful in 8s
This reverts commit 053be5dbe5.

Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-27 00:41:31 -04:00
arian 053be5dbe5 ci(debian): fix permissions issue with deb building workflow
Build Debian Package / build (push) Successful in 8s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-27 00:34:46 -04:00
arian 310ebfe903 ci(debian): add gitea workflow for automated deb package building
Build Debian Package / build (push) Successful in 1m28s
Signed-off-by: Arian Nasr <arian@2ari.ca>
2026-05-27 00:21:46 -04:00
5 changed files with 41 additions and 32 deletions
+31
View File
@@ -0,0 +1,31 @@
name: Build Debian Package
on:
push:
branches:
- '**'
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Make scripts executable
run: |
chmod +x release/build-docker.sh
chmod +x release/build-deb.sh
- name: Build Debian Package
run: ./release/build-docker.sh
- name: Upload Build Artifact
uses: actions/upload-artifact@v3
with:
name: navidrome-uploader-deb
path: output/*.deb
retention-days: 5
+5 -3
View File
@@ -3,7 +3,7 @@
# March 6, 2026
import os
from flask import Flask, request, render_template
from flask import Flask, request, render_template, jsonify
from werkzeug.utils import secure_filename
UPLOAD_FOLDER = os.environ.get('NAVIDROME_MUSIC_FOLDER', '/opt/navidrome/music')
@@ -25,13 +25,15 @@ def ping():
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
uploaded_count = 0
for key, file in request.files.items():
if key.startswith('file') and file and allowed_file(file.filename) and file.filename != '':
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
uploaded_count += 1
else:
return render_template('error.html', error_message=f'File is not allowed.'), 400
return jsonify({"error": f"File '{file.filename}' is not allowed or is empty."}), 400
return render_template('success.html', success_message=f'{len(request.files)} file(s) uploaded successfully!'), 200
return jsonify({"message": f"{uploaded_count} file(s) uploaded successfully!"}), 200
return render_template('index.html'), 200
+5 -1
View File
@@ -8,4 +8,8 @@ cd "${PROJECT_ROOT}"
docker build --platform linux/amd64 -t uploader-builder -f Dockerfile.build .
docker run --rm --platform linux/amd64 -v "$(pwd)/output:/dist" uploader-builder
docker run --name uploader-builder-container --platform linux/amd64 uploader-builder
docker cp uploader-builder-container:/dist/. output/
docker rm uploader-builder-container
-14
View File
@@ -1,14 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Error - Upload Music</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" />
</head>
<body>
<h1>Error</h1>
<p>{{ error_message }}</p>
<a href="/"><button>Upload another file</button></a>
</body>
</html>
-14
View File
@@ -1,14 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Success - Upload Music</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" />
</head>
<body>
<h1>Success</h1>
<p>{{ success_message }}</p>
<a href="/"><button>Upload another file</button></a>
</body>
</html>