Skip to content

Commit dbf1ac4

Browse files
committed
fix(ci/test_rpm): wrong bundle directory
1 parent 8b9697e commit dbf1ac4

3 files changed

Lines changed: 51 additions & 48 deletions

File tree

.github/workflows/build-test.yml

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,7 @@ jobs:
128128

129129
- name: Install build dependencies
130130
run: |
131-
sudo dnf install @development-tools -y
132-
sudo dnf install -y \
131+
sudo dnf install -y @development-tools \
133132
clang cmake ninja-build pkg-config \
134133
gtk3-devel xz-devel libstdc++-devel \
135134
rpm-build jq which
@@ -160,13 +159,15 @@ jobs:
160159

161160
- name: Create RPM spec file
162161
run: |
162+
BUNDLE_DIR="$GITHUB_WORKSPACE/build/linux/x64/debug/bundle"
163+
163164
mkdir -p rpmbuild/SPECS
164165
cat > rpmbuild/SPECS/frameextractor.spec << 'EOF'
165-
Name: FrameExtractor
166-
Version: 1.0.0
167-
Release: 1%{?dist}
168-
Summary: Effortless video frame extraction
169-
License: GPLv3
166+
Name: FrameExtractor
167+
Version: 1.0.0
168+
Release: 1%{?dist}
169+
Summary: Effortless video frame extraction
170+
License: GPLv3
170171
171172
%description
172173
FrameExtractor is a modern, cross-platform video frame extractor
@@ -179,15 +180,17 @@ jobs:
179180
180181
%install
181182
mkdir -p %{buildroot}/opt/frameextractor
182-
cp -r build/linux/x64/debug/bundle/* %{buildroot}/opt/frameextractor/
183+
cp -r ${BUNDLE_DIR}/. %{buildroot}/opt/frameextractor/
183184
184185
%files
185186
/opt/frameextractor/*
186187
EOF
187188
188189
- name: Build RPM package
189190
run: |
190-
rpmbuild -bb rpmbuild/SPECS/frameextractor.spec
191+
rpmbuild -bb \
192+
--define "_topdir $HOME/rpmbuild" \
193+
~/rpmbuild/SPECS/frameextractor.spec
191194
192195
- name: Verify RPM created
193196
run: |
@@ -298,14 +301,7 @@ jobs:
298301
299302
all-tests-pass:
300303
name: All build tests passed
301-
needs:
302-
[
303-
analyze,
304-
test-linux,
305-
test-linux-rpm,
306-
test-windows,
307-
test-android,
308-
]
304+
needs: [analyze, test-linux, test-linux-rpm, test-windows, test-android]
309305
runs-on: ubuntu-latest
310306
if: always()
311307
steps:

.github/workflows/build.yml

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -387,8 +387,7 @@ jobs:
387387

388388
- name: Install build dependencies
389389
run: |
390-
sudo dnf install @development-tools -y
391-
sudo dnf install -y \
390+
sudo dnf install -y @development-tools \
392391
clang cmake ninja-build pkg-config \
393392
gtk3-devel xz-devel libstdc++-devel \
394393
rpm-build desktop-file-utils hicolor-icon-theme jq which
@@ -405,7 +404,7 @@ jobs:
405404
channel: stable
406405
cache: true
407406

408-
- name: Download dummy binaries
407+
- name: Download binaries
409408
uses: actions/download-artifact@v4
410409
with:
411410
name: binaries
@@ -414,14 +413,25 @@ jobs:
414413
- name: Get Flutter dependencies
415414
run: flutter pub get
416415

416+
- name: Get version
417+
run: |
418+
echo "VERSION=$(grep '^version:' pubspec.yaml | sed 's/version: //;s/+.*//')" >> $GITHUB_ENV
419+
417420
- name: Build Linux (release)
418421
run: flutter build linux --release --dart-define=PORTABLE=false
419422

423+
- name: Inject binaries
424+
run: |
425+
mkdir -p build/linux/x64/release/bundle/bin
426+
cp assets/binaries/linux/ffmpeg build/linux/x64/release/bundle/bin/
427+
cp assets/binaries/linux/yt-dlp build/linux/x64/release/bundle/bin/
428+
chmod +x build/linux/x64/release/bundle/bin/*
429+
420430
# rpm package
421431
- name: Build .rpm package
422432
run: |
423433
VERSION="${{ env.VERSION }}"
424-
BUNDLE="build/linux/x64/release/bundle"
434+
BUNDLE="$GITHUB_WORKSPACE/build/linux/x64/release/bundle"
425435
426436
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
427437
@@ -437,16 +447,13 @@ jobs:
437447
EXE_NAME=$(basename "$EXE")
438448
if [ "$EXE_NAME" != "frameextractor" ]; then
439449
mv "$EXE" "$BUILDROOT/opt/frameextractor/frameextractor"
440-
echo "Renamed $EXE_NAME → frameextractor"
441450
fi
442451
chmod +x "$BUILDROOT/opt/frameextractor/frameextractor"
443452
chmod +x "$BUILDROOT/opt/frameextractor/bin/ffmpeg" 2>/dev/null || true
444-
chmod +x "$BUILDROOT/opt/frameextractor/bin/yt-dlp" 2>/dev/null || true
453+
chmod +x "$BUILDROOT/opt/frameextractor/bin/yt-dlp" 2>/dev/null || true
445454
446-
# Symlink
447455
ln -s /opt/frameextractor/frameextractor "$BUILDROOT/usr/bin/frameextractor"
448456
449-
# Desktop entry
450457
cat > "$BUILDROOT/usr/share/applications/frameextractor.desktop" << 'DESKTOP'
451458
[Desktop Entry]
452459
Version=1.0
@@ -456,22 +463,20 @@ jobs:
456463
Comment=Extract frames from video files using ffmpeg
457464
Exec=/opt/frameextractor/frameextractor
458465
Icon=frameextractor
459-
Categories=Video;AudioVideo;
466+
Categories=Video;AudioVideo;FrameExtraction;FrameExtractor;
460467
Terminal=false
461468
StartupWMClass=frameextractor
462469
DESKTOP
463470
464-
if [ -f "assets/icons/icon_256.png" ]; then
465-
cp "assets/icons/icon_256.png" \
471+
if [ -f "$GITHUB_WORKSPACE/assets/icons/icon_256.png" ]; then
472+
cp "$GITHUB_WORKSPACE/assets/icons/icon_256.png" \
466473
"$BUILDROOT/usr/share/icons/hicolor/256x256/apps/frameextractor.png"
467474
fi
468475
469-
# Generate file list for %files section (everything under BUILDROOT)
470476
FILES=$(find "$BUILDROOT" \( -type f -o -type l \) \
471477
| sed "s|$BUILDROOT||" \
472478
| sort)
473479
474-
# Write .spec
475480
cat > ~/rpmbuild/SPECS/frameextractor.spec << SPEC
476481
Name: frameextractor
477482
Version: ${VERSION}
@@ -480,32 +485,32 @@ jobs:
480485
License: GPLv3
481486
URL: https://github.com/nokarin-dev/frameextractor
482487
BuildArch: x86_64
483-
484488
Requires: gtk3, xz-libs
485489
486490
%description
487491
FrameExtractor is a modern, cross-platform video frame extractor
488492
with a clean UI built with Flutter, powered by ffmpeg and yt-dlp.
489-
Supports local video files and direct YouTube URL extraction.
490493
491494
%install
492495
exit 0
493496
494497
%post
495498
chmod +x /opt/frameextractor/frameextractor 2>/dev/null || true
496-
chmod +x /opt/frameextractor/bin/ffmpeg 2>/dev/null || true
497-
chmod +x /opt/frameextractor/bin/yt-dlp 2>/dev/null || true
499+
chmod +x /opt/frameextractor/bin/ffmpeg 2>/dev/null || true
500+
chmod +x /opt/frameextractor/bin/yt-dlp 2>/dev/null || true
498501
update-desktop-database /usr/share/applications 2>/dev/null || true
499-
/usr/bin/gtk-update-icon-cache \
500-
/usr/share/icons/hicolor 2>/dev/null || true
502+
/usr/bin/gtk-update-icon-cache /usr/share/icons/hicolor 2>/dev/null || true
501503
exit 0
502504
503505
%postun
504506
update-desktop-database /usr/share/applications 2>/dev/null || true
505-
/usr/bin/gtk-update-icon-cache \
506-
/usr/share/icons/hicolor 2>/dev/null || true
507+
/usr/bin/gtk-update-icon-cache /usr/share/icons/hicolor 2>/dev/null || true
507508
exit 0
508509
510+
%changelog
511+
* $(date "+%a %b %d %Y") Builder <build@nokarin.my.id> - ${VERSION}-1
512+
- Release ${VERSION}
513+
509514
%files
510515
$(echo "$FILES" | sed 's|^/usr/bin/frameextractor|%attr(0755,root,root) /usr/bin/frameextractor|')
511516
SPEC
@@ -517,16 +522,13 @@ jobs:
517522
~/rpmbuild/SPECS/frameextractor.spec
518523
519524
RPM_FILE=$(find ~/rpmbuild/RPMS/x86_64 -name "*.rpm" | head -1)
520-
if [ -z "$RPM_FILE" ]; then
521-
echo "✗ RPM not found!" && exit 1
522-
fi
523-
cp "$RPM_FILE" "FrameExtractor-linux-installer.rpm"
524-
echo "✓ .rpm built: FrameExtractor-linux-installer.rpm"
525-
rpm -qip "FrameExtractor-linux-installer.rpm"
525+
[ -z "$RPM_FILE" ] && echo "✗ RPM not found!" && exit 1
526+
cp "$RPM_FILE" "$GITHUB_WORKSPACE/FrameExtractor-linux-installer.rpm"
527+
echo "✓ RPM built"
526528
527529
- uses: actions/upload-artifact@v4
528530
with:
529-
name: linux-fedora-build
531+
name: linux-rpm-build
530532
path: FrameExtractor-linux-installer.rpm
531533

532534
# Android
@@ -607,7 +609,7 @@ jobs:
607609
# Create GitHub Release
608610
release:
609611
name: Create Release
610-
needs: [build-windows, build-linux, build-android]
612+
needs: [build-windows, build-linux, build-linux-rpm, build-android]
611613
runs-on: ubuntu-latest
612614
steps:
613615
- uses: actions/checkout@v4

changelog.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ This project loosely follows Keep a Changelog and uses Semantic Versioning.
77
---
88

99
## [Unreleased]
10+
11+
No Changes Yet.
12+
13+
---
14+
## [1.1.3] - 2026-04-02
1015
### Added
1116
#### Core
1217
- Update checker
@@ -24,7 +29,6 @@ This project loosely follows Keep a Changelog and uses Semantic Versioning.
2429
- TitleBar & Splash Screen default material icon to FrameExtractor Icon
2530
- Log Body not expandable now on mobile
2631

27-
---
2832
## [1.1.2] - 2026-03-26
2933
### Fixed
3034
#### CI/CD
@@ -163,7 +167,8 @@ On first launch, required binaries are extracted to:
163167

164168
---
165169

166-
[Unreleased]: https://github.com/nokarin-dev/frameextractor/compare/v1.1.2...HEAD
170+
[Unreleased]: https://github.com/nokarin-dev/frameextractor/compare/v1.1.3...HEAD
171+
[1.1.3]: https://github.com/nokarin-dev/frameextractor/releases/tag/v1.1.3
167172
[1.1.2]: https://github.com/nokarin-dev/frameextractor/releases/tag/v1.1.2
168173
[1.1.1]: https://github.com/nokarin-dev/frameextractor/releases/tag/v1.1.1
169174
[1.1.0]: https://github.com/nokarin-dev/frameextractor/releases/tag/v1.1.0

0 commit comments

Comments
 (0)