You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
overseerr/snap/snapcraft.yaml

104 lines
3.3 KiB

name: overseerr
adopt-info: overseerr
license: MIT
summary: Request management and media discovery tool for the Plex ecosystem.
description: >
Overseerr is a free and open source software application for managing requests for your media library.
It integrates with your existing services such as Sonarr, Radarr and Plex!
base: core18
confinement: strict
architectures:
- build-on: amd64
- build-on: arm64
- build-on: armhf
parts:
overseerr:
plugin: nodejs
nodejs-version: '18.18.2'
nodejs-package-manager: 'yarn'
nodejs-yarn-version: v1.22.19
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/overseerr/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
# 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'