build: initial stab at packaging
This commit is contained in:
99
.github/workflows/build-plugin-deb-package.yml
vendored
Normal file
99
.github/workflows/build-plugin-deb-package.yml
vendored
Normal 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
9
.gitignore
vendored
Normal 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/*
|
||||
2
debian/bbb-plugin-generic-link-share.substvars
vendored
Normal file
2
debian/bbb-plugin-generic-link-share.substvars
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
misc:Depends=
|
||||
misc:Pre-Depends=
|
||||
12
debian/bbb-plugin-generic-link-share/DEBIAN/control
vendored
Normal file
12
debian/bbb-plugin-generic-link-share/DEBIAN/control
vendored
Normal 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
5
debian/changelog
vendored
Normal 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
1
debian/compat
vendored
Normal file
@@ -0,0 +1 @@
|
||||
13
|
||||
15
debian/control
vendored
Normal file
15
debian/control
vendored
Normal 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
18
debian/copyright
vendored
Normal 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
12
debian/rules
vendored
Executable 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
|
||||
Reference in New Issue
Block a user