migrate to github actions
This commit is contained in:
parent
4dca437ff6
commit
6e08102559
|
@ -0,0 +1,84 @@
|
|||
name: CI
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Native Build
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
tag: [bionic, centos7]
|
||||
container: infactum/tg2sip-builder:${{ matrix.tag }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
[ -d "/opt/rh" ] && source /opt/rh/devtoolset-7/enable
|
||||
mkdir build && cd build
|
||||
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
cmake --build . -j $(grep -c ^processor /proc/cpuinfo);
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: tg2sip_${{ matrix.tag }}
|
||||
path: |
|
||||
build/tg2sip
|
||||
build/gen_db
|
||||
build/settings.ini
|
||||
|
||||
# AppImage generation cannot be fully done inside container
|
||||
# because of FUSE requirements
|
||||
- name: Prepare AppImage
|
||||
if: matrix.tag == 'centos7'
|
||||
run: |
|
||||
linuxdeploy --appdir tg2sip -e build/tg2sip
|
||||
linuxdeploy --appdir gen_db -e build/gen_db
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: matrix.tag == 'centos7'
|
||||
with:
|
||||
name: tmp
|
||||
path: |
|
||||
tg2sip/
|
||||
gen_db/
|
||||
|
||||
appimage:
|
||||
name: Pack AppImage
|
||||
needs: [build]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: tmp
|
||||
path: tmp
|
||||
|
||||
- name: Prepare
|
||||
run: |
|
||||
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool.AppImage
|
||||
chmod +x appimagetool.AppImage
|
||||
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage -O linuxdeploy.AppImage
|
||||
chmod +x linuxdeploy.AppImage
|
||||
|
||||
- name: Pack
|
||||
run: |
|
||||
./linuxdeploy.AppImage --appdir tmp/tg2sip -d buildenv/tg2sip.desktop -i buildenv/icon.svg
|
||||
./linuxdeploy.AppImage --appdir tmp/gen_db -d buildenv/gen_db.desktop -i buildenv/icon.svg
|
||||
chmod +x tmp/tg2sip/usr/bin/tg2sip
|
||||
chmod +x tmp/gen_db/usr/bin/gen_db
|
||||
./appimagetool.AppImage tmp/tg2sip
|
||||
./appimagetool.AppImage tmp/gen_db
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: tg2sip_universal
|
||||
path: |
|
||||
tg2sip-x86_64.AppImage
|
||||
gen_db-x86_64.AppImage
|
||||
settings.ini;
|
|
@ -1,4 +1,4 @@
|
|||
[![Build status](https://ci.appveyor.com/api/projects/status/4dnph34apvfy6vft?svg=true)](https://ci.appveyor.com/project/Infactum/tg2sip)
|
||||
[![Build status](https://github.com/Infactum/tg2sip/workflows/CI/badge.svg)](https://github.com/Infactum/tg2sip/actions)
|
||||
|
||||
# TG2SIP
|
||||
|
||||
|
@ -14,10 +14,8 @@ Your SIP PBX should be comaptible with `L16@48000` or `OPUS@48000` voice codec.
|
|||
* Build them from source.
|
||||
Requires C++17 supported comiler, which may be a trouble for old linux distros.
|
||||
* Download prebuild native binaries for one of supported distros.
|
||||
[Ubuntu 18.04 Bionic](https://ci.appveyor.com/api/projects/Infactum/tg2sip/artifacts/tg2sip_bionic.zip?branch=master&job=Environment%3A%20target_name%3DUbuntu%20Bionic%2C%20docker_tag%3Dbionic)
|
||||
[CentOS 7](https://ci.appveyor.com/api/projects/Infactum/tg2sip/artifacts/tg2sip_centos7.zip?branch=master&job=Environment%3A%20target_name%3DCentOS%207%2C%20docker_tag%3Dcentos7)
|
||||
Prebuild binaries requires OPUS libraries (`libopus0` for Ubuntu, `opus` for CentOS, etc).
|
||||
* [Download](https://ci.appveyor.com/api/projects/Infactum/tg2sip/artifacts/tg2sip.zip?branch=master&job=Environment%3A%20target_name%3DAppImage%2C%20docker_tag%3Dcentos6) universal AppImage package.
|
||||
* Download universal AppImage package.
|
||||
More information of what is AppImage can be found here https://appimage.org/
|
||||
|
||||
2. Obtain `api_id` and `api_hash` tokens from [this](https://my.telegram.org) page and put them in `settings.ini` file.
|
||||
|
|
75
appveyor.yml
75
appveyor.yml
|
@ -1,75 +0,0 @@
|
|||
version: 1.0.0+{build}
|
||||
|
||||
image:
|
||||
- Ubuntu
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
configuration: Release
|
||||
|
||||
platform: x64
|
||||
|
||||
environment:
|
||||
global:
|
||||
docker_image: infactum/tg2sip-builder
|
||||
|
||||
matrix:
|
||||
- target_name: Ubuntu Bionic
|
||||
docker_tag: bionic
|
||||
|
||||
- target_name: CentOS 7
|
||||
docker_tag: centos7
|
||||
|
||||
- target_name: AppImage
|
||||
docker_tag: centos6
|
||||
|
||||
init:
|
||||
- sh: |
|
||||
docker pull "$docker_image":"$docker_tag"
|
||||
|
||||
build_script:
|
||||
- sh: >-
|
||||
if [ "$target_name" != "AppImage" ] ; then
|
||||
mkdir build;
|
||||
docker run --rm -v "$(pwd)":/src "$docker_image":"$docker_tag" /bin/bash -c "
|
||||
mkdir build && cd build;
|
||||
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig && cmake -DCMAKE_BUILD_TYPE=Release /src;
|
||||
cmake --build .;
|
||||
chmod +x tg2sip;
|
||||
chmod +x gen_db;
|
||||
cp tg2sip /src/build;
|
||||
cp gen_db /src/build;"
|
||||
7z a tg2sip.zip ./build/tg2sip ./build/gen_db ./settings.ini;
|
||||
fi;
|
||||
|
||||
- sh: >-
|
||||
if [ "$target_name" = "AppImage" ] ; then
|
||||
mkdir build;
|
||||
docker run --rm -v "$(pwd)":/src "$docker_image":"$docker_tag" /bin/bash -c "
|
||||
mkdir build && cd build;
|
||||
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig && cmake -DCMAKE_BUILD_TYPE=Release /src;
|
||||
cmake --build .;
|
||||
chmod +x tg2sip;
|
||||
chmod +x gen_db;
|
||||
linuxdeploy --appdir /src/build/tg2sip -e tg2sip;
|
||||
linuxdeploy --appdir /src/build/gen_db -e gen_db;"
|
||||
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool.AppImage;
|
||||
chmod +x appimagetool.AppImage;
|
||||
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage -O linuxdeploy.AppImage;
|
||||
chmod +x linuxdeploy.AppImage;
|
||||
sudo chown -R "$(id -u)":"$(id -g)" ./build;
|
||||
./linuxdeploy.AppImage --appdir ./build/tg2sip -d ./buildenv/tg2sip.desktop -i ./buildenv/icon.svg;
|
||||
./linuxdeploy.AppImage --appdir ./build/gen_db -d ./buildenv/gen_db.desktop -i ./buildenv/icon.svg;
|
||||
./appimagetool.AppImage ./build/tg2sip;
|
||||
./appimagetool.AppImage ./build/gen_db;
|
||||
7z a tg2sip.zip ./tg2sip-x86_64.AppImage ./gen_db-x86_64.AppImage ./settings.ini;
|
||||
fi;
|
||||
|
||||
after_build:
|
||||
- sh: >-
|
||||
if [ "$target_name" != "AppImage" ] ; then
|
||||
appveyor PushArtifact tg2sip.zip -FileName tg2sip_"$docker_tag".zip -DeploymentName "TG2SIP $target_name"
|
||||
else
|
||||
appveyor PushArtifact tg2sip.zip -FileName tg2sip.zip -DeploymentName "TG2SIP AppImage"
|
||||
fi
|
|
@ -1,94 +0,0 @@
|
|||
FROM centos:6 as builder
|
||||
|
||||
# https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/
|
||||
RUN yum -y install centos-release-scl yum-utils \
|
||||
&& yum-config-manager --enable rhel-server-rhscl-7-rpms \
|
||||
&& yum install -y devtoolset-7-gcc devtoolset-7-gcc-c++
|
||||
|
||||
RUN set -xe \
|
||||
&& yum install -y \
|
||||
make patch \
|
||||
git wget \
|
||||
zlib-devel openssl-devel gperf \
|
||||
pkgconfig ccache gperf unzip \
|
||||
libpng-devel libjpeg-devel \
|
||||
epel-release \
|
||||
&& yum install -y opus-devel patchelf
|
||||
|
||||
RUN wget https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.sh \
|
||||
&& sh cmake-3.18.0-Linux-x86_64.sh --prefix=/usr --exclude-subdir
|
||||
|
||||
COPY glibc_gcc.patch /
|
||||
|
||||
RUN source /opt/rh/devtoolset-7/enable \
|
||||
&& wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz \
|
||||
&& tar zxf glibc-2.14.tar.gz \
|
||||
&& rm glibc-2.14.tar.gz \
|
||||
&& cd glibc-2.14 \
|
||||
&& patch < /glibc_gcc.patch \
|
||||
&& gcc --version \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& ../configure --prefix=/opt/glibc-2.14 \
|
||||
&& make -j $(grep -c ^processor /proc/cpuinfo) \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf glibc-2.14 \
|
||||
|
||||
ENV LD_LIBRARY_PATH="/opt/glibc-2.14/lib:${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||
|
||||
COPY tdlib_header.patch /
|
||||
COPY tdlib_threadname.patch /
|
||||
|
||||
RUN source /opt/rh/devtoolset-7/enable \
|
||||
&& git clone https://github.com/tdlib/td.git \
|
||||
&& cd td \
|
||||
&& git reset --hard v1.6.0 \
|
||||
&& git apply /tdlib_header.patch \
|
||||
&& git apply /tdlib_threadname.patch \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& export CPLUS_INCLUDE_PATH="/opt/glibc-2.14/include" \
|
||||
&& cmake -DCMAKE_BUILD_TYPE=Release .. \
|
||||
&& cmake --build . --target install -j $(grep -c ^processor /proc/cpuinfo) \
|
||||
&& cd / \
|
||||
&& rm -rf td
|
||||
|
||||
COPY config_site.h /
|
||||
|
||||
RUN source /opt/rh/devtoolset-7/enable \
|
||||
&& git clone https://github.com/pjsip/pjproject.git \
|
||||
&& cd pjproject \
|
||||
&& git reset --hard 2.9 \
|
||||
&& cp /config_site.h pjlib/include/pj \
|
||||
&& ./configure --disable-sound CFLAGS="-O3 -DNDEBUG" \
|
||||
&& make dep && make -j $(grep -c ^processor /proc/cpuinfo) && make install \
|
||||
&& cd / \
|
||||
&& rm -rf pjproject
|
||||
|
||||
RUN source /opt/rh/devtoolset-7/enable \
|
||||
&& git clone -n https://github.com/gabime/spdlog.git \
|
||||
&& cd spdlog \
|
||||
&& git checkout tags/v0.17.0 \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& cmake -DCMAKE_BUILD_TYPE=Release -DSPDLOG_BUILD_EXAMPLES=OFF -DSPDLOG_BUILD_TESTING=OFF .. \
|
||||
&& cmake --build . --target install -j $(grep -c ^processor /proc/cpuinfo) \
|
||||
&& cd / \
|
||||
&& rm -rf spdlog
|
||||
|
||||
RUN source /opt/rh/devtoolset-7/enable \
|
||||
&& git clone --recursive https://github.com/linuxdeploy/linuxdeploy.git \
|
||||
&& cd linuxdeploy \
|
||||
&& git checkout f9fc51a832185158d3e0e64858c83a941047871f \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig && cmake -DCMAKE_BUILD_TYPE=Release -DUSE_SYSTEM_CIMG=0 .. \
|
||||
&& cmake --build . -j $(grep -c ^processor /proc/cpuinfo) \
|
||||
&& cp bin/linuxdeploy /usr/local/bin \
|
||||
&& cd / \
|
||||
&& rm -rf linuxdeploy
|
||||
|
||||
COPY centos_entrypoint.sh /
|
||||
|
||||
ENTRYPOINT ["/centos_entrypoint.sh"]
|
|
@ -9,7 +9,10 @@ RUN yum install -y \
|
|||
make \
|
||||
git wget \
|
||||
zlib-devel opus-devel openssl-devel gperf \
|
||||
pkgconfig ccache gperf unzip
|
||||
pkgconfig ccache gperf unzip \
|
||||
libpng-devel libjpeg-devel \
|
||||
epel-release \
|
||||
&& yum install -y patchelf
|
||||
|
||||
RUN wget https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.sh \
|
||||
&& sh cmake-3.18.0-Linux-x86_64.sh --prefix=/usr --exclude-subdir
|
||||
|
@ -53,6 +56,18 @@ RUN source /opt/rh/devtoolset-7/enable \
|
|||
&& cd / \
|
||||
&& rm -rf spdlog
|
||||
|
||||
RUN source /opt/rh/devtoolset-7/enable \
|
||||
&& git clone --recursive https://github.com/linuxdeploy/linuxdeploy.git \
|
||||
&& cd linuxdeploy \
|
||||
&& git checkout 557bad2241df2c33972c7e6bdbf0c528cee27cc8 \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig && cmake -DCMAKE_BUILD_TYPE=Release -DUSE_SYSTEM_CIMG=0 .. \
|
||||
&& cmake --build . -j $(grep -c ^processor /proc/cpuinfo) \
|
||||
&& cp bin/linuxdeploy /usr/local/bin \
|
||||
&& cd / \
|
||||
&& rm -rf linuxdeploy
|
||||
|
||||
COPY centos_entrypoint.sh /
|
||||
|
||||
ENTRYPOINT ["/centos_entrypoint.sh"]
|
|
@ -1,17 +0,0 @@
|
|||
diff --git a/configure b/configure
|
||||
index 6cf85e5..2613fc4 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -4938,10 +4938,10 @@ else
|
||||
$as_echo_n "checking version of $CC... " >&6; }
|
||||
ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
- '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=no;;
|
||||
3.4* | 4.[0-9]* )
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
- *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=no;;
|
||||
|
||||
esac
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
|
|
@ -4,7 +4,7 @@ set -e
|
|||
|
||||
DOCKER_IMAGE=infactum/tg2sip-builder
|
||||
|
||||
for DOCKER_TAG in bionic centos6 centos7
|
||||
for DOCKER_TAG in bionic centos7
|
||||
do
|
||||
docker build . -f Dockerfile."$DOCKER_TAG" -t "$DOCKER_IMAGE:$DOCKER_TAG"
|
||||
docker push "$DOCKER_IMAGE:$DOCKER_TAG"
|
||||
|
|
Loading…
Reference in New Issue