jellyfin-rffmpeg update/add workflows

This commit is contained in:
aptalca 2023-05-17 21:44:33 -04:00
parent 081a797967
commit 3d58a000f7
No known key found for this signature in database
GPG Key ID: BE36CFFB9FD85548
7 changed files with 61 additions and 111 deletions

View File

@ -1,62 +1,45 @@
name: Build Image
on: [push, pull_request, workflow_dispatch]
on: [push, pull_request_target, workflow_dispatch]
env:
GITHUB_REPO: "linuxserver/docker-mods" #don't modify
ENDPOINT: "linuxserver/mods" #don't modify
BASEIMAGE: "jellyfin" #replace
MODNAME: "rffmpeg" #replace
jobs:
build:
set-vars:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Build image
- name: Set Vars
id: outputs
run: |
docker build --no-cache -t ${{ github.sha }} .
echo "GITHUB_REPO=${{ env.GITHUB_REPO }}" >> $GITHUB_OUTPUT
echo "ENDPOINT=${{ env.ENDPOINT }}" >> $GITHUB_OUTPUT
echo "BASEIMAGE=${{ env.BASEIMAGE }}" >> $GITHUB_OUTPUT
echo "MODNAME=${{ env.MODNAME }}" >> $GITHUB_OUTPUT
# **** If the mod needs to be versioned, set the versioning logic below. Otherwise leave as is. ****
MOD_VERSION=""
echo "MOD_VERSION=${MOD_VERSION}" >> $GITHUB_OUTPUT
outputs:
GITHUB_REPO: ${{ steps.outputs.outputs.GITHUB_REPO }}
ENDPOINT: ${{ steps.outputs.outputs.ENDPOINT }}
BASEIMAGE: ${{ steps.outputs.outputs.BASEIMAGE }}
MODNAME: ${{ steps.outputs.outputs.MODNAME }}
MOD_VERSION: ${{ steps.outputs.outputs.MOD_VERSION }}
- name: Tag image
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }}
run: |
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}
docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}
docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
- name: Credential check
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }}
run: |
echo "CR_USER=${{ secrets.CR_USER }}" >> $GITHUB_ENV
echo "CR_PAT=${{ secrets.CR_PAT }}" >> $GITHUB_ENV
echo "DOCKERUSER=${{ secrets.DOCKERUSER }}" >> $GITHUB_ENV
echo "DOCKERPASS=${{ secrets.DOCKERPASS }}" >> $GITHUB_ENV
if [[ "${{ secrets.CR_USER }}" == "" && "${{ secrets.CR_PAT }}" == "" && "${{ secrets.DOCKERUSER }}" == "" && "${{ secrets.DOCKERPASS }}" == "" ]]; then
echo "::error::Push credential secrets missing."
echo "::error::You must set either CR_USER & CR_PAT or DOCKERUSER & DOCKERPASS as secrets in your repo settings."
echo "::error::See https://github.com/linuxserver/docker-mods/blob/master/README.md for more information/instructions."
exit 1
fi
- name: Login to GitHub Container Registry
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }}
run: |
echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ secrets.CR_USER }} --password-stdin
- name: Push tags to GitHub Container Registry
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }}
run: |
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}
- name: Login to DockerHub
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }}
run: |
echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin
- name: Push tags to DockerHub
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }}
run: |
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}
build:
uses: linuxserver/github-workflows/.github/workflows/docker-mod-builder.yml@v1
needs: set-vars
secrets:
CR_USER: ${{ secrets.CR_USER }}
CR_PAT: ${{ secrets.CR_PAT }}
DOCKERUSER: ${{ secrets.DOCKERUSER }}
DOCKERPASS: ${{ secrets.DOCKERPASS }}
with:
GITHUB_REPO: ${{ needs.set-vars.outputs.GITHUB_REPO }}
ENDPOINT: ${{ needs.set-vars.outputs.ENDPOINT }}
BASEIMAGE: ${{ needs.set-vars.outputs.BASEIMAGE }}
MODNAME: ${{ needs.set-vars.outputs.MODNAME }}
MOD_VERSION: ${{ needs.set-vars.outputs.MOD_VERSION }}

View File

@ -0,0 +1,16 @@
name: Issue & PR Tracker
on:
issues:
types: [opened,reopened,labeled,unlabeled,closed]
pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
pull_request_review:
types: [submitted,edited,dismissed]
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

10
.github/workflows/permissions.yml vendored Normal file
View File

@ -0,0 +1,10 @@
name: Permission check
on:
pull_request_target:
paths:
- '**/run'
- '**/finish'
- '**/check'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View File

@ -1,3 +1,5 @@
# syntax=docker/dockerfile:1
FROM scratch
LABEL maintainer="junkman690"

View File

@ -1,3 +0,0 @@
#!/usr/bin/with-contenv bash
apt-get update

View File

@ -1,58 +0,0 @@
#!/usr/bin/with-contenv bash
#Install dependancies
apt-get install -y --no-install-recommends \
iputils-ping \
openssh-client \
python3-click \
python3-yaml \
wakeonlan
#Grab Config
mkdir -p \
/etc/rffmpeg \
/config/rffmpeg/.ssh
touch /config/rffmpeg/.ssh/id_rsa
chmod 600 /config/rffmpeg/.ssh/id_rsa
if [ -f /config/rffmpeg/rffmpeg.yml ]; then
echo "**** rffmpeg.yml already present ****"
else
echo "**** Creating rffmpeg.yml from sample ****"
cp /defaults/rffmpeg.yml.sample /config/rffmpeg/rffmpeg.yml
fi
#Grab rffmpeg
mkdir -p /usr/local/bin/
echo "**** Grabbing rffmpeg from upstream ****"
rm -rf /usr/local/bin/rffmpeg
curl -L -o /usr/local/bin/rffmpeg https://raw.githubusercontent.com/joshuaboniface/rffmpeg/master/rffmpeg
chmod +x /usr/local/bin/rffmpeg
##Update rffmpeg.yml
sed -i 's~#persist: "/run/shm"~persist: "/dev/shm"~' /config/rffmpeg/rffmpeg.yml
sed -i 's~#state: "/var/lib/rffmpeg"~state: "/config/rffmpeg"~' /config/rffmpeg/rffmpeg.yml
sed -i 's~#logfile: "/var/log/jellyfin/rffmpeg.log"~logfile: "/config/rffmpeg/rffmpeg.log"~' /config/rffmpeg/rffmpeg.yml
sed -i 's~#log_to_file: true~log_to_file: true~' /config/rffmpeg/rffmpeg.yml
sed -i 's~#owner: jellyfin~owner: abc~' /config/rffmpeg/rffmpeg.yml
sed -i 's~#group: sudo~group: abc~' /config/rffmpeg/rffmpeg.yml
sed -i 's~#args:~args:~' /config/rffmpeg/rffmpeg.yml
sed -i 's~# - "-i"~ - "-i"~' /config/rffmpeg/rffmpeg.yml
sed -i 's~# - "/var/lib/jellyfin/id_rsa"~ - "/config/rffmpeg/.ssh/id_rsa"~' /config/rffmpeg/rffmpeg.yml
if [ ! -z "$RFFMPEG_USER" ]; then
sed -i "s~#user: jellyfin~user: $RFFMPEG_USER~" /config/rffmpeg/rffmpeg.yml
fi
#Fix permissions
chown abc:abc -R /config/rffmpeg
#Initialize database
if [ -f /config/rffmpeg/rffmpeg.db ]; then
echo "**** DB already inialized ****"
else
echo "**** Initialize database ****"
/usr/local/bin/rffmpeg init --yes
#Add host
if [ ! -z "$RFFMPEG_HOST" ]; then
s6-setuidgid abc /usr/local/bin/rffmpeg add --weight 1 $RFFMPEG_HOST
fi
fi

View File

@ -35,7 +35,7 @@ if [ ! -z "$RFFMPEG_USER" ]; then
fi
#Fix permissions
chown abc:abc -R /config/rffmpeg
lsiown abc:abc -R /config/rffmpeg
#Initialize database
if [ -f /config/rffmpeg/rffmpeg.db ]; then