Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: initial stab at packaging #8

Merged
merged 4 commits into from
Jul 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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/*
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 <[email protected]> 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 <[email protected]>
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
Empty file added src/index.tsx
Empty file.