release: version 0.9.11

* ui: tweaks on header bar layout

* release: build arm64 linux binaries
This commit is contained in:
Huang Xin
2025-02-14 01:45:22 +01:00
parent b33d85f439
commit bd6ef7fe8e
6 changed files with 106 additions and 6 deletions
+90 -1
View File
@@ -73,7 +73,7 @@ jobs:
args: '--target aarch64-pc-windows-msvc --bundles nsis'
runs-on: ${{ matrix.config.os }}
timeout-minutes: 20
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
@@ -168,6 +168,95 @@ jobs:
echo "Uploading $bin_file to GitHub release"
gh release upload ${{ needs.get-release.outputs.release_tag }} $bin_file --clobber
build-tauri-linux-arm:
if: false
permissions:
contents: write
runs-on: ubuntu-22.04
needs: [get-release]
strategy:
matrix:
arch: [aarch64, armv7l]
include:
- arch: aarch64
cpu: cortex-a72
base_image: https://dietpi.com/downloads/images/DietPi_RPi-ARMv8-Bookworm.img.xz
deb: arm64
appimage: aarch64
- arch: armv7l
cpu: cortex-a53
deb: armhfp
appimage: armhf
base_image: https://dietpi.com/downloads/images/DietPi_RPi-ARMv7-Bookworm.img.xz
steps:
- uses: actions/checkout@v4
- name: initialize git submodules
run: git submodule update --init --recursive
- name: create .env.local file for Next.js
run: |
echo "NEXT_PUBLIC_POSTHOG_KEY=${{ secrets.NEXT_PUBLIC_POSTHOG_KEY }}" >> .env.local
echo "NEXT_PUBLIC_POSTHOG_HOST=${{ secrets.NEXT_PUBLIC_POSTHOG_HOST }}" >> .env.local
echo "NEXT_PUBLIC_SUPABASE_URL=${{ secrets.NEXT_PUBLIC_SUPABASE_URL }}" >> .env.local
echo "NEXT_PUBLIC_SUPABASE_ANON_KEY=${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }}" >> .env.local
echo "NEXT_PUBLIC_APP_PLATFORM=tauri" >> .env.local
- name: copy .env.local to apps/readest-app
run: cp .env.local apps/readest-app/.env.local
- name: cache rust build artifacts
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- name: build app
uses: pguyot/arm-runner-action@v2.6.5
with:
base_image: ${{ matrix.base_image }}
cpu: ${{ matrix.cpu }}
bind_mount_repository: true
image_additional_mb: 10240
optimize_image: no
#exit_on_fail: no
commands: |
# Prevent Rust from complaining about $HOME not matching eid home
export HOME=/root
# Workaround to CI worker being stuck on Updating crates.io index
export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
# Install setup prerequisites
apt-get update -y --allow-releaseinfo-change
apt-get autoremove -y
apt-get install -y --no-install-recommends --no-install-suggests pkg-config libfontconfig-dev curl libwebkit2gtk-4.1-dev build-essential libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf libfuse2 file
curl https://sh.rustup.rs -sSf | sh -s -- -y
. "$HOME/.cargo/env"
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash
apt-get install -y nodejs
npm install -g pnpm@latest-10
# Install frontend dependencies
pnpm install
# Copy pdfjs-dist to public directory
pnpm --filter @readest/readest-app setup-pdfjs
# Build the application
pnpm tauri build
- name: upload arm bundles
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: |
version=${{ needs.get-release.outputs.release_version }}
gh release upload ${{ needs.get-release.outputs.release_tag }} target/release/bundle/deb/Readest_${version}_${{ matrix.deb }}.deb --clobber
gh release upload ${{ needs.get-release.outputs.release_tag }} target/release/bundle/appimage/Readest_${version}_${{ matrix.appimage }}.AppImage --clobber
update-release:
permissions:
contents: write
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@readest/readest-app",
"version": "0.9.10",
"version": "0.9.11",
"private": true,
"scripts": {
"dev": "dotenv -e .env.tauri -- next dev",
+8
View File
@@ -1,5 +1,13 @@
{
"releases": {
"0.9.11": {
"date": "2025-02-14",
"notes": [
"Organize the library with customizable groups/folders",
"Alpha release for Android and iOS platforms",
"Various fixes and enhancements on Android and iOS platforms"
]
},
"0.9.10": {
"date": "2025-02-08",
"notes": [
@@ -7,7 +7,7 @@ use tauri::{
}; // 0.8
const WINDOW_CONTROL_PAD_X: f64 = 10.0;
const WINDOW_CONTROL_PAD_Y: f64 = 22.0;
const WINDOW_CONTROL_PAD_Y: f64 = 20.0;
struct UnsafeWindowHandle(*mut std::ffi::c_void);
unsafe impl Send for UnsafeWindowHandle {}
@@ -56,12 +56,12 @@ const LibraryHeader: React.FC<LibraryHeaderProps> = ({
<div
ref={headerRef}
className={clsx(
'titlebar z-10 h-11 w-full py-2 pr-6',
'titlebar z-10 flex h-11 w-full items-center py-2 pr-6',
appService?.hasSafeAreaInset && 'mt-[env(safe-area-inset-top)]',
isTrafficLightVisible ? 'pl-16' : 'pl-2',
)}
>
<div className='flex items-center justify-between space-x-6 sm:space-x-12'>
<div className='flex w-full items-center justify-between space-x-6 sm:space-x-12'>
<div className='exclude-title-bar-mousedown relative flex w-full items-center pl-4'>
{isInGroupView && (
<button
@@ -22,6 +22,7 @@ export const usePullToRefresh = (ref: React.RefObject<HTMLDivElement>, onTrigger
if (el.scrollTop > 0) return;
const initialX = startEvent.touches[0]!.clientX;
const initialY = startEvent.touches[0]!.clientY;
el.addEventListener('touchmove', handleTouchMove, { passive: false });
@@ -31,10 +32,12 @@ export const usePullToRefresh = (ref: React.RefObject<HTMLDivElement>, onTrigger
const el = ref.current;
if (!el) return;
const currentX = moveEvent.touches[0]!.clientX;
const currentY = moveEvent.touches[0]!.clientY;
const dx = currentX - initialX;
const dy = currentY - initialY;
if (dy < 0 || Math.abs(dx) * 2 > Math.abs(dy)) return;
if (dy < 0) return;
const parentEl = el.parentNode as HTMLDivElement;
if (dy > TRIGGER_THRESHOLD) {
flipArrow(parentEl);