mirror of
https://github.com/jellyfin/jellyfin-vue.git
synced 2024-11-22 21:49:51 +00:00
chore: organize file structure
* Move all packaging-related stuff into a subdirectory * Remove workspace defaulting to `frontend` directory. Now users must `cd` in the frontend directory themselves.
This commit is contained in:
parent
c64623e1d7
commit
0a2a46ac90
@ -1,36 +0,0 @@
|
||||
# Dockerfile
|
||||
Dockerfile
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
|
||||
# IDE / Editor
|
||||
.idea
|
||||
.run
|
||||
.vscode
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
|
||||
# Vim swap files
|
||||
*.swp
|
||||
|
||||
# Github & CI
|
||||
.github
|
||||
.devcontainer
|
||||
.ci
|
26
.github/workflows/quality_checks.yml
vendored
26
.github/workflows/quality_checks.yml
vendored
@ -28,6 +28,9 @@ jobs:
|
||||
lint:
|
||||
name: Lint 🔬
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: frontend
|
||||
|
||||
steps:
|
||||
- name: Checkout ⬇️
|
||||
@ -50,6 +53,9 @@ jobs:
|
||||
typecheck:
|
||||
name: Typecheck 🈯
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: frontend
|
||||
|
||||
steps:
|
||||
- name: Checkout ⬇️
|
||||
@ -96,6 +102,7 @@ jobs:
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
with:
|
||||
context: .
|
||||
file: packaging/docker/Dockerfile
|
||||
platforms: ${{ matrix.platform }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
@ -135,6 +142,9 @@ jobs:
|
||||
- "macos-latest"
|
||||
- "ubuntu-latest"
|
||||
- "windows-latest"
|
||||
defaults:
|
||||
run:
|
||||
working-directory: packaging/tauri
|
||||
|
||||
runs-on: ${{ matrix.platform }}
|
||||
steps:
|
||||
@ -150,7 +160,7 @@ jobs:
|
||||
check-latest: true
|
||||
|
||||
- name: Install dependencies 📦
|
||||
run: npm ci --no-audit -w tauri
|
||||
run: npm ci --no-audit
|
||||
|
||||
- name: Install webkit2gtk (ubuntu only)
|
||||
if: matrix.platform == 'ubuntu-latest'
|
||||
@ -159,10 +169,10 @@ jobs:
|
||||
sudo apt-get install -y webkit2gtk-4.0
|
||||
|
||||
- name: Generate Tauri icons 🖌️
|
||||
run: "npm run tauri:icon -w tauri"
|
||||
run: "npm run tauri:icon"
|
||||
|
||||
- name: Build Tauri 🛠️
|
||||
run: "npm run tauri:build -w tauri"
|
||||
run: "npm run tauri:build"
|
||||
|
||||
- name: Upload artifact (Linux) ⬆️🐧
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
@ -170,8 +180,8 @@ jobs:
|
||||
with:
|
||||
name: jellyfin-vue_linux-amd64
|
||||
path: |
|
||||
tauri/target/release/bundle/deb/*.deb
|
||||
tauri/target/release/bundle/appimage_deb
|
||||
packaging/tauri/target/release/bundle/deb/*.deb
|
||||
packaging/tauri/target/release/bundle/appimage_deb
|
||||
|
||||
- name: Upload artifact (MacOS) ⬆️🍎
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
@ -179,15 +189,15 @@ jobs:
|
||||
with:
|
||||
name: jellyfin-vue_macOS
|
||||
path: |
|
||||
tauri/target/release/bundle/macos
|
||||
tauri/target/release/bundle/dmg/*.dmg
|
||||
packaging/tauri/target/release/bundle/macos
|
||||
packaging/tauri/target/release/bundle/dmg/*.dmg
|
||||
|
||||
- name: Upload artifact (Windows) ⬆️🪟
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
if: matrix.platform == 'windows-latest'
|
||||
with:
|
||||
name: jellyfin-vue_windows_amd64
|
||||
path: tauri/target/release/jellyfin-vue.exe
|
||||
path: packaging/tauri/target/release/jellyfin-vue.exe
|
||||
|
||||
pr_context:
|
||||
name: Save PR context as artifact
|
||||
|
21
.github/workflows/release.yml
vendored
21
.github/workflows/release.yml
vendored
@ -41,6 +41,7 @@ jobs:
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
with:
|
||||
context: .
|
||||
file: packaging/docker/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64,linux/arm
|
||||
build-args: |
|
||||
@ -58,6 +59,7 @@ jobs:
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
with:
|
||||
context: .
|
||||
file: packaging/docker/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64,linux/arm
|
||||
build-args: |
|
||||
@ -77,6 +79,9 @@ jobs:
|
||||
- "macos-latest"
|
||||
- "ubuntu-latest"
|
||||
- "windows-latest"
|
||||
defaults:
|
||||
run:
|
||||
working-directory: packaging/tauri
|
||||
|
||||
runs-on: ${{ matrix.platform }}
|
||||
steps:
|
||||
@ -92,7 +97,7 @@ jobs:
|
||||
check-latest: true
|
||||
|
||||
- name: Install dependencies 📦
|
||||
run: npm ci --no-audit -w tauri
|
||||
run: npm ci --no-audit
|
||||
|
||||
- name: Install webkit2gtk (ubuntu only)
|
||||
if: matrix.platform == 'ubuntu-latest'
|
||||
@ -101,10 +106,10 @@ jobs:
|
||||
sudo apt-get install -y webkit2gtk-4.0
|
||||
|
||||
- name: Generate Tauri icons 🖌️
|
||||
run: "npm run tauri:icon -w tauri"
|
||||
run: "npm run tauri:icon"
|
||||
|
||||
- name: Build Tauri 🛠️
|
||||
run: "npm run tauri:build -w tauri"
|
||||
run: "npm run tauri:build"
|
||||
|
||||
- name: Upload artifact (Linux) ⬆️🐧
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
@ -112,8 +117,8 @@ jobs:
|
||||
with:
|
||||
name: jellyfin-vue_linux-amd64
|
||||
path: |
|
||||
tauri/target/release/bundle/deb/*.deb
|
||||
tauri/target/release/bundle/appimage_deb
|
||||
packaging/tauri/target/release/bundle/deb/*.deb
|
||||
packaging/tauri/target/release/bundle/appimage_deb
|
||||
|
||||
- name: Upload artifact (MacOS) ⬆️🍎
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
@ -121,12 +126,12 @@ jobs:
|
||||
with:
|
||||
name: jellyfin-vue_macOS
|
||||
path: |
|
||||
tauri/target/release/bundle/macos
|
||||
tauri/target/release/bundle/dmg/*.dmg
|
||||
packaging/tauri/target/release/bundle/macos
|
||||
packaging/tauri/target/release/bundle/dmg/*.dmg
|
||||
|
||||
- name: Upload artifact (Windows) ⬆️🪟
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
if: matrix.platform == 'windows-latest'
|
||||
with:
|
||||
name: jellyfin-vue_windows_amd64
|
||||
path: tauri/target/release/jellyfin-vue.exe
|
||||
path: packaging/tauri/target/release/jellyfin-vue.exe
|
||||
|
20
.github/workflows/unstable.yml
vendored
20
.github/workflows/unstable.yml
vendored
@ -53,6 +53,7 @@ jobs:
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
with:
|
||||
context: .
|
||||
file: packaging/docker/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64,linux/arm
|
||||
tags: |
|
||||
@ -83,6 +84,9 @@ jobs:
|
||||
- "macos-latest"
|
||||
- "ubuntu-latest"
|
||||
- "windows-latest"
|
||||
defaults:
|
||||
run:
|
||||
working-directory: packaging/tauri
|
||||
|
||||
runs-on: ${{ matrix.platform }}
|
||||
steps:
|
||||
@ -98,7 +102,7 @@ jobs:
|
||||
check-latest: true
|
||||
|
||||
- name: Install dependencies 📦
|
||||
run: npm ci --no-audit -w tauri
|
||||
run: "npm ci --no-audit"
|
||||
|
||||
- name: Install webkit2gtk (ubuntu only)
|
||||
if: matrix.platform == 'ubuntu-latest'
|
||||
@ -107,10 +111,10 @@ jobs:
|
||||
sudo apt-get install -y webkit2gtk-4.0
|
||||
|
||||
- name: Generate Tauri icons 🖌️
|
||||
run: "npm run tauri:icon -w tauri"
|
||||
run: "npm run tauri:icon"
|
||||
|
||||
- name: Build Tauri 🛠️
|
||||
run: "npm run tauri:build -w tauri"
|
||||
run: "npm run tauri:build"
|
||||
|
||||
- name: Upload artifact (Linux) ⬆️🐧
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
@ -118,8 +122,8 @@ jobs:
|
||||
with:
|
||||
name: jellyfin-vue_linux-amd64
|
||||
path: |
|
||||
tauri/target/release/bundle/deb/*.deb
|
||||
tauri/target/release/bundle/appimage_deb
|
||||
packaging/tauri/target/release/bundle/deb/*.deb
|
||||
packaging/tauri/target/release/bundle/appimage_deb
|
||||
|
||||
- name: Upload artifact (MacOS) ⬆️🍎
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
@ -127,12 +131,12 @@ jobs:
|
||||
with:
|
||||
name: jellyfin-vue_macOS
|
||||
path: |
|
||||
tauri/target/release/bundle/macos
|
||||
tauri/target/release/bundle/dmg/*.dmg
|
||||
packaging/tauri/target/release/bundle/macos
|
||||
packaging/tauri/target/release/bundle/dmg/*.dmg
|
||||
|
||||
- name: Upload artifact (Windows) ⬆️🪟
|
||||
uses: actions/upload-artifact@v3.1.3
|
||||
if: matrix.platform == 'windows-latest'
|
||||
with:
|
||||
name: jellyfin-vue_windows_amd64
|
||||
path: tauri/target/release/jellyfin-vue.exe
|
||||
path: packaging/tauri/target/release/jellyfin-vue.exe
|
||||
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -93,8 +93,4 @@ sw.js
|
||||
*.swp
|
||||
|
||||
# Debian build artifacts
|
||||
debian/.debhelper
|
||||
debian/debhelper-build-stamp
|
||||
debian/files
|
||||
debian/jellyfin-vue*
|
||||
vue/
|
||||
packaging/jellyfin-vue*
|
||||
|
1
.npmrc
1
.npmrc
@ -1,7 +1,6 @@
|
||||
fund=false
|
||||
lockfile-version=3
|
||||
save-exact=true
|
||||
workspace=frontend
|
||||
engine-strict=true
|
||||
|
||||
## Fix timeout errors in CI
|
||||
|
1
debian/install
vendored
1
debian/install
vendored
@ -1 +0,0 @@
|
||||
vue usr/share/jellyfin/
|
21
debian/rules
vendored
21
debian/rules
vendored
@ -1,21 +0,0 @@
|
||||
#! /usr/bin/make -f
|
||||
export DH_VERBOSE=1
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
# disable "make check"
|
||||
override_dh_auto_test:
|
||||
|
||||
# disable stripping debugging symbols
|
||||
override_dh_clistrip:
|
||||
|
||||
override_dh_auto_build:
|
||||
npm ci --no-audit
|
||||
npm run build
|
||||
mv $(CURDIR)/frontend/dist $(CURDIR)/vue
|
||||
|
||||
override_dh_auto_clean:
|
||||
test -d $(CURDIR)/frontend/dist && rm -rf '$(CURDIR)/frontend/dist' || true
|
||||
test -d $(CURDIR)/vue && rm -rf '$(CURDIR)/vue' || true
|
||||
test -d $(CURDIR)/node_modules && rm -rf '$(CURDIR)/node_modules' || true
|
@ -22,8 +22,8 @@
|
||||
"check": "npm run lint && npm run typecheck",
|
||||
"start": "vite",
|
||||
"serve": "vite preview",
|
||||
"lint": "eslint . --ignore-path ../.gitignore --max-warnings=0 --cache --cache-location node_modules/.cache",
|
||||
"lint-fix": "eslint . --fix --ignore-path ../.gitignore --max-warnings=0 --cache --cache-location node_modules/.cache",
|
||||
"lint": "eslint . --ignore-path ../.gitignore --max-warnings=0 --cache --cache-location ../node_modules/.cache/eslint",
|
||||
"lint-fix": "eslint . --fix --ignore-path ../.gitignore --max-warnings=0 --cache --cache-location ../node_modules/.cache/eslint",
|
||||
"prod": "npm run build && npm run serve",
|
||||
"typecheck": "vue-tsc --noEmit --skipLibCheck",
|
||||
"vue-i18n-extract": "vue-i18n-extract",
|
||||
|
@ -24,6 +24,7 @@ export default defineConfig(({ mode }): UserConfig => {
|
||||
const config: UserConfig = {
|
||||
appType: 'spa',
|
||||
base: './',
|
||||
cacheDir: '../node_modules/.cache/vite',
|
||||
define: {
|
||||
__COMMIT_HASH__: JSON.stringify(process.env.COMMIT_HASH || '')
|
||||
},
|
||||
|
6
package-lock.json
generated
6
package-lock.json
generated
@ -8,7 +8,7 @@
|
||||
"license": "GPL-3.0-only",
|
||||
"workspaces": [
|
||||
"frontend",
|
||||
"tauri"
|
||||
"packaging/tauri"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18.12.0 <19.0.0",
|
||||
@ -986,7 +986,7 @@
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@jellyfin-vue/tauri": {
|
||||
"resolved": "tauri",
|
||||
"resolved": "packaging/tauri",
|
||||
"link": true
|
||||
},
|
||||
"node_modules/@jellyfin/sdk": {
|
||||
@ -7784,7 +7784,7 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"tauri": {
|
||||
"packaging/tauri": {
|
||||
"name": "@jellyfin-vue/tauri",
|
||||
"version": "0.0.0",
|
||||
"license": "GPL-3.0-only",
|
||||
|
@ -13,7 +13,7 @@
|
||||
"author": "jellyfin-vue Contributors (https://github.com/jellyfin/jellyfin-vue/graphs/contributors)",
|
||||
"workspaces": [
|
||||
"frontend",
|
||||
"tauri"
|
||||
"packaging/tauri"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18.12.0 <19.0.0",
|
||||
|
9
packaging/deb/.gitignore
vendored
Normal file
9
packaging/deb/.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
debian/.debhelper
|
||||
debian/debhelper-build-stamp
|
||||
debian/files
|
||||
debian/jellyfin-vue*
|
||||
dist/
|
||||
frontend
|
||||
package-lock.json
|
||||
package.json
|
||||
.npmrc
|
7
packaging/deb/README.md
Normal file
7
packaging/deb/README.md
Normal file
@ -0,0 +1,7 @@
|
||||
1. Install `build-essential` and `debhelper`:
|
||||
|
||||
`sudo apt install build-essential debhelper`
|
||||
|
||||
2. Build the package:
|
||||
|
||||
`dpkg-buildpackage -us -uc`
|
@ -3,7 +3,7 @@ Section: misc
|
||||
Priority: optional
|
||||
Maintainer: Jellyfin Team <team@jellyfin.org>
|
||||
Build-Depends: debhelper (>= 10),
|
||||
npm | nodejs
|
||||
nodejs
|
||||
Standards-Version: 3.9.4
|
||||
Homepage: https://jellyfin.org/
|
||||
Vcs-Git: https://github.org/jellyfin/jellyfin-vue.git
|
1
packaging/deb/debian/install
Normal file
1
packaging/deb/debian/install
Normal file
@ -0,0 +1 @@
|
||||
dist usr/share/jellyfin/
|
26
packaging/deb/debian/rules
Executable file
26
packaging/deb/debian/rules
Executable file
@ -0,0 +1,26 @@
|
||||
#! /usr/bin/make -f
|
||||
export DH_VERBOSE=1
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
# disable "make check"
|
||||
override_dh_auto_test:
|
||||
|
||||
# disable stripping debugging symbols
|
||||
override_dh_clistrip:
|
||||
|
||||
override_dh_auto_build:
|
||||
cp -ra root/{package.json,package-lock.json,.npmrc,frontend} $(CURDIR)/
|
||||
npm ci --no-audit -w frontend
|
||||
npm run build -w frontend
|
||||
mv $(CURDIR)/frontend/dist $(CURDIR)/dist
|
||||
rm -rf $(CURDIR)/frontend rm -rf $(CURDIR)/node_modules $(CURDIR)/package.json $(CURDIR)/package-lock.json $(CURDIR)/.npmrc
|
||||
|
||||
override_dh_auto_clean:
|
||||
test -d $(CURDIR)/frontend && rm -rf '$(CURDIR)/frontend' || true
|
||||
test -d $(CURDIR)/dist && rm -rf '$(CURDIR)/dist' || true
|
||||
test -d $(CURDIR)/node_modules && rm -rf '$(CURDIR)/node_modules' || true
|
||||
test -d $(CURDIR)/package.json && rm -rf '$(CURDIR)/package.json' || true
|
||||
test -d $(CURDIR)/package-lock.json && rm -rf '$(CURDIR)/package-lock.json' || true
|
||||
test -d $(CURDIR)/.npmrc && rm -rf '$(CURDIR)/.npmrc' || true
|
1
packaging/deb/root
Symbolic link
1
packaging/deb/root
Symbolic link
@ -0,0 +1 @@
|
||||
../..
|
@ -12,21 +12,23 @@ ENV DEFAULT_SERVERS=$DEFAULT_SERVERS
|
||||
ENV HISTORY_ROUTER_MODE=$HISTORY_ROUTER_MODE
|
||||
ENV IS_STABLE=$IS_STABLE
|
||||
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
COPY package.json package-lock.json .npmrc /app/
|
||||
COPY .git /app/.git
|
||||
COPY frontend /app/frontend
|
||||
WORKDIR /app/frontend
|
||||
|
||||
# Install dependencies
|
||||
RUN npm ci --no-audit
|
||||
RUN npm ci --no-audit --ignore-scripts
|
||||
|
||||
# Build client
|
||||
RUN if [ $IS_STABLE = "0" ] ; then export COMMIT_HASH=$(git rev-parse HEAD) ; fi && npm run build
|
||||
RUN if [ $"IS_STABLE" = "0" ] ; then export COMMIT_HASH=$(git rev-parse HEAD) ; fi && npm run build
|
||||
|
||||
# Deploy built distribution to nginx
|
||||
FROM nginx:stable-alpine-slim
|
||||
|
||||
COPY --from=build /app/frontend/dist/ /usr/share/nginx/html/
|
||||
COPY .docker/nginx.conf /etc/nginx/conf.d/default.conf
|
||||
COPY .docker/*.sh /
|
||||
COPY packaging/docker/contents/nginx.conf /etc/nginx/conf.d/default.conf
|
||||
COPY packaging/docker/contents/*.sh /
|
||||
RUN apk add --no-cache jq && \
|
||||
rm -rf /docker-entrypoint.d /.dockerenv /usr/sbin/nginx-debug && \
|
||||
chmod +x /*.sh
|
11
packaging/docker/README.md
Normal file
11
packaging/docker/README.md
Normal file
@ -0,0 +1,11 @@
|
||||
This Dockerfile must have it's context at the root of the repository. From this folder:
|
||||
|
||||
``
|
||||
docker build ../.. -t your/tag -f Dockerfile
|
||||
``
|
||||
|
||||
Alternatively, with the shell at the root of this repository:
|
||||
|
||||
``
|
||||
docker build . -t your/tag -f packaging/docker/Dockerfile
|
||||
``
|
@ -5,7 +5,7 @@
|
||||
"license": "GPL-3.0-only",
|
||||
"scripts": {
|
||||
"tauri": "tauri",
|
||||
"tauri:icon": "tauri icon ../frontend/public/icon.png",
|
||||
"tauri:icon": "tauri icon ../../frontend/public/icon.png",
|
||||
"tauri:build": "tauri build",
|
||||
"tauri:dev": "tauri dev"
|
||||
},
|
@ -1,13 +1,13 @@
|
||||
{
|
||||
"package": {
|
||||
"productName": "jellyfin-vue",
|
||||
"version": "../frontend/package.json"
|
||||
"version": "../../frontend/package.json"
|
||||
},
|
||||
"build": {
|
||||
"distDir": "../frontend/dist",
|
||||
"distDir": "../../frontend/dist",
|
||||
"devPath": "http://127.0.0.1:3000",
|
||||
"beforeDevCommand": "cd .. && npm start -w frontend",
|
||||
"beforeBuildCommand": "cd .. && npm run build -w frontend"
|
||||
"beforeDevCommand": "cd ../../frontend && npm start",
|
||||
"beforeBuildCommand": "cd ../../frontend && npm run build"
|
||||
},
|
||||
"tauri": {
|
||||
"bundle": {
|
Loading…
Reference in New Issue
Block a user