Skip to content

Commit a819489

Browse files
committed
ci: Add ruffle_webext target to Makefile; Add webext deb package; Add CI steps for webext deb
1 parent 8796942 commit a819489

File tree

6 files changed

+68
-11
lines changed

6 files changed

+68
-11
lines changed

.github/workflows/release_nightly.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -720,9 +720,15 @@ jobs:
720720
- name: Get prebuilt binaries
721721
run: |
722722
gh release download "${{ needs.create-nightly-release.outputs.tag_name }}" --pattern "${{ needs.create-nightly-release.outputs.package_prefix }}-linux-${{ matrix.arch }}.tar.gz"
723+
gh release download "${{ needs.create-nightly-release.outputs.tag_name }}" --pattern "${{ needs.create-nightly-release.outputs.package_prefix }}-web-extension.zip"
724+
gh release download "${{ needs.create-nightly-release.outputs.tag_name }}" --pattern "${{ needs.create-nightly-release.outputs.package_prefix }}-web-extension-firefox-unsigned.xpi"
723725
tar -xf "${{ needs.create-nightly-release.outputs.package_prefix }}-linux-${{ matrix.arch }}.tar.gz" ruffle
724726
rm "${{ needs.create-nightly-release.outputs.package_prefix }}-linux-${{ matrix.arch }}.tar.gz"
725-
mv ruffle ruffle_desktop
727+
mkdir -p web/packages/extension/dist
728+
mv "${{ needs.create-nightly-release.outputs.package_prefix }}-web-extension.zip" web/packages/extension/dist/ruffle_extension.zip
729+
mv "${{ needs.create-nightly-release.outputs.package_prefix }}-web-extension-firefox-unsigned.xpi" web/packages/extension/dist/firefox_unsigned.xpi
730+
mkdir -p target/release
731+
mv ruffle target/release/ruffle_desktop
726732
env:
727733
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
728734
- name: Build Packages
@@ -743,6 +749,7 @@ jobs:
743749
mv ../ruffle_${{ steps.profiling.outputs.version }}-${{ steps.profiling.outputs.revision }}_${{ matrix.build_name }}.changes ./
744750
mv ../ruffle-desktop_${{ steps.profiling.outputs.version }}-${{ steps.profiling.outputs.revision }}_${{ matrix.build_name }}.deb ./
745751
mv ../ruffle-desktop-dbgsym_${{ steps.profiling.outputs.version }}-${{ steps.profiling.outputs.revision }}_${{ matrix.build_name }}.ddeb ./
752+
mv ../webext-ruffle-flash-emulator_${{ steps.profiling.outputs.version }}-${{ steps.profiling.outputs.revision }}_all.deb ./
746753
- name: Upload Source package as build artifact
747754
if: runner.arch == 'X64'
748755
uses: actions/upload-artifact@v5
@@ -754,6 +761,13 @@ jobs:
754761
ruffle_${{ steps.profiling.outputs.version }}-${{ steps.profiling.outputs.revision }}.dsc
755762
ruffle_${{ steps.profiling.outputs.version }}-${{ steps.profiling.outputs.revision }}_source.buildinfo
756763
ruffle_${{ steps.profiling.outputs.version }}-${{ steps.profiling.outputs.revision }}_source.changes
764+
- name: Upload Extension Package as build artifact
765+
if: runner.arch == 'X64'
766+
uses: actions/upload-artifact@v5
767+
with:
768+
name: deb-all
769+
path: |
770+
webext-ruffle-flash-emulator_${{ steps.profiling.outputs.version }}-${{ steps.profiling.outputs.revision }}_all.deb
757771
- name: Upload Packages as build artifact
758772
uses: actions/upload-artifact@v5
759773
with:
@@ -772,6 +786,7 @@ jobs:
772786
uses: actions/download-artifact@v4
773787
with:
774788
merge-multiple: true
789+
pattern: deb-*
775790
run-id: ${{ needs.build-debian-packages.outputs.run_id }}
776791
path: download/${{ needs.create-nightly-release.outputs.tag_name }}
777792
- name: Generate trivial source
@@ -783,7 +798,7 @@ jobs:
783798
apt-ftparchive release . > Release
784799
- name: Upload packages
785800
run: |
786-
gh release upload -R ${{ github.repository }} "${{ needs.create-nightly-release.outputs.tag_name }}" `find download -name 'ruffle*.deb'` `find download -name 'ruffle*.ddeb'`
801+
gh release upload -R ${{ github.repository }} "${{ needs.create-nightly-release.outputs.tag_name }}" `find download -name '*ruffle*.deb'` `find download -name 'ruffle*.ddeb'`
787802
gh release upload -R ${{ github.repository }} "${{ needs.create-nightly-release.outputs.tag_name }}" `find download -name 'ruffle*.orig.tar.gz'` `find download -name 'ruffle*.debian.tar.xz'` `find download -name 'ruffle*.dsc'` download/${{ needs.create-nightly-release.outputs.tag_name }}/Packages download/${{ needs.create-nightly-release.outputs.tag_name }}/Sources download/${{ needs.create-nightly-release.outputs.tag_name }}/Release
788803
env:
789804
GITHUB_TOKEN: ${{ secrets.PGITHUB_TOKEN }}

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ RECOVER_*.fla
1818
.DS_Store
1919

2020
# Generated by Make
21-
ruffle_desktop
2221
/debian
2322

2423
# CI middle files

Makefile

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: all clean distclean install uninstall version deb
1+
.PHONY: all clean distclean ruffle_desktop ruffle_webext install uninstall version deb
22

33
SI := -i ''
44
ifeq ($(shell sed --version 2>/dev/null | head -1 | grep -q GNU && echo GNU),GNU)
@@ -16,12 +16,12 @@ prefix ?= /usr/local
1616
VERSION := $(shell cargo metadata --format-version=1 --no-deps --offline | jq -r '.packages[] | select(.name == "ruffle_desktop").version')
1717
DEBIAN_ORIG_GZ := ../ruffle_$(VERSION).orig.tar.gz
1818
DEBIAN_ORIG_XZ := ../ruffle_$(VERSION).orig.tar.xz
19-
REVISION := $(shell date -d $(shell echo $(notdir $(CURDIR)) | sed 's/ruffle-//' | sed 's/nightly-//' | sed 's/$(VERSION)-//') +%y%j)
19+
REVISION := $(shell date -d $(shell echo $(notdir $(CURDIR)) | sed 's/ruffle-//' | sed 's/nightly-//' | sed 's/$(VERSION)-//') +%y%j 2>/dev/null)
2020
ifeq ($(REVISION),)
2121
REVISION := $(shell date +%y%j)
2222
endif
2323

24-
all: ruffle_desktop
24+
all: target/release/ruffle_desktop web/packages/extension/dist/ruffle_extension.zip web/packages/extension/dist/firefox_unsigned.xpi
2525

2626
clean:
2727
-rm -f ruffle_desktop
@@ -32,13 +32,20 @@ distclean: clean
3232
-rm -rf *.swd RECOVER_*.fla /.idea .DS_Store
3333
-cd $(DEBIAN_DIR) && rm -rf ./ruffle.substvars ./.debhelper/ ./debhelper-build-stamp ./files ./ruffle/ ./ruffle.debhelper.log ./tmp/
3434

35-
ruffle_desktop:
36-
cargo build --release --package=$@
37-
install -m755 target/release/$@ ./$@
35+
ruffle_desktop: target/release/ruffle_desktop
3836

39-
install: ruffle_desktop
37+
target/release/ruffle_desktop:
38+
cargo build --release --package=ruffle_desktop
39+
40+
ruffle_webext: web/packages/extension/dist/ruffle_extension.zip web/packages/extension/dist/firefox_unsigned.xpi
41+
42+
web/packages/extension/dist/ruffle_extension.zip web/packages/extension/dist/firefox_unsigned.xpi:
43+
cd web && npm install
44+
cd web && CARGO_FEATURES=jpegxr WASM_SOURCE=cargo_and_store npm run build:dual-wasm-repro
45+
46+
install: target/release/ruffle_desktop web/packages/extension/dist/ruffle_extension.zip web/packages/extension/dist/firefox_unsigned.xpi
4047
install -d $(DESTDIR)$(prefix)/bin/
41-
install -m755 $^ $(DESTDIR)$(prefix)/bin/
48+
install -m755 target/release/ruffle_desktop $(DESTDIR)$(prefix)/bin/
4249
install -d $(DESTDIR)$(prefix)/share/
4350
install -d $(DESTDIR)$(prefix)/share/applications/
4451
install -m644 desktop/packages/linux/rs.ruffle.Ruffle.desktop $(DESTDIR)$(prefix)/share/applications/
@@ -49,9 +56,27 @@ install: ruffle_desktop
4956
install -d $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/
5057
install -d $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/
5158
install -m644 desktop/packages/linux/rs.ruffle.Ruffle.svg $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/
59+
install -d $(DESTDIR)$(prefix)/share/webext/
60+
install -d $(DESTDIR)$(prefix)/share/webext/ruffle-flash-emulator/
61+
install -d $(DESTDIR)$(prefix)/share/chromium/
62+
install -d $(DESTDIR)$(prefix)/share/chromium/extensions/
63+
install -d $(DESTDIR)$(prefix)/share/mozilla/
64+
install -d $(DESTDIR)$(prefix)/share/mozilla/extensions/
65+
install -d $(DESTDIR)$(prefix)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
66+
unzip -o web/packages/extension/dist/ruffle_extension.zip -d $(DESTDIR)$(prefix)/share/webext/ruffle-flash-emulator/
67+
ln -sf /usr/share/webext/ruffle-flash-emulator $(DESTDIR)$(prefix)/share/chromium/extensions/
68+
install -m644 web/packages/extension/dist/firefox_unsigned.xpi $(DESTDIR)$(prefix)/share/webext/[email protected]
69+
ln -sf /usr/share/webext/[email protected] $(DESTDIR)$(prefix)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
5270

5371
uninstall:
5472
-rm -f $(DESTDIR)$(prefix)/bin/ruffle_desktop
73+
-rm -f $(DESTDIR)$(prefix)/share/applications/rs.ruffle.Ruffle.desktop
74+
-rm -f $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/rs.ruffle.Ruffle.svg
75+
-rm -f $(DESTDIR)$(prefix)/share/metainfo/rs.ruffle.Ruffle.metainfo.xml
76+
-rm -f $(DESTDIR)$(prefix)/share/chromium/extensions/ruffle-flash-emulator
77+
-rm -f $(DESTDIR)$(prefix)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/[email protected]
78+
-rm -rf $(DESTDIR)$(prefix)/share/webext/ruffle-flash-emulator
79+
-rm -f $(DESTDIR)$(prefix)/share/webext/[email protected]
5580

5681
version:
5782
@echo $(VERSION)-$(REVISION)

desktop/packages/linux/debian/control

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ Build-Depends:
1010
libasound2-dev,
1111
libudev-dev,
1212
jq,
13+
nodejs,
14+
librust-wasm-bindgen-dev,
15+
default-jdk-headless,
16+
binaryen,
17+
libjxr-dev,
1318
Standards-Version: 4.7.2
1419
Homepage: https://ruffle.rs/
1520
#Vcs-Browser: https://github.com/ruffle-rs/ruffle
@@ -23,3 +28,9 @@ Depends:
2328
Description: A Flash Player emulator written in Rust
2429
Ruffle is an Adobe Flash Player emulator written in the Rust programming
2530
language. Ruffle targets both the desktop and the web using WebAssembly.
31+
32+
Package: webext-ruffle-flash-emulator
33+
Architecture: all
34+
Description: A Flash Player emulator written in Rust (web extensions)
35+
Ruffle is an Adobe Flash Player emulator written in the Rust programming
36+
language. Ruffle targets both the desktop and the web using WebAssembly.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
usr/bin/*
2+
usr/share/applications/*
3+
usr/share/icons/*
4+
usr/share/metainfo/*
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
usr/share/chromium/*
2+
usr/share/mozilla/*
3+
usr/share/webext/*

0 commit comments

Comments
 (0)