Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| da9739060d | |||
| 486dc2d8e9 | |||
| b5fd15c25f | |||
| 7036ff7917 | |||
| 2494152a39 | |||
| 225305bf14 |
@@ -1,75 +1,43 @@
|
||||
name: Publish Scene Search Jellyfin Plugin
|
||||
name: Publish Facial Recognition to Jellyfin
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_tag:
|
||||
description: "Scene Search version tag, e.g. v0.1.5.0"
|
||||
required: true
|
||||
default: "v0.1.5.0"
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: node:20-bookworm
|
||||
options: --add-host=git.trufflemonkey.co.uk:51.195.138.163
|
||||
steps:
|
||||
- name: Check out Gitea distribution repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up SSH for private GitHub source
|
||||
- name: Configure read-only GitHub SSH access
|
||||
env:
|
||||
SOURCE_DEPLOY_KEY: ${{ secrets.SCENE_SEARCH_DEPLOY_KEY }}
|
||||
DEPLOY_KEY: ${{ secrets.FACIAL_RECOGNITION_DEPLOY_KEY }}
|
||||
run: |
|
||||
set -eu
|
||||
test -n "$SOURCE_DEPLOY_KEY" || { echo "Missing SCENE_SEARCH_DEPLOY_KEY"; exit 1; }
|
||||
install -d -m 700 ~/.ssh
|
||||
printf '%s\n' "$SOURCE_DEPLOY_KEY" > ~/.ssh/id_ed25519
|
||||
test -n "$DEPLOY_KEY" || { echo "Missing FACIAL_RECOGNITION_DEPLOY_KEY"; exit 1; }
|
||||
mkdir -p ~/.ssh
|
||||
chmod 700 ~/.ssh
|
||||
printf '%s\n' "$DEPLOY_KEY" > ~/.ssh/id_ed25519
|
||||
chmod 600 ~/.ssh/id_ed25519
|
||||
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
|
||||
chmod 600 ~/.ssh/known_hosts
|
||||
|
||||
- name: Clone private Scene Search at release tag
|
||||
- name: Clone private Facial Recognition source
|
||||
env:
|
||||
RELEASE_TAG: ${{ inputs.release_tag }}
|
||||
GIT_SSH_COMMAND: "ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes"
|
||||
run: |
|
||||
set -eu
|
||||
git clone --filter=blob:none git@github.com:MrSleeps/jellyfin-scene-search.git source
|
||||
cd source
|
||||
git fetch origin "refs/tags/$RELEASE_TAG:refs/tags/$RELEASE_TAG"
|
||||
git checkout --detach "$RELEASE_TAG"
|
||||
git clone --depth 1 git@github.com:MrSleeps/jellyfin-facial-recognition.git facial-recognition
|
||||
|
||||
- name: Install .NET 10 SDK
|
||||
- name: Set up .NET 10 SDK
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: '10.0.x'
|
||||
dotnet-version: "10.0.x"
|
||||
|
||||
- name: Test Gitea API connectivity
|
||||
run: |
|
||||
echo "DNS resolution:"
|
||||
getent ahosts git.trufflemonkey.co.uk || true
|
||||
|
||||
echo "Testing Gitea API:"
|
||||
for i in 1 2 3 4 5; do
|
||||
echo "Attempt $i"
|
||||
curl -4 -v \
|
||||
--connect-timeout 5 \
|
||||
--max-time 15 \
|
||||
https://git.trufflemonkey.co.uk/api/v1/version
|
||||
echo
|
||||
done
|
||||
|
||||
- name: Build and publish
|
||||
- name: Build and publish Facial Recognition
|
||||
env:
|
||||
RELEASE_TAG: ${{ inputs.release_tag }}
|
||||
GITEA_URL: https://git.trufflemonkey.co.uk
|
||||
GITEA_REPO: sleeps/jellyfin-plugins
|
||||
GITEA_TOKEN: ${{ secrets.SCENE_SEARCH_RELEASE_TOKEN }}
|
||||
run: |
|
||||
set -eu
|
||||
test -n "$GITEA_TOKEN" || { echo "Missing SCENE_SEARCH_RELEASE_TOKEN"; exit 1; }
|
||||
cd source
|
||||
dotnet build jellyfin-plugin/Jellyfin.Plugin.SceneSearch/Jellyfin.Plugin.SceneSearch.csproj -c Release --nologo
|
||||
python3 scripts/publish-jellyfin-plugin.py --publish
|
||||
test -n "$GITEA_TOKEN" || { echo "Missing Gitea release token"; exit 1; }
|
||||
cd facial-recognition
|
||||
dotnet build jellyfin-plugin/Jellyfin.Plugin.FacialRecognition/Jellyfin.Plugin.FacialRecognition.csproj --configuration Release --nologo
|
||||
python3 scripts/publish-gitea-plugin.py
|
||||
@@ -0,0 +1,54 @@
|
||||
[
|
||||
{
|
||||
"guid": "2d8d1bb5-3f0c-4d5a-9d59-934463c06d35",
|
||||
"name": "Scene Search",
|
||||
"description": "Find scenes within your Jellyfin libraries using semantic search.",
|
||||
"overview": "Jellyfin integration for the separately hosted Scene Search service.",
|
||||
"owner": "MrSleeps",
|
||||
"category": "General",
|
||||
"versions": [
|
||||
{
|
||||
"version": "0.1.5.0",
|
||||
"changelog": "Scene Search 0.1.5.0",
|
||||
"targetAbi": "12.0.0.0",
|
||||
"sourceUrl": "https://git.trufflemonkey.co.uk/attachments/c7ce3a81-054e-4b06-9cae-029c955e3121",
|
||||
"checksum": "9b4a103c9d08a2bb0dfec65e070fb8e0",
|
||||
"timestamp": "2026-10-15T16:41:20Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"guid": "bc8771b0-5ad9-4c87-9f37-6c6e5658c425",
|
||||
"name": "Facial Recognition",
|
||||
"description": "Manage face review and scheduled new-face scanning from Jellyfin.",
|
||||
"overview": "Review and name people inside Jellyfin.",
|
||||
"owner": "MrSleeps",
|
||||
"category": "General",
|
||||
"versions": [
|
||||
{
|
||||
"version": "0.1.0.2",
|
||||
"changelog": "Align the .NET plugin assembly version with the Jellyfin catalogue version.",
|
||||
"targetAbi": "12.0.0.0",
|
||||
"sourceUrl": "https://git.trufflemonkey.co.uk/sleeps/jellyfin-plugins/releases/download/facial-recognition-v0.1.0.2/FacialRecognition-0.1.0.2.zip",
|
||||
"checksum": "86a0bc4feacff7324ea2c55f972c42ba",
|
||||
"timestamp": "2026-10-15T19:00:00Z"
|
||||
},
|
||||
{
|
||||
"version": "0.1.0.1",
|
||||
"changelog": "Fix the Jellyfin configuration page JavaScript syntax and settings controls.",
|
||||
"targetAbi": "12.0.0.0",
|
||||
"sourceUrl": "https://git.trufflemonkey.co.uk/sleeps/jellyfin-plugins/releases/download/facial-recognition-v0.1.0.1/FacialRecognition-0.1.0.1.zip",
|
||||
"checksum": "8cce6ca2e1fad6ceca937b1b3939952a",
|
||||
"timestamp": "2026-10-15T18:55:00Z"
|
||||
},
|
||||
{
|
||||
"version": "0.1.0.0",
|
||||
"changelog": "Initial Jellyfin facial recognition dashboard and scheduled scan integration.",
|
||||
"targetAbi": "12.0.0.0",
|
||||
"sourceUrl": "https://git.trufflemonkey.co.uk/sleeps/jellyfin-plugins/releases/download/facial-recognition-v0.1.0.0/FacialRecognition-0.1.0.0.zip",
|
||||
"checksum": "76619bf18e1150c854cf643902e30c89",
|
||||
"timestamp": "2026-10-10T00:00:00Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user