mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-09-20 02:41:36 +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 ../.. \
|
||||
&& 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
|
||||
ENV LANG=en_US.UTF-8
|
||||
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
|
||||
fi
|
||||
|
||||
export PATH=/opt/mxe/usr/bin:$PATH
|
||||
|
||||
# Startup user
|
||||
exec gosu "$USER" "$@"
|
@@ -93,11 +93,8 @@ private slots:
|
||||
Servent* servent;
|
||||
listenAllBasic( &servent );
|
||||
|
||||
// Check for IPv4 localhost
|
||||
QVERIFY( servent->isIPWhitelisted( QHostAddress::LocalHost ) );
|
||||
|
||||
// Check for IPv6 localhost
|
||||
QVERIFY( servent->isIPWhitelisted( QHostAddress::LocalHostIPv6 ) );
|
||||
// Check for IPv4/v6 localhost
|
||||
QVERIFY( servent->isIPWhitelisted( QHostAddress::LocalHost ) || servent->isIPWhitelisted( QHostAddress::LocalHostIPv6 ) );
|
||||
|
||||
// Verify that all interface addresses are whitelisted.
|
||||
foreach ( QHostAddress addr, QNetworkInterface::allAddresses() )
|
||||
|
Reference in New Issue
Block a user