multiparty-meeting/.github/workflows/main.yml

81 lines
3.0 KiB
YAML

name: Deployer
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- uses: actions/checkout@v2
with:
path: multiparty-meeting
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: |
sudo DEBIAN_FRONTEND=noninteractive apt-get -yq install jq npm build-essential || true
cd multiparty-meeting
cp server/config/config.example.js server/config/config.js
cp app/public/config/config.example.js app/public/config/config.js
cd app
npm install
npm run build
cd ../server
cat <<< $(jq '.bundleDependencies += .dependencies' package.json) > package.json
npm install
npm pack
VERSION=$(cat package.json | jq -r '.version')
DATE=$(date)
mkdir -p /home/runner/package
cd /home/runner/package
mkdir DEBIAN
mkdir -p usr/local/src/multiparty-meeting/server
mkdir -p etc/systemd/system/
tar -xf /home/runner/work/***/***/***/server/***-server-$VERSION.tgz package/ 1>/dev/null 2>/dev/null || true
mv package/* usr/local/src/multiparty-meeting/server/
mv /home/runner/work/***/***/***/*.service etc/systemd/system/
rm -rf package
touch DEBIAN/md5sums
touch DEBIAN/md5sums
touch DEBIAN/control
find . -type f ! -regex '.*.hg.*' ! -regex '.*?debian-binary.*' ! -regex '.*?DEBIAN.*' -printf '%P ' | xargs md5sum 1>/dev/null 2>/dev/null || true
echo """Package: multiparty-meeting
Version: $VERSION
Maintainer: Mert CELEN <mcelen94@gmail.com>
Section: admin
Date : $DATE
Architecture: amd64
Priority: important
Description: Multiparty web-meetings using mediasoup and WebRTC
Depends: nodejs (>= 12), redis
""" > DEBIAN/control
echo """#!/bin/bash
mkdir -p /etc/meeting/
ln -s /usr/local/src/multiparty-meeting/server/config/config.js /etc/meeting/server-config.js || true
ln -s /usr/local/src/multiparty-meeting/server/public/config/config.js /etc/meeting/client-config.js || true
systemctl daemon-reload
systemctl enable multiparty-meeting
echo "Multiparty Meeting is installed, but you need the configure the server and client with your ip adresses in configuration files under /etc/meeting/ \n"
echo "\n\nAfter the configuration, you can start service with 'sudo systemctl start multiparty-meeting' command.\n\n"
""" > DEBIAN/postinst
chmod 775 DEBIAN/postinst
cd ../
dpkg-deb -Zgzip --build package
mv /home/runner/package.deb /home/runner/multiparty-meeting.deb
- name : Release Package
uses: actions/upload-artifact@v1
with:
name: multiparty-meeting
path: "/home/runner/multiparty-meeting.deb"