mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-09-23 12:21:28 +02:00
Compare commits
10 Commits
hugolm84-t
...
docker-act
Author | SHA1 | Date | |
---|---|---|---|
|
da54a948a6 | ||
|
f69c8bc708 | ||
|
5761027839 | ||
|
a743058db0 | ||
|
343bc93f3b | ||
|
130f4193af | ||
|
372ad91db4 | ||
|
27e8a665cf | ||
|
fdca99e57d | ||
|
e3bb74ce25 |
@@ -1,41 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
get_repository_root(){
|
|
||||||
local REPOSITORY_ROOT="$(git rev-parse --show-toplevel)"
|
|
||||||
echo "$REPOSITORY_ROOT"
|
|
||||||
}
|
|
||||||
|
|
||||||
get_repository_subdir(){
|
|
||||||
REPOSITORY_ROOT=$(get_repository_root)
|
|
||||||
CUR_DIR=$(pwd)
|
|
||||||
SUB_DIR=$(echo "$CUR_DIR" | grep -oP "^$REPOSITORY_ROOT\K.*")
|
|
||||||
echo "$SUB_DIR"
|
|
||||||
}
|
|
||||||
|
|
||||||
docker-interactive() {
|
|
||||||
REPOSITORY_ROOT=$(get_repository_root)
|
|
||||||
SUB_DIR=$(get_repository_subdir)
|
|
||||||
|
|
||||||
echo "SUB_DIR: " "$SUB_DIR"
|
|
||||||
|
|
||||||
source $REPOSITORY_ROOT/.circleci/Docker/Docker.variables
|
|
||||||
echo "Starting container: " "$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_VER"
|
|
||||||
|
|
||||||
echo "Got command: " "$*"
|
|
||||||
USER_ID=$(id -u $USER)
|
|
||||||
echo "Using USER_ID:" $USER_ID
|
|
||||||
|
|
||||||
docker run --env LOCAL_USER_ID=$USER_ID \
|
|
||||||
--rm \
|
|
||||||
--interactive \
|
|
||||||
--volume $REPOSITORY_ROOT:/tmp/workspace \
|
|
||||||
--workdir /tmp/workspace$SUB_DIR \
|
|
||||||
--env "TERM=xterm-256color" \
|
|
||||||
--tty \
|
|
||||||
"$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_VER" /bin/bash
|
|
||||||
}
|
|
||||||
|
|
||||||
docker-help() {
|
|
||||||
echo "docker-interactive - Start an interactive bash session inside docker container and remove it on exit"
|
|
||||||
echo "docker-help - Show this help text"
|
|
||||||
}
|
|
@@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
version: 2.0
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
"Tomahawk - build, test":
|
|
||||||
docker:
|
|
||||||
- image: tomahawkmusicplayer/ubuntu:latest
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- run: /usr/local/bin/build-and-test.sh
|
|
||||||
workflows:
|
|
||||||
version: 2
|
|
||||||
build_and_test:
|
|
||||||
jobs:
|
|
||||||
- "Tomahawk - build, test"
|
|
18
.github/workflows/docker.yml
vendored
Normal file
18
.github/workflows/docker.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: Docker Image CI
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Login to DockerHub Registry
|
||||||
|
run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
|
||||||
|
- name: Build the Docker image
|
||||||
|
run: cd Docker && docker build . --file Dockerfile --tag ${{ secrets.DOCKERHUB_USERNAME }}/ubuntu:latest
|
||||||
|
- name: Push the latest Docker image
|
||||||
|
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/ubuntu:latest
|
@@ -136,6 +136,131 @@ RUN git clone --depth 1 https://github.com/euroelessar/jreen.git --branch master
|
|||||||
&& cd ../.. \
|
&& cd ../.. \
|
||||||
&& rm -r jreen
|
&& rm -r jreen
|
||||||
|
|
||||||
|
# MXE deps
|
||||||
|
RUN sudo apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
autopoint \
|
||||||
|
bash \
|
||||||
|
bison \
|
||||||
|
bzip2 \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
g++-multilib \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
gperf \
|
||||||
|
intltool \
|
||||||
|
libc6-dev-i386 \
|
||||||
|
libgdk-pixbuf2.0-dev \
|
||||||
|
libltdl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libtool-bin \
|
||||||
|
libxml-parser-perl \
|
||||||
|
lzip \
|
||||||
|
make \
|
||||||
|
openssl \
|
||||||
|
p7zip-full \
|
||||||
|
patch \
|
||||||
|
perl \
|
||||||
|
pkg-config \
|
||||||
|
python \
|
||||||
|
ruby \
|
||||||
|
sed \
|
||||||
|
unzip \
|
||||||
|
wget \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN git clone --depth 1 https://github.com/mxe/mxe.git --branch master --single-branch mxe \
|
||||||
|
&& sudo mv mxe /opt/mxe
|
||||||
|
|
||||||
|
ENV MXE_PATH=/opt/mxe
|
||||||
|
ENV MXE_TOOLCHAIN="i686-w64-mingw32.shared"
|
||||||
|
ENV MXE_CMAKE=i686-w64-mingw32.shared-cmake
|
||||||
|
ENV MXE_PLUGINS=/opt/mxe/plugins/gcc9
|
||||||
|
|
||||||
|
RUN cd $MXE_PATH \
|
||||||
|
&& sudo make MXE_TARGETS=$MXE_TOOLCHAIN MXE_PLUGIN_DIRS=$MXE_PLUGINS \
|
||||||
|
qt5
|
||||||
|
|
||||||
|
RUN cd $MXE_PATH \
|
||||||
|
&& sudo make MXE_TARGETS=$MXE_TOOLCHAIN MXE_PLUGIN_DIRS=$MXE_PLUGINS \
|
||||||
|
qttools
|
||||||
|
|
||||||
|
RUN cd $MXE_PATH \
|
||||||
|
&& sudo make MXE_TARGETS=$MXE_TOOLCHAIN MXE_PLUGIN_DIRS=$MXE_PLUGINS \
|
||||||
|
boost
|
||||||
|
|
||||||
|
RUN cd $MXE_PATH \
|
||||||
|
&& sudo make MXE_TARGETS=$MXE_TOOLCHAIN MXE_PLUGIN_DIRS=$MXE_PLUGINS \
|
||||||
|
cc \
|
||||||
|
qca \
|
||||||
|
qtsparkle \
|
||||||
|
nsis \
|
||||||
|
liblastfm \
|
||||||
|
libgsasl
|
||||||
|
|
||||||
|
RUN cd $MXE_PATH \
|
||||||
|
&& sudo make MXE_TARGETS=$MXE_TOOLCHAIN MXE_PLUGIN_DIRS=$MXE_PLUGINS \
|
||||||
|
qtwebkit \
|
||||||
|
sparsehash
|
||||||
|
|
||||||
|
ENV PATH=/opt/mxe/usr/bin:$PATH
|
||||||
|
RUN sudo chmod -R 777 /opt/mxe/.ccache
|
||||||
|
|
||||||
|
RUN git clone --depth 1 https://anongit.kde.org/extra-cmake-modules.git --branch master --single-branch ecm \
|
||||||
|
&& mkdir ecm/build && cd ecm/build \
|
||||||
|
&& $MXE_CMAKE -DCMAKE_BUILD_TYPE=Release .. \
|
||||||
|
&& $MXE_CMAKE --build . -j 16 --target install \
|
||||||
|
&& cd ../.. \
|
||||||
|
&& rm -r ecm
|
||||||
|
|
||||||
|
RUN git clone --depth 1 https://github.com/zaphoyd/websocketpp.git --branch master --single-branch websocketpp \
|
||||||
|
&& mkdir websocketpp/build && cd websocketpp/build \
|
||||||
|
&& $MXE_CMAKE .. \
|
||||||
|
&& $MXE_CMAKE --build . -j 16 --target install \
|
||||||
|
&& cd ../.. \
|
||||||
|
&& rm -r websocketpp
|
||||||
|
|
||||||
|
RUN git clone --depth 1 https://github.com/frankosterfeld/qtkeychain.git --branch master --single-branch qtkeychain \
|
||||||
|
&& mkdir qtkeychain/build && cd qtkeychain/build \
|
||||||
|
&& $MXE_CMAKE .. \
|
||||||
|
&& $MXE_CMAKE --build . -j 16 --target install \
|
||||||
|
&& cd ../.. \
|
||||||
|
&& rm -r qtkeychain
|
||||||
|
|
||||||
|
RUN git clone --depth 1 https://github.com/taglib/taglib.git --branch master --single-branch taglib \
|
||||||
|
&& mkdir taglib/build && cd taglib/build \
|
||||||
|
&& $MXE_CMAKE -DCMAKE_INSTALL_PREFIX=/opt/mxe/usr \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DBUILD_SHARED_LIBS=ON .. \
|
||||||
|
&& $MXE_CMAKE --build . -j 16 --target install \
|
||||||
|
&& cd ../.. \
|
||||||
|
&& rm -r taglib
|
||||||
|
|
||||||
|
RUN git clone --depth 1 https://github.com/KDE/attica.git --branch master --single-branch attica \
|
||||||
|
&& mkdir attica/build && cd attica/build \
|
||||||
|
&& $MXE_CMAKE -DCMAKE_BUILD_TYPE=Release .. \
|
||||||
|
&& $MXE_CMAKE --build . -j 16 --target install \
|
||||||
|
&& cd ../.. \
|
||||||
|
&& rm -r attica
|
||||||
|
|
||||||
|
RUN git clone --depth 1 https://github.com/stachenov/quazip.git --branch master --single-branch quazip \
|
||||||
|
&& mkdir quazip/build && cd quazip/build \
|
||||||
|
&& $MXE_CMAKE -DCMAKE_BUILD_TYPE=Release .. \
|
||||||
|
&& $MXE_CMAKE --build . -j 16 --target install \
|
||||||
|
&& cd ../.. \
|
||||||
|
&& rm -r quazip
|
||||||
|
|
||||||
|
#RUN git clone --depth 1 https://github.com/euroelessar/jreen.git --branch master --single-branch jreen \
|
||||||
|
# && mkdir jreen/build && cd jreen/build \
|
||||||
|
# && $MXE_CMAKE -DCMAKE_BUILD_TYPE=Release .. \
|
||||||
|
# && $MXE_CMAKE -build . -j 16 --target install \
|
||||||
|
# && cd ../.. \
|
||||||
|
# && rm -r jreen
|
||||||
|
|
||||||
# Language
|
# Language
|
||||||
ENV LANG=en_US.UTF-8
|
ENV LANG=en_US.UTF-8
|
||||||
RUN echo "$LANG UTF-8" > /etc/locale.gen && locale-gen $LANG && update-locale LANG=$LANG
|
RUN echo "$LANG UTF-8" > /etc/locale.gen && locale-gen $LANG && update-locale LANG=$LANG
|
79
Docker/docker-commands.sh
Executable file
79
Docker/docker-commands.sh
Executable file
@@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
get_repository_root(){
|
||||||
|
local REPOSITORY_ROOT="$(git rev-parse --show-toplevel)"
|
||||||
|
echo "$REPOSITORY_ROOT"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_repository_subdir(){
|
||||||
|
REPOSITORY_ROOT=$(get_repository_root)
|
||||||
|
CUR_DIR=$(pwd)
|
||||||
|
SUB_DIR=$(echo "$CUR_DIR" | grep -oP "^$REPOSITORY_ROOT\K.*")
|
||||||
|
echo "$SUB_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run commands inside docker container
|
||||||
|
_docker_run() {
|
||||||
|
REPOSITORY_ROOT=$(get_repository_root)
|
||||||
|
SUB_DIR=$(get_repository_subdir)
|
||||||
|
|
||||||
|
echo "SUB_DIR: " "$SUB_DIR"
|
||||||
|
|
||||||
|
source $REPOSITORY_ROOT/Docker/Docker.variables
|
||||||
|
echo "Starting container: " "$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_VER"
|
||||||
|
|
||||||
|
echo "Got command: " "$*"
|
||||||
|
USER_ID=$(id -u $USER)
|
||||||
|
echo "Using USER_ID:" $USER_ID
|
||||||
|
|
||||||
|
docker run --env LOCAL_USER_ID=$USER_ID \
|
||||||
|
--rm \
|
||||||
|
--volume $REPOSITORY_ROOT:/tmp/workspace \
|
||||||
|
--workdir /tmp/workspace$SUB_DIR \
|
||||||
|
--env "TERM=xterm-256color" \
|
||||||
|
--tty \
|
||||||
|
--privileged \
|
||||||
|
"$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_VER" \
|
||||||
|
$*
|
||||||
|
}
|
||||||
|
|
||||||
|
# 1st command: Run make target inside docker
|
||||||
|
docker-make() {
|
||||||
|
_docker_run make "${@}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 2nd command: Run bash command inside docker
|
||||||
|
docker-run() {
|
||||||
|
_docker_run "${@}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 3rd command: Run bash interactive inside docker
|
||||||
|
docker-interactive() {
|
||||||
|
REPOSITORY_ROOT=$(get_repository_root)
|
||||||
|
SUB_DIR=$(get_repository_subdir)
|
||||||
|
|
||||||
|
echo "SUB_DIR: " "$SUB_DIR"
|
||||||
|
|
||||||
|
source $REPOSITORY_ROOT/Docker/Docker.variables
|
||||||
|
echo "Starting container: " "$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_VER"
|
||||||
|
|
||||||
|
echo "Got command: " "$*"
|
||||||
|
USER_ID=$(id -u $USER)
|
||||||
|
echo "Using USER_ID:" $USER_ID
|
||||||
|
|
||||||
|
docker run --env LOCAL_USER_ID=$USER_ID \
|
||||||
|
--rm \
|
||||||
|
--interactive \
|
||||||
|
--volume $REPOSITORY_ROOT:/tmp/workspace \
|
||||||
|
--workdir /tmp/workspace$SUB_DIR \
|
||||||
|
--env "TERM=xterm-256color" \
|
||||||
|
--tty \
|
||||||
|
"$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_VER" /bin/bash
|
||||||
|
}
|
||||||
|
|
||||||
|
docker-help() {
|
||||||
|
echo "docker-make - Run a make target inside docker container"
|
||||||
|
echo "docker-run - Run a specific bash command inside docker container and remove container on exit"
|
||||||
|
echo "docker-interactive - Start an interactive bash session inside docker container and remove it on exit"
|
||||||
|
echo "docker-help - Show this help text"
|
||||||
|
}
|
@@ -26,5 +26,7 @@ else
|
|||||||
echo "alias clang-format=clang-format-$CLANG_VERSION" >> $HOME/.bashrc
|
echo "alias clang-format=clang-format-$CLANG_VERSION" >> $HOME/.bashrc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
export PATH=/opt/mxe/usr/bin:$PATH
|
||||||
|
|
||||||
# Startup user
|
# Startup user
|
||||||
exec gosu "$USER" "$@"
|
exec gosu "$USER" "$@"
|
@@ -93,11 +93,8 @@ private slots:
|
|||||||
Servent* servent;
|
Servent* servent;
|
||||||
listenAllBasic( &servent );
|
listenAllBasic( &servent );
|
||||||
|
|
||||||
// Check for IPv4 localhost
|
// Check for IPv4/v6 localhost
|
||||||
QVERIFY( servent->isIPWhitelisted( QHostAddress::LocalHost ) );
|
QVERIFY( servent->isIPWhitelisted( QHostAddress::LocalHost ) || servent->isIPWhitelisted( QHostAddress::LocalHostIPv6 ) );
|
||||||
|
|
||||||
// Check for IPv6 localhost
|
|
||||||
QVERIFY( servent->isIPWhitelisted( QHostAddress::LocalHostIPv6 ) );
|
|
||||||
|
|
||||||
// Verify that all interface addresses are whitelisted.
|
// Verify that all interface addresses are whitelisted.
|
||||||
foreach ( QHostAddress addr, QNetworkInterface::allAddresses() )
|
foreach ( QHostAddress addr, QNetworkInterface::allAddresses() )
|
||||||
|
Reference in New Issue
Block a user