In an attempt to fix version compatibility of `GLIBC_2.28` base was upgraded from core18 to core20. Node-js plugin was deprecated for core20 and instead npm plugin has to be used. As npm plugin cannot specify the package manager to use, yarn is now installed globally during the override-build phase.
105 lines
3.4 KiB
YAML
105 lines
3.4 KiB
YAML
name: jellyseerr
|
|
adopt-info: jellyseerr
|
|
license: MIT
|
|
summary: Request management and media discovery tool for media servers
|
|
description: >
|
|
Jellyseerr is a free and open source software application for managing requests for your media library.
|
|
It is a a fork of Overseerr built to bring support for & focusing mainly on Jellyfin & Emby media servers!
|
|
It integrates with your existing services such as Sonarr, Radarr, and Jellyfin/Emby/Plex.
|
|
base: core20
|
|
confinement: strict
|
|
|
|
architectures:
|
|
- build-on: amd64
|
|
- build-on: arm64
|
|
- build-on: armhf
|
|
|
|
parts:
|
|
jellyseerr:
|
|
plugin: npm
|
|
npm-node-version: '18.18.2'
|
|
build-packages:
|
|
- git
|
|
- on arm64:
|
|
- build-essential
|
|
- automake
|
|
- python-gi
|
|
- python-gi-dev
|
|
- on armhf:
|
|
- libatomic1
|
|
- build-essential
|
|
- automake
|
|
- python-gi
|
|
- python-gi-dev
|
|
source: .
|
|
override-pull: |
|
|
snapcraftctl pull
|
|
# Get information to determine snap grade and version
|
|
git config --global --add safe.directory /data/parts/jellyseerr/src
|
|
#setup yarn.rc
|
|
echo "--install.frozen-lockfile\n--install.network-timeout 1000000" > .yarnrc
|
|
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
COMMIT=$(git rev-parse HEAD)
|
|
COMMIT_SHORT=$(git rev-parse --short HEAD)
|
|
VERSION='v'$(cat package.json | grep 'version' | head -1 | sed 's/.*"\(.*\)"\,/\1/')
|
|
if [ "$VERSION" = "v0.1.0" ]; then
|
|
SNAP_VERSION=$COMMIT_SHORT
|
|
GRADE=stable
|
|
else
|
|
SNAP_VERSION=$VERSION
|
|
GRADE=stable
|
|
fi
|
|
# Write COMMIT_TAG as it is needed durring the build process
|
|
echo $COMMIT > commit.txt
|
|
# Print debug info for build version
|
|
echo "{\"commitShort\": \"$COMMIT_SHORT\", \
|
|
\"version\": \"$VERSION\", \
|
|
\"snapVersion\": \"$SNAP_VERSION\", \
|
|
\"snapGrade\": \"$GRADE\", \
|
|
\"branch\": \"$BRANCH\", \
|
|
\"commit\": \"$COMMIT\"}"
|
|
echo "{\"commitTag\": \"$COMMIT\"}" > committag.json
|
|
# Set snap version and grade
|
|
snapcraftctl set-version "$SNAP_VERSION"
|
|
snapcraftctl set-grade "$GRADE"
|
|
build-environment:
|
|
- PATH: '$SNAPCRAFT_PART_BUILD/node_modules/.bin:$SNAPCRAFT_PART_BUILD/../npm/bin:$PATH'
|
|
- CYPRESS_INSTALL_BINARY: '0'
|
|
override-build: |
|
|
set -e
|
|
# Install Yarn
|
|
npm install -g yarn
|
|
# Set COMMIT_TAG before the build begins
|
|
export COMMIT_TAG=$(cat $SNAPCRAFT_PART_BUILD/commit.txt)
|
|
snapcraftctl build
|
|
yarn build
|
|
# Copy files needed for staging
|
|
cp $SNAPCRAFT_PART_BUILD/committag.json $SNAPCRAFT_PART_INSTALL/
|
|
cp -R $SNAPCRAFT_PART_BUILD/.next $SNAPCRAFT_PART_INSTALL/
|
|
cp -R $SNAPCRAFT_PART_BUILD/dist $SNAPCRAFT_PART_INSTALL/
|
|
cp -R $SNAPCRAFT_PART_BUILD/node_modules $SNAPCRAFT_PART_INSTALL/
|
|
# Remove .github and gitbook as it will fail snap lint
|
|
rm -rf $SNAPCRAFT_PART_INSTALL/.github && rm $SNAPCRAFT_PART_INSTALL/.gitbook.yaml
|
|
stage-packages:
|
|
- on armhf:
|
|
- libatomic1
|
|
stage: [.next, ./*]
|
|
prime: [.next, ./*]
|
|
|
|
apps:
|
|
daemon:
|
|
command: /bin/sh -c "cd $SNAP && node dist/index.js"
|
|
daemon: simple
|
|
restart-condition: on-failure
|
|
restart-delay: 5s
|
|
plugs:
|
|
- home
|
|
- network
|
|
- network-bind
|
|
environment:
|
|
PATH: '$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH'
|
|
OVERSEERR_SNAP: 'True'
|
|
CONFIG_DIRECTORY: $SNAP_USER_COMMON
|
|
LOG_LEVEL: 'debug'
|
|
NODE_ENV: 'production'
|