Skip to content

Commit

Permalink
build: initial stab at packaging
Browse files Browse the repository at this point in the history
  • Loading branch information
antobinary committed Jul 17, 2024
1 parent ebd701f commit fd72e8d
Show file tree
Hide file tree
Showing 9 changed files with 173 additions and 0 deletions.
99 changes: 99 additions & 0 deletions .github/workflows/build-plugin-deb-package.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -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/*
2 changes: 2 additions & 0 deletions debian/bbb-plugin-generic-link-share.substvars
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
misc:Depends=
misc:Pre-Depends=
12 changes: 12 additions & 0 deletions debian/bbb-plugin-generic-link-share/DEBIAN/control
Original file line number Diff line number Diff line change
@@ -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 changes: 5 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -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 change: 1 addition & 0 deletions debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
13
15 changes: 15 additions & 0 deletions debian/control
Original file line number Diff line number Diff line change
@@ -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 changes: 18 additions & 0 deletions debian/copyright
Original file line number Diff line number Diff line change
@@ -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 changes: 12 additions & 0 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit fd72e8d

Please sign in to comment.