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:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
|
||||||
release_tag:
|
|
||||||
description: "Scene Search version tag, e.g. v0.1.5.0"
|
|
||||||
required: true
|
|
||||||
default: "v0.1.5.0"
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
|
||||||
image: node:20-bookworm
|
|
||||||
options: --add-host=git.trufflemonkey.co.uk:51.195.138.163
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check out Gitea distribution repository
|
- name: Configure read-only GitHub SSH access
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up SSH for private GitHub source
|
|
||||||
env:
|
env:
|
||||||
SOURCE_DEPLOY_KEY: ${{ secrets.SCENE_SEARCH_DEPLOY_KEY }}
|
DEPLOY_KEY: ${{ secrets.FACIAL_RECOGNITION_DEPLOY_KEY }}
|
||||||
run: |
|
run: |
|
||||||
set -eu
|
set -eu
|
||||||
test -n "$SOURCE_DEPLOY_KEY" || { echo "Missing SCENE_SEARCH_DEPLOY_KEY"; exit 1; }
|
test -n "$DEPLOY_KEY" || { echo "Missing FACIAL_RECOGNITION_DEPLOY_KEY"; exit 1; }
|
||||||
install -d -m 700 ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
printf '%s\n' "$SOURCE_DEPLOY_KEY" > ~/.ssh/id_ed25519
|
chmod 700 ~/.ssh
|
||||||
|
printf '%s\n' "$DEPLOY_KEY" > ~/.ssh/id_ed25519
|
||||||
chmod 600 ~/.ssh/id_ed25519
|
chmod 600 ~/.ssh/id_ed25519
|
||||||
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
|
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:
|
env:
|
||||||
RELEASE_TAG: ${{ inputs.release_tag }}
|
|
||||||
GIT_SSH_COMMAND: "ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes"
|
GIT_SSH_COMMAND: "ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes"
|
||||||
run: |
|
run: |
|
||||||
set -eu
|
git clone --depth 1 git@github.com:MrSleeps/jellyfin-facial-recognition.git facial-recognition
|
||||||
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"
|
|
||||||
|
|
||||||
- name: Install .NET 10 SDK
|
- name: Set up .NET 10 SDK
|
||||||
uses: actions/setup-dotnet@v4
|
uses: actions/setup-dotnet@v4
|
||||||
with:
|
with:
|
||||||
dotnet-version: '10.0.x'
|
dotnet-version: "10.0.x"
|
||||||
|
|
||||||
- name: Test Gitea API connectivity
|
- name: Build and publish Facial Recognition
|
||||||
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
|
|
||||||
env:
|
env:
|
||||||
RELEASE_TAG: ${{ inputs.release_tag }}
|
|
||||||
GITEA_URL: https://git.trufflemonkey.co.uk
|
GITEA_URL: https://git.trufflemonkey.co.uk
|
||||||
GITEA_REPO: sleeps/jellyfin-plugins
|
GITEA_REPO: sleeps/jellyfin-plugins
|
||||||
GITEA_TOKEN: ${{ secrets.SCENE_SEARCH_RELEASE_TOKEN }}
|
GITEA_TOKEN: ${{ secrets.SCENE_SEARCH_RELEASE_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
set -eu
|
set -eu
|
||||||
test -n "$GITEA_TOKEN" || { echo "Missing SCENE_SEARCH_RELEASE_TOKEN"; exit 1; }
|
test -n "$GITEA_TOKEN" || { echo "Missing Gitea release token"; exit 1; }
|
||||||
cd source
|
cd facial-recognition
|
||||||
dotnet build jellyfin-plugin/Jellyfin.Plugin.SceneSearch/Jellyfin.Plugin.SceneSearch.csproj -c Release --nologo
|
dotnet build jellyfin-plugin/Jellyfin.Plugin.FacialRecognition/Jellyfin.Plugin.FacialRecognition.csproj --configuration Release --nologo
|
||||||
python3 scripts/publish-jellyfin-plugin.py --publish
|
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