Skip to content

Commit

Permalink
Merge pull request #436 from stumpapp/release/v0.0.6
Browse files Browse the repository at this point in the history
🔖 Release v0.0.6
  • Loading branch information
aaronleopold authored Sep 6, 2024
2 parents f8f0d3d + 2ad09b3 commit 7f73431
Show file tree
Hide file tree
Showing 270 changed files with 6,363 additions and 2,778 deletions.
44 changes: 44 additions & 0 deletions .github/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# Changelog

<a name="0.0.6"></a>
## 0.0.6 (2024-09-06)

### Added

- ✨ Broader image support for file serving ([#419](https://github.com/stumpapp/stump/issues/419)) [[38ffe05](https://github.com/stumpapp/stump/commit/38ffe0511e413eb7d8388a21ae3a49989287f3a8)]
- 👷‍♂️ Use &#x60;buildah&#x60; in docker CI workflows ([#425](https://github.com/stumpapp/stump/issues/425)) [[afe389c](https://github.com/stumpapp/stump/commit/afe389ca8259d02fce7cb9415e2fe4de22aeae66)]
- 👷‍♂️ Switch to &#x60;podman&#x60; and introduce better caching ([#416](https://github.com/stumpapp/stump/issues/416)) [[6a16235](https://github.com/stumpapp/stump/commit/6a16235bd4f1552d285c39e4b150c7b5a189ad32)]
- ✨ Avif file serving support ([#417](https://github.com/stumpapp/stump/issues/417)) [[7df8738](https://github.com/stumpapp/stump/commit/7df8738a8c9e6bc60f25468ee29d39f9e4d53d69)]
- 👷‍♂️ Restore self-hosted runner for certain CI tasks ([#405](https://github.com/stumpapp/stump/issues/405)) [[4cdf471](https://github.com/stumpapp/stump/commit/4cdf471f0672c1a2d71c7ed6543412e1fd6f6fcd)]
- ✨ Support AVIF image format ([#385](https://github.com/stumpapp/stump/issues/385)) [[09ca1a9](https://github.com/stumpapp/stump/commit/09ca1a9a543789e3bf6abf2b8325c3ee2513be59)]

### Changed

- ⬇️ Downgrade &#x60;zip&#x60; crate to &#x60;1.1.3&#x60; ([#435](https://github.com/stumpapp/stump/issues/435)) [[fe35819](https://github.com/stumpapp/stump/commit/fe35819dc01208673dada3e485fca2acd2f65ba1)]
- ⬆️ Update dependencies ([#433](https://github.com/stumpapp/stump/issues/433)) [[ebbb8e5](https://github.com/stumpapp/stump/commit/ebbb8e509237d4ed4aa5f0b83300dc8e77212da7)]
- 📌 Pin &#x60;@icons-pack/react-simple-icons&#x60; to &#x60;9.1.0&#x60; ([#403](https://github.com/stumpapp/stump/issues/403)) [[6bc7792](https://github.com/stumpapp/stump/commit/6bc7792e9bbee9b55b34c961dda6dd59113e5d96)]
- ⏪ Revert AVIF image support ([#409](https://github.com/stumpapp/stump/issues/409)) [[3ea2804](https://github.com/stumpapp/stump/commit/3ea2804ee822b641966e02ea72a4873238447ecb)]
- ♻️ Implement a config macro to simplify &#x60;stump_config.rs&#x60; ([#397](https://github.com/stumpapp/stump/issues/397)) [[3a480f3](https://github.com/stumpapp/stump/commit/3a480f3441ed890aad9823f2e05cbaf5ca00a38a)]
- 💄 Improve light theme palette and refactor design system ([#402](https://github.com/stumpapp/stump/issues/402)) [[8102321](https://github.com/stumpapp/stump/commit/8102321fd35c5b0145bd44d0f754da126d3b99ee)]

### Fixed

- 💚 Fix multi-tag docker builds [[d663f5c](https://github.com/stumpapp/stump/commit/d663f5c621ca2c252381459345890bfdabc01565)]
- 🐛 Fix max-depth for collection-priority libraries ([#432](https://github.com/stumpapp/stump/issues/432)) [[558721a](https://github.com/stumpapp/stump/commit/558721a8f07739c38d8d828a4589442f8f148fad)]
- 🐛 Fix emailer form validation and update endpoint ([#430](https://github.com/stumpapp/stump/issues/430)) [[ce173a2](https://github.com/stumpapp/stump/commit/ce173a21d83fbf4666097ae84373cad3442f5c46)]
- 💚 Fix docker build push ([#424](https://github.com/stumpapp/stump/issues/424)) [[bef46c8](https://github.com/stumpapp/stump/commit/bef46c809a75fa3dd8559dbee763b9d4ec50804b)]
- 🐛 Fix regression in scanner for root-level series ([#423](https://github.com/stumpapp/stump/issues/423)) [[03ff5e0](https://github.com/stumpapp/stump/commit/03ff5e0faf0e44e58714788cceeb92bb42458e19)]
- 🐛 Fix OPDS thumbnail endpoint ([#414](https://github.com/stumpapp/stump/issues/414)) [[77b4635](https://github.com/stumpapp/stump/commit/77b4635c4ddb7fb1035929d4c0da86751a777f2f)]
- 🐛 Fix book titles in entity cards ([#412](https://github.com/stumpapp/stump/issues/412)) [[96ea14f](https://github.com/stumpapp/stump/commit/96ea14f95b5ee0ecea4d3e9c796e5f063e4bc149)]
- 💚 Fix &#x60;runs-on&#x60; for docker build workflows ([#407](https://github.com/stumpapp/stump/issues/407)) [[afd42e9](https://github.com/stumpapp/stump/commit/afd42e92dd6f4983ea76fdeb678413c07ccfdc6e)]
- 🐛 Fix invalid SQL for library stats query ([#401](https://github.com/stumpapp/stump/issues/401)) [[362e85f](https://github.com/stumpapp/stump/commit/362e85f304704d6add7f06c55a6dbda8887d360f)]

### Miscellaneous

- 🌐 Update translations ([#434](https://github.com/stumpapp/stump/issues/434)) [[ceb2aa1](https://github.com/stumpapp/stump/commit/ceb2aa1621a46b7629c4decb829424f97ab480bf)]
- 🌐 Update translations ([#418](https://github.com/stumpapp/stump/issues/418)) [[c1d20fe](https://github.com/stumpapp/stump/commit/c1d20feee75e42900bf7fe9acca2e42105460411)]
- 📝 Update docs for broken demo ([#421](https://github.com/stumpapp/stump/issues/421)) [[a5fa8f5](https://github.com/stumpapp/stump/commit/a5fa8f53bd890a7ef488cc6c5b4e1e61108ea9f3)]
- 🌐 New translations ([#411](https://github.com/stumpapp/stump/issues/411)) [[7d6b704](https://github.com/stumpapp/stump/commit/7d6b704c60f2bd6c6a444bb22df5e06e0c98717c)]
- 📝 Add binary links to documentation site ([#404](https://github.com/stumpapp/stump/issues/404)) [[17ef33b](https://github.com/stumpapp/stump/commit/17ef33b6e5a517031d460d421e56ff80e73088df)]
- 🔨 Fix docker &#x60;dav1d&#x60; shared library linking ([#408](https://github.com/stumpapp/stump/issues/408)) [[a8ef2a4](https://github.com/stumpapp/stump/commit/a8ef2a48d895e3beb007d31c401a71d41e9f3977)]
- 🌐 New translations ([#398](https://github.com/stumpapp/stump/issues/398)) [[862ff63](https://github.com/stumpapp/stump/commit/862ff63a8cdac700170d26ffc264591767954ae6)]


<a name="0.0.5"></a>
## 0.0.5 (2024-08-14)

Expand Down
81 changes: 59 additions & 22 deletions .github/actions/build-docker/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ inputs:
tags:
description: 'List of tags to assigned to the image'
default: 'nightly'
platforms:
archs:
description: 'List of platforms to build'
required: true
discord-webhook:
Expand All @@ -33,17 +33,30 @@ runs:

- name: Format tags
run: |
echo "TAGS=$(echo ${{ inputs.tags }} | sed -e 's/,/,aaronleopold\/stump:/g' | sed -e 's/^/aaronleopold\/stump:/')" >> $GITHUB_ENV
echo "FORMATTED_TAGS=$(echo ${{ inputs.tags }} | sed -e 's/,/ /g')" >> $GITHUB_ENV
echo "LOCAL_IMAGES=$(echo ${{ inputs.tags }} | sed -e 's/,/,localhost\/stump:/g' | sed -e 's/^/localhost\/stump:/')" >> $GITHUB_ENV
shell: bash

- name: Sanity check
run: |
echo "TAGS=${{ inputs.tags }}"
echo "FORMATTED_TAGS=${{ env.FORMATTED_TAGS }}"
echo "LOCAL_IMAGES=${{ env.LOCAL_IMAGES }}"
echo "GIT_REV=${{ env.GIT_REV }}"
shell: bash

- name: Setup rust
uses: ./.github/actions/setup-rust
with:
# Note: until some sort of local caching is implemented, we don't want to cache dependencies
# because the network overhead is too high and eats up lots of time
cache-dependencies: ${{ runner.environment != 'self-hosted' }}

# We only need QEMU when an arm* platform is targeted
- name: Check QEMU requirement
id: check-qemu
run: |
if [[ ${{ inputs.platforms }} == *"arm"* ]]; then
if [[ ${{ inputs.archs }} == *"arm"* ]]; then
echo "SETUP_QEMU=1" >> $GITHUB_OUTPUT
else
echo "SETUP_QEMU=0" >> $GITHUB_OUTPUT
Expand All @@ -53,35 +66,59 @@ runs:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
if: ${{ steps.check-qemu.outputs.SETUP_QEMU == '1' }}
with:
platforms: linux/arm64

- name: Install podman and buildah
if: runner.environment != 'self-hosted'
run: |
sudo apt-get update
sudo apt-get install -y podman buildah
shell: bash

- name: Remove existing images
run: |
podman rmi ${{ env.LOCAL_IMAGES }} || true
shell: bash

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Run buildah build
id: build
uses: redhat-actions/buildah-build@v2
with:
image: stump
tags: ${{ env.FORMATTED_TAGS }}
archs: ${{ inputs.archs }}
build-args: |
GIT_REV=${{ env.GIT_REV }}
RUN_PRISMA_GENERATE=false
containerfiles: |
./docker/Dockerfile
- name: Echo build outputs
run: |
echo "${{ toJSON(steps.build.outputs) }}"
shell: bash

- name: Login to Docker Hub
uses: docker/login-action@v2
# if both inputs are empty, we assume we're running on a fork and don't need to login
if: ${{ inputs.username != '' && inputs.password != '' }}
- name: Push to registry
id: push
if: ${{ success() && inputs.push == 'true' }}
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build.outputs.image }}
tags: ${{ steps.build.outputs.tags }}
username: ${{ inputs.username }}
password: ${{ inputs.password }}
registry: docker.io/aaronleopold

- name: Run buildx build
uses: docker/build-push-action@v4
with:
context: .
build-args: |
"GIT_REV=${{ env.GIT_REV }}"
"TAGS=${{ env.TAGS }}"
file: docker/Dockerfile
platforms: ${{ inputs.platforms }}
load: ${{ inputs.load }}
push: ${{ inputs.push }}
tags: ${{ env.TAGS }}
- name: Echo push outputs
run: |
echo "${{ toJSON(steps.push.outputs) }}"
shell: bash

- name: Discord notification
if: ${{ success() && inputs.push == 'true' && inputs.discord-webhook != '' }}
env:
DISCORD_WEBHOOK: ${{ inputs.discord-webhook }}
uses: 'Ilshidur/action-discord@0.3.2'
with:
args: 'Successfully pushed the following image tags to registry: ${{ env.TAGS }}'
args: 'Successfully pushed the following image tags to registry: ${{ steps.build.outputs.tags }}'
23 changes: 2 additions & 21 deletions .github/actions/build-web/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,8 @@ runs:
- name: Checkout project
uses: actions/checkout@v3

- uses: actions/setup-node@v4
with:
node-version: '20.0.0'

- name: Install yarn
shell: bash
run: npm install -g yarn

- uses: actions/setup-node@v4
with:
node-version: '20.0.0'
cache: 'yarn'

- name: Install yarn
shell: bash
run: npm install -g yarn

- name: Install dependencies
shell: bash
run: yarn install
working-directory: apps/web
- name: Setup Node and Yarn
uses: ./.github/actions/setup-yarn

- name: Build app
shell: bash
Expand Down
34 changes: 34 additions & 0 deletions .github/actions/coverage/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Coverage CI
description: Run code coverage checks

inputs:
token:
description: 'Codecov token'
required: true
cache-dependencies:
description: 'Whether to cache dependencies. This does not affect the Prisma client cache.'
required: false
default: 'true'

runs:
using: composite
steps:
- name: Setup rust
uses: ./.github/actions/setup-rust
with:
cache-dependencies: ${{ inputs.cache-dependencies }}

- name: Install cargo-llvm-cov
run: cargo install cargo-llvm-cov
shell: bash

- name: Generate code coverage data
shell: bash
run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ inputs.token }}
files: lcov.info
fail_ci_if_error: true
86 changes: 86 additions & 0 deletions .github/actions/setup-dav1d/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Dav1d
description: Compile and install dav1d

runs:
using: composite
steps:
# Linux Section
- name: Install nasm
if: runner.os == 'Linux'
uses: ilammy/setup-nasm@v1

- name: Install Python 3.9
if: runner.os == 'Linux'
uses: actions/setup-python@v4
with:
python-version: '3.9'

- name: Install pip packages
if: runner.os == 'Linux'
shell: bash
run: |
pip install -U pip
pip install -U wheel setuptools
pip install -U meson ninja
- name: Build dav1d
if: runner.os == 'Linux'
env:
DAV1D_DIR: dav1d_dir
LIB_PATH: lib/x86_64-linux-gnu
shell: bash
run: |
git clone --branch 1.3.0 --depth 1 https://code.videolan.org/videolan/dav1d.git
cd dav1d
meson build -Dprefix=$HOME/$DAV1D_DIR -Denable_tools=false -Denable_examples=false --buildtype release
ninja -C build
ninja -C build install
echo "PKG_CONFIG_PATH=$HOME/$DAV1D_DIR/$LIB_PATH/pkgconfig" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/$DAV1D_DIR/$LIB_PATH" >> $GITHUB_ENV
# Windows setup
- name: Install nasm
if: runner.os == 'Windows'
uses: ilammy/setup-nasm@v1

- name: Install Python 3.9
if: runner.os == 'Windows'
uses: actions/setup-python@v4
with:
python-version: '3.9'

- name: Install pip packages
if: runner.os == 'Windows'
shell: powershell
run: |
pip install -U pip
pip install -U wheel setuptools
pip install -U meson ninja
- name: Setting up environment
if: runner.os == 'Windows'
shell: bash
run: |
echo "PKG_CONFIG=c:\build\bin\pkg-config.exe" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=C:\build\lib\pkgconfig" >> $GITHUB_ENV
echo "C:\build\bin" >> $GITHUB_PATH
- name: Build pkg-config
if: runner.os == 'Windows'
shell: powershell
run: |
git clone --branch meson-glib-subproject --depth 1 https://gitlab.freedesktop.org/tpm/pkg-config.git
cd pkg-config
meson build -Dprefix=C:\build --buildtype release
ninja -C build
ninja -C build install
- name: Build dav1d
if: runner.os == 'Windows'
shell: powershell
run: |
git clone --branch 1.3.0 --depth 1 https://code.videolan.org/videolan/dav1d.git
cd dav1d
meson build -Dprefix=C:\build -Denable_tools=false -Denable_examples=false --buildtype release
ninja -C build
ninja -C build install
13 changes: 10 additions & 3 deletions .github/actions/setup-rust/action.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
name: Setup system dependencies
description: Install system dependencies and setup cache

inputs:
cache-dependencies:
description: 'Cache dependencies. This does not affect the Prisma client cache.'
required: false
default: 'true'

runs:
using: composite
steps:
Expand All @@ -13,11 +19,13 @@ runs:
components: rustfmt, clippy

- name: Configure environment
if: ${{ runner.name != 'oromei-ubuntu' && runner.os != 'Windows' }}
if: ${{ runner.environment != 'self-hosted' && runner.os != 'Windows' }}
shell: bash
run: CHECK_NODE=0 CHECK_CARGO=0 DEV_SETUP=0 ./scripts/system-setup.sh

# See https://github.com/Swatinem/rust-cache/issues/194
- name: Cache Rust Dependencies
if: ${{ inputs.cache-dependencies == 'true' }}
uses: Swatinem/rust-cache@v2
with:
shared-key: stump-rust-cache
Expand All @@ -37,8 +45,7 @@ runs:
- name: Save Prisma client
id: cache-prisma-save
if: ${{ steps.cache-prisma-restore.outputs.cache-hit != 'true' }}
uses: actions/cache/save@v3
uses: actions/cache/save@v4
with:
path: core/src/prisma.rs
key: ${{ runner.os }}-prisma-${{ hashFiles('**/schema.prisma') }}
restore-keys: ${{ runner.os }}-prisma-${{ hashFiles('**/schema.prisma') }}
31 changes: 31 additions & 0 deletions .github/actions/setup-yarn/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Setup Yarn
description: Install Yarn and setup cache

inputs:
cache-dependencies:
description: 'Cache dependencies. This does not affect the Prisma client cache.'
required: false
default: 'true'

runs:
using: composite
steps:
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: '20.0.0'

- name: Install yarn
shell: bash
run: npm install -g yarn

- name: Setup node (yarn cache)
if: ${{ inputs.cache-dependencies == 'true' }}
uses: actions/setup-node@v4
with:
node-version: '20.0.0'
cache: 'yarn'

- name: Install dependencies
run: yarn install
shell: bash
Loading

0 comments on commit 7f73431

Please sign in to comment.