Added manifest and pipelines to allow install via web ui.
All checks were successful
🏗️ Build Plugin / build (push) Successful in 2m10s
🧪 Test Plugin / test (push) Successful in 1m0s
🚀 Release Plugin / build-and-release (push) Successful in 2m2s

This commit is contained in:
Duncan Tourolle 2025-12-20 13:55:06 +01:00
parent 003a8754a6
commit 4537613ed7
3 changed files with 85 additions and 1 deletions

View File

@ -70,7 +70,15 @@ jobs:
echo "artifact_name=${ARTIFACT_NAME}" >> $GITHUB_OUTPUT
echo "Found artifact: ${ARTIFACT}"
- name: Calculate checksum
id: checksum
run: |
CHECKSUM=$(md5sum "${{ steps.jprm.outputs.artifact }}" | awk '{print $1}')
echo "checksum=${CHECKSUM}" >> $GITHUB_OUTPUT
echo "MD5 Checksum: ${CHECKSUM}"
- name: Create Release
id: create_release
env:
GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
@ -80,7 +88,7 @@ jobs:
GITEA_URL="${{ github.server_url }}"
# Prepare release body
RELEASE_BODY="Jellypod Jellyfin Plugin ${{ steps.get_version.outputs.version }}\n\nSee attached files for plugin installation."
RELEASE_BODY="Jellypod Jellyfin Plugin ${{ steps.get_version.outputs.version }}\n\nSee attached files for plugin installation.\n\nTo install, add this repository URL to Jellyfin:\n\`${GITEA_URL}/${REPO_OWNER}/${REPO_NAME}/raw/branch/master/manifest.json\`"
RELEASE_BODY_JSON=$(echo -n "${RELEASE_BODY}" | jq -Rs .)
# Create release using Gitea API
@ -101,6 +109,7 @@ jobs:
if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ]; then
RELEASE_ID=$(echo "$BODY" | jq -r '.id')
echo "release_id=${RELEASE_ID}" >> $GITHUB_OUTPUT
echo "Created release with ID: ${RELEASE_ID}"
else
echo "Failed to create release. HTTP ${HTTP_CODE}"
@ -126,3 +135,47 @@ jobs:
echo "Release created successfully!"
echo "View at: ${GITEA_URL}/${REPO_OWNER}/${REPO_NAME}/releases/tag/${{ steps.get_version.outputs.version }}"
- name: Update manifest.json
env:
GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
REPO_OWNER="${{ github.repository_owner }}"
REPO_NAME="${{ github.event.repository.name }}"
GITEA_URL="${{ github.server_url }}"
VERSION="${{ steps.get_version.outputs.version_number }}"
CHECKSUM="${{ steps.checksum.outputs.checksum }}"
ARTIFACT_NAME="${{ steps.jprm.outputs.artifact_name }}"
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
DOWNLOAD_URL="${GITEA_URL}/${REPO_OWNER}/${REPO_NAME}/releases/download/${{ steps.get_version.outputs.version }}/${ARTIFACT_NAME}"
# Configure git
git config user.name "Gitea Actions"
git config user.email "actions@gitea.tourolle.paris"
# Fetch and checkout master branch
git fetch origin master
git checkout master
# Create new version entry
NEW_VERSION=$(cat <<EOF
{
"version": "${VERSION}",
"changelog": "Release ${VERSION}",
"targetAbi": "10.9.0.0",
"sourceUrl": "${DOWNLOAD_URL}",
"checksum": "${CHECKSUM}",
"timestamp": "${TIMESTAMP}"
}
EOF
)
# Update manifest.json - prepend new version to versions array
jq --argjson newver "${NEW_VERSION}" '.[0].versions = [$newver] + .[0].versions' manifest.json > manifest.tmp && mv manifest.tmp manifest.json
# Commit and push
git add manifest.json
git commit -m "Update manifest.json for version ${VERSION}"
git push origin master
echo "Manifest updated successfully!"

View File

@ -2,6 +2,14 @@
A Jellyfin plugin that adds podcast support to your media server.
## Quick Install
Add this repository URL in Jellyfin (Dashboard → Plugins → Repositories):
```
https://gitea.tourolle.paris/dtourolle/jellypod/raw/branch/master/manifest.json
```
## Features
- Browse and subscribe to podcasts
@ -18,6 +26,17 @@ A Jellyfin plugin that adds podcast support to your media server.
## Installation
### From Plugin Repository (Recommended)
1. In Jellyfin, go to **Dashboard****Plugins** → **Repositories**
2. Click the **+** button to add a new repository
3. Enter:
- **Repository Name**: `Jellypod`
- **Repository URL**: `https://gitea.tourolle.paris/dtourolle/jellypod/raw/branch/master/manifest.json`
4. Click **Save**
5. Go to **Catalog** tab and find **Jellypod**
6. Click **Install** and restart Jellyfin
### Manual Installation
1. Download the latest release from [Releases](https://gitea.tourolle.paris/dtourolle/jellypod/releases)

12
manifest.json Normal file
View File

@ -0,0 +1,12 @@
[
{
"guid": "c713faf4-4e50-4e87-941a-1200178ed605",
"name": "Jellypod",
"description": "Jellypod allows you to subscribe to podcast RSS feeds, automatically download episodes, and manage your podcast library within Jellyfin. Episodes are stored as standard audio files and integrate with Jellyfin's built-in audio player.",
"overview": "Podcast management plugin for Jellyfin",
"owner": "dtourolle",
"category": "General",
"imageUrl": "https://gitea.tourolle.paris/dtourolle/jellypod/raw/branch/master/Jellyfin.Plugin.Jellypod/Images/channel-icon.jpg",
"versions": []
}
]