Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Zachary Klosko 2020-07-02 16:58:08 -04:00
commit 2dfb9dae7f
13 changed files with 131 additions and 144 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
open_collective: libretime

View File

@ -1,122 +1,86 @@
dist: xenial
version: ~> 1.0
language: php
php:
# the latest and greatest, has some issues that are excluded below in matrix.allow_failures
- 7.3
- 7.2
- 7.1
# the 7.0 build demonstrates that everything is basically ok for 7.0, users might want to wait for 7.1 to run it
- 7.0
# folks who prefer running on 5.x should be using 5.6 in most cases, 5.4 is no in the matrix since noone should use it
- 5.6
services:
- postgresql
- rabbitmq
- postgresql
env:
global:
- ENVIRONMENT=testing
- LIBRETIME_LOG_DIR=/tmp/log/libretime
jobs:
- PYTHON=false
- PYTHON=true
jobs:
allow_failures:
# there are currently some testing issues with DateTime precision on 7.1
- env: PYTHON=false
php: 7.1
# there are some issues with phpunit as well as some deep in zf1 on 7.2
- env: PYTHON=false
php: 7.2
# there are some issues with phpunit as well as some deep in zf1 on 7.3
- env: PYTHON=false
php: 7.3
exclude:
# we need to explicitly exclude python for every version of php other than 7.3 to make way to just run python tests in one seperate instance
- env: PYTHON=true
php: 7.2
- env: PYTHON=true
php: 7.1
- env: PYTHON=true
php: 7.0
- env: PYTHON=true
php: 5.6
- env: PYTHON=true
php: 5.4
- ENVIRONMENT=testing
- LIBRETIME_LOG_DIR=/tmp/log/libretime
addons:
apt:
packages:
- silan
- libgirepository1.0-dev
- gir1.2-gstreamer-1.0
- gstreamer1.0-plugins-base
- gstreamer1.0-plugins-good
- gstreamer1.0-plugins-bad
- gstreamer1.0-plugins-ugly
- libcairo2-dev
- liquidsoap
- liquidsoap-plugin-mad
- liquidsoap-plugin-taglib
- liquidsoap-plugin-flac
- liquidsoap-plugin-ogg
- liquidsoap-plugin-lame
- liquidsoap-plugin-faad
- liquidsoap-plugin-vorbis
- liquidsoap-plugin-opus
- python3
- python3-nose
- python3-gst-1.0
- python3-magic
- dos2unix
install:
- >
if [[ "$PYTHON" == false ]]; then
composer install
fi
- >
if [[ "$PYTHON" == true ]]; then
pyenv local 3.7
pip3 install -U pip wheel
# pip3 install --user mkdocs
pip3 install --user rgain3
pushd python_apps/airtime_analyzer
python3 setup.py install --dry-run --no-init-script
popd
fi
- gstreamer1.0-plugins-base
- gstreamer1.0-plugins-good
- gstreamer1.0-plugins-bad
- gstreamer1.0-plugins-ugly
- libgirepository1.0-dev
- liquidsoap
- liquidsoap-plugin-faad
- liquidsoap-plugin-lame
- liquidsoap-plugin-mad
- liquidsoap-plugin-vorbis
- python3-gst-1.0
- silan
jobs:
include:
- language: php
php: 7.3
stage: test
- language: php
php: 7.2
stage: test
- language: php
php: 7.1
stage: test
- language: php
php: 7.0
stage: test
- language: php
php: 5.6
stage: test
- language: python
python: 3.8
stage: test
- language: python
python: 3.7
stage: test
- language: python
python: 3.5
stage: test
- stage: deploy
addons:
apt:
packages:
dos2unix
script:
./travis/release.sh
deploy:
- provider: releases
token: $GITHUB_TOKEN
file: build/libretime-*.tar.gz
edge: true
on:
tags: true
allow_failures:
# https://github.com/LibreTime/libretime/issues/779
- language: php
php: 7.3
- language: php
php: 7.2
- language: php
php: 7.1
# https://github.com/LibreTime/libretime/issues/1041
- language: python
python: 3.5
install: ./travis/install.sh
before_script:
# prepare the database as per docs/testing.md
- psql -c 'CREATE DATABASE libretime;' -U postgres
- psql -c "CREATE USER libretime WITH PASSWORD 'libretime';" -U postgres
- psql -c 'GRANT CONNECT ON DATABASE libretime TO libretime;' -U postgres
- psql -c 'ALTER USER libretime CREATEDB;' -U postgres
- mkdir -p /tmp/log/libretime
script:
- ./travis/php.sh
- ./travis/python.sh
#deploy:
#- provider: pages
# skip_cleanup: true
# local_dir: build/docs
# github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard
# target_branch: master
# repo: LibreTime/LibreTime.github.io
# project_name: LibreTime
# fqdn: libretime.org
# name: R. LibreTime DocBot
# on:
# branch: master
# condition: $PYTHON = true
#- provider: script
# skip_cleanup: true
# script: ./travis/release.sh
# on:
# tags: true
# condition: $PYTHON = true
#- provider: releases
# skip_cleanup: true
# api_key: $GITHUB_TOKEN
# file_glob: true
# file: build/libretime-*.tar.gz
# on:
# tags: true
# condition: $PYTHON = true
script: ./travis/test.sh

2
Vagrantfile vendored
View File

@ -10,8 +10,6 @@ Vagrant.configure("2") do |config|
# liquidsoap input harbors for instreaming (ie. /master)
config.vm.network "forwarded_port", guest: 8001, host:8001
config.vm.network "forwarded_port", guest: 8002, host:8002
# mkdocs documentation
# config.vm.network "forwarded_port", guest: 8888, host:8888
# make sure we are using nfs (doesn't work out of the box with debian)
nfsPath = "."

1
docs/CNAME Normal file
View File

@ -0,0 +1 @@
libretime.org

View File

@ -1,12 +1,12 @@
# Installing Jekyll
# This script does not work and exists as a skeleton for
# someone to use to get Jekyll building outside of GitHub
echo "Installing Ruby"
sudo apt-get install ruby-full build-essential zlib1g-dev
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
export GEM_HOME=".gems"
export PATH=".gems/bin:$PATH"
echo "Installing Jekyll"
cd docs

View File

@ -1,3 +1,4 @@
from pathlib import Path
from setuptools import setup
from subprocess import call
import os
@ -28,7 +29,9 @@ else:
def postinst():
if not no_init:
initd = Path("/etc/init.d/airtime-celery")
conf = Path("/etc/default/airtime-celery")
if not no_init and initd.is_file() and conf.is_file():
# Make /etc/init.d file executable and set proper
# permissions for the defaults config file
os.chmod("/etc/init.d/airtime-celery", 0o755)

View File

@ -35,9 +35,10 @@ class ListenerStat(Thread):
def get_stream_server_xml(self, ip, url, is_shoutcast=False):
encoded = base64.b64encode("%(admin_user)s:%(admin_pass)s" % ip)
auth_string = "%(admin_user)s:%(admin_pass)s" % ip
encoded = base64.b64encode(auth_string.encode('utf-8'))
header = {"Authorization":"Basic %s" % encoded}
header = {"Authorization":"Basic %s" % encoded.decode('ascii')}
if is_shoutcast:
#user agent is required for shoutcast auth, otherwise it returns 404.

25
travis/install.sh Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
set -xe
if [[ -n "$TRAVIS_PHP_VERSION" ]]; then
composer install
fi
if [[ -n "$TRAVIS_PYTHON_VERSION" ]]; then
pyenv local $TRAVIS_PYTHON_VERSION
pushd python_apps/airtime_analyzer
pip3 install -e .
popd
pushd python_apps/airtime-celery
pip3 install -e .
popd
pushd python_apps/api_clients
pip3 install -e .
popd
pushd python_apps/pypo
pip3 install -e .
popd
fi

View File

@ -1,9 +0,0 @@
#!/bin/bash
set -xe
[[ "$PYTHON" == true ]] && exit 0
pushd airtime_mvc/tests
../../vendor/bin/phpunit
popd

View File

@ -1,16 +0,0 @@
#!/bin/bash
set -xe
[[ "$PYTHON" == false ]] && exit 0
pyenv local 3.7
pushd python_apps/airtime_analyzer
pip3 install -e .
nosetests
popd
pushd python_apps/api_clients
pip3 install -e .
nosetests
popd

19
travis/test.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
set -xe
if [[ -n "$TRAVIS_PHP_VERSION" ]]; then
pushd airtime_mvc/tests
../../vendor/bin/phpunit
popd
fi
if [[ -n "$TRAVIS_PYTHON_VERSION" ]]; then
pyenv local $TRAVIS_PYTHON_VERSION
pushd python_apps/airtime_analyzer
nosetests
popd
pushd python_apps/api_clients
nosetests
popd
fi