build: initial stab at packaging

This commit is contained in:
Anton Georgiev
2024-07-17 16:14:07 -04:00
parent ebd701feee
commit fd72e8ded5
9 changed files with 173 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
---
name: "📦 Build .deb package for plugin"
on:
push:
branches: [ "main"]
paths-ignore:
- debian/changelog
pull_request:
branches: [ "main" ]
paths-ignore:
- debian/changelog
jobs:
build-deb-package:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
env:
OS_VERSION: ${{ matrix.os }}
defaults:
run:
working-directory: .
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Extract and print repository name
run: |
echo "REPO_NAME=$(echo ${{ github.repository }} | cut -d'/' -f2)" >> $GITHUB_ENV
- name: Set up Node.js
run: |
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
- name: Verify Node.js installation
run: |
node -v
npm -v
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y devscripts debhelper
- name: Build Debian package
run: |
sudo dpkg-buildpackage -us -uc
- name: Create artifacts directory and move .deb files
run: |
mkdir -p artifacts
mv ../*.deb artifacts/ || mv ./*.deb artifacts/
ls -la artifacts
- name: Upload Debian Package
uses: actions/upload-artifact@v4
with:
name: "${{ env.REPO_NAME }}-${{ env.OS_VERSION }}"
path: artifacts/*.deb
release:
name: "Upload assets to release"
needs: build-deb-package
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
env:
OS_VERSION: ${{ matrix.os }}
if: ${{ github.ref_type == 'tag' }}
permissions:
contents: write
actions: read
steps:
- uses: actions/checkout@v4
- name: Extract and print repository name
run: |
echo "REPO_NAME=$(echo ${{ github.repository }} | cut -d'/' -f2)" >> $GITHUB_ENV
- uses: actions/download-artifact@v4
with:
name: "${{ env.REPO_NAME }}-${{ env.OS_VERSION }}"
path: "${{ env.REPO_NAME }}-${{ env.OS_VERSION }}"
- name: Create release asset archives
run: zip --junk-paths --recurse-paths --compression-method store "${{ env.REPO_NAME }}-${{ env.OS_VERSION }}.zip" "${{ env.REPO_NAME }}-${{ env.OS_VERSION }}"
- name: Upload release assets
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload ${{ github.ref_name }} "${{ env.REPO_NAME }}-${{ env.OS_VERSION }}.zip"

9
.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
node_modules
dist
debian/.debhelper/
debian/debhelper-build-stamp
debian/files
debian/**/copyright
debian/**/changelog.gz
debian/**/md5sums
debian/**/var/www/*

View File

@@ -0,0 +1,2 @@
misc:Depends=
misc:Pre-Depends=

View File

@@ -0,0 +1,12 @@
Package: bbb-plugin-template
Version: 0.1.0
Architecture: all
Maintainer: Anton Georgiev <anton.georgiev@blindsidenetworks.com>
Installed-Size: 252
Section: web
Priority: extra
Homepage: https://github.com/bigbluebutton/plugin-template
Description: Share a webpage with all session participants
An official BigBlueButton plugin which allows
the presenter to display a web page to
all viewers inside of a session.

5
debian/changelog vendored Normal file
View File

@@ -0,0 +1,5 @@
bbb-plugin-template (0.1.0) jammy; urgency=medium
* initial build
-- Anton Georgiev <anton.georgiev@blindsidenetworks.com> Thu, 04 Jul 2024 14:56:18 -0400

1
debian/compat vendored Normal file
View File

@@ -0,0 +1 @@
13

15
debian/control vendored Normal file
View File

@@ -0,0 +1,15 @@
Source: bbb-plugin-template
Section: web
Priority: extra
Maintainer: Anton Georgiev <anton.georgiev@blindsidenetworks.com>
Build-Depends: debhelper (>= 13), nodejs (>= 18)
Standards-Version: 4.1.4
Homepage: https://github.com/bigbluebutton/plugin-template
Package: bbb-plugin-template
Architecture: all
Depends: ${misc:Depends}, nodejs
Description: Share a webpage with all session participants
An official BigBlueButton plugin which allows
the presenter to display a web page to
all viewers inside of a session.

18
debian/copyright vendored Normal file
View File

@@ -0,0 +1,18 @@
Format: http://dep.debian.net/deps/dep5
Upstream-Name: bbb-plugin-template
Files: *
Copyright: 2024 BigBlueButton Inc. and by respective authors
License: LGPL-3.0+
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.

12
debian/rules vendored Executable file
View File

@@ -0,0 +1,12 @@
#!/usr/bin/make -f
%:
dh $@ --no-parallel --verbose
override_dh_auto_build:
npm install
npm run build-bundle
override_dh_auto_install:
install -d debian/bbb-plugin-template/var/www/bigbluebutton-default/assets/plugins/bbb-plugin-template
cp -r dist/* debian/bbb-plugin-template/var/www/bigbluebutton-default/assets/plugins/bbb-plugin-template