Release 2.3.0 (#804)

* chore: bump version to v2.3.0-preview

* Customize start page (#803)

* Update ConfigService to support complex Objects
Implemented tests for ConfigService

* Added DB migration for config table

* Fixed version in banner.txt not being displayed

* Implement Library ordering
Implement "Show recently added games on homepage"

* Fix build.gradle.kts

* FIx bug when creating libraries

* Fix TypeScript errors
Fix library sorting

* Bump actions/checkout from 5 to 6 (#811)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added automatic scanning using file system watchers (#813)

* Implement collections (#814)

* Backend implementation for collections

* Fix database schema and migration script

* Refactor some config values
Fix ArrayInput not being deactivatable

* Remove "AutoRegisterNewUsers" config option

* Fix bug when removing ignored paths

* Add UI for collections (WIP)

* Fix table actions not synced with state
Fix tests

* Finish implementation of collection feature

* Fix tests

* Bump actions/checkout from 5 to 6 (#815)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix "allow guests to create game requests" not being enabled when guest access is activated

* Fix: Disable loading of EditGameMetadataModal and MatchGameModal in GameView when user is not admin

* Bump actions/checkout from 5 to 6 (#819)

Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Overhaul startpage (#823)

* WIP: Update start page layout

* Performance improvements (lazy loading and virtualized grids/lists)
Fix various smaller issues

* Implement use of blurhash for all images in backend and covers in frontend

* Fix bugs and test

* Fix code analysis issues

* Remove "UI settings" since they have been made obsolete

* Remove length limit from "image.originalUrl" (#824)

* Remove alpine based image (#825)

* Fix bug when games from library are still in a collection, thus prevention deletion of said library

* Delete image files in background

* Fix layout

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
Simon
2025-12-10 12:58:14 +01:00
committed by GitHub
parent 608a0b5ac1
commit 09953a3f78
142 changed files with 5249 additions and 937 deletions
+8 -22
View File
@@ -13,36 +13,25 @@ runs:
username: ${{ inputs.ghcr_username }}
password: ${{ inputs.ghcr_token }}
- name: Prepare Ubuntu tags
id: ubuntu_tags
if: ${{ inputs.variant != 'alpine' }}
- name: Prepare combined tags (default + ubuntu suffix)
id: combined_tags
shell: bash
run: |
TAGS="${{ inputs.tags }}"
# Generate both default tags and ubuntu-suffixed tags
DEFAULT_TAGS="$TAGS"
UBUNTU_TAGS=$(echo "$TAGS" | awk -F, '{for(i=1;i<=NF;i++){split($i,a,":"); printf "%s:%s-ubuntu", a[1], a[2]; if(i<NF) printf ","}}')
echo "ubuntu_tags=$UBUNTU_TAGS" >> $GITHUB_OUTPUT
- name: Build and push Docker image (Alpine)
if: ${{ inputs.variant != 'ubuntu' }}
uses: docker/build-push-action@v5
with:
context: ${{ inputs.context }}
file: ${{ inputs.dockerfile }}
platforms: ${{ inputs.platforms }}
push: true
tags: ${{ inputs.tags }}
cache-from: type=gha
cache-to: type=gha
COMBINED_TAGS="$DEFAULT_TAGS,$UBUNTU_TAGS"
echo "combined_tags=$COMBINED_TAGS" >> $GITHUB_OUTPUT
- name: Build and push Docker image (Ubuntu)
if: ${{ inputs.variant != 'alpine' }}
uses: docker/build-push-action@v5
with:
context: ${{ inputs.context }}
file: docker/Dockerfile.ubuntu
platforms: ${{ inputs.platforms }}
push: true
tags: ${{ steps.ubuntu_tags.outputs.ubuntu_tags }}
tags: ${{ steps.combined_tags.outputs.combined_tags }}
cache-from: type=gha
cache-to: type=gha
@@ -65,7 +54,4 @@ inputs:
tags:
required: true
description: 'Comma-separated list of image tags'
variant:
required: true
default: 'both'
description: 'Image variant to build: alpine, ubuntu, or both'
+3 -8
View File
@@ -14,7 +14,7 @@ jobs:
checks: write
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Set up JDK 21
uses: actions/setup-java@v5
@@ -46,13 +46,9 @@ jobs:
runs-on: ubuntu-latest
permissions:
packages: write
strategy:
fail-fast: false
matrix:
variant: [ alpine, ubuntu ]
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Download build outputs
uses: actions/download-artifact@v5
@@ -67,7 +63,7 @@ jobs:
TAG="${BRANCH_NAME#fix/}"
echo "tag=$TAG" >> $GITHUB_OUTPUT
- name: Build and push Docker image (${{ matrix.variant }})
- name: Build and push Docker image
uses: ./.github/actions/docker-build-push
with:
ghcr_username: ${{ github.actor }}
@@ -76,4 +72,3 @@ jobs:
dockerfile: docker/Dockerfile
platforms: linux/arm64/v8,linux/amd64
tags: ghcr.io/gameyfin/gameyfin:${{ steps.extract_tag.outputs.tag }}
variant: ${{ matrix.variant }}
+3 -8
View File
@@ -16,7 +16,7 @@ jobs:
version: ${{ steps.extract_version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
@@ -76,13 +76,9 @@ jobs:
runs-on: ubuntu-latest
permissions:
packages: write
strategy:
fail-fast: false
matrix:
variant: [ alpine, ubuntu ]
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
@@ -92,7 +88,7 @@ jobs:
name: build-outputs
path: .
- name: Build and push Docker image (${{ matrix.variant }})
- name: Build and push Docker image
uses: ./.github/actions/docker-build-push
with:
ghcr_username: ${{ github.actor }}
@@ -101,4 +97,3 @@ jobs:
dockerfile: docker/Dockerfile
platforms: linux/arm64/v8,linux/amd64
tags: ghcr.io/gameyfin/gameyfin:${{ needs.build.outputs.version }}
variant: ${{ matrix.variant }}
+6 -11
View File
@@ -23,7 +23,7 @@ jobs:
release_version: ${{ steps.get_version.outputs.release_version }}
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
@@ -66,7 +66,7 @@ jobs:
checks: write
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
@@ -107,13 +107,9 @@ jobs:
runs-on: ubuntu-latest
permissions:
packages: write
strategy:
fail-fast: false
matrix:
variant: [ alpine, ubuntu ]
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
@@ -142,7 +138,7 @@ jobs:
TAGS="$GHCR_TAGS"
echo "tags=$TAGS" >> $GITHUB_OUTPUT
- name: Build and push Docker image (${{ matrix.variant }})
- name: Build and push Docker image
uses: ./.github/actions/docker-build-push
with:
ghcr_username: ${{ github.actor }}
@@ -151,14 +147,13 @@ jobs:
dockerfile: docker/Dockerfile
platforms: linux/arm64/v8,linux/amd64
tags: ${{ steps.docker_tags.outputs.tags }}
variant: ${{ matrix.variant }}
plugin_api:
needs: setup
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
@@ -189,7 +184,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0