IT'S YOUR TURN TRAVIS MUHAHAH
This commit is contained in:
parent
15051a2cf9
commit
e986a637e8
@ -46,10 +46,11 @@ matrix:
|
||||
group: travis_latest
|
||||
env:
|
||||
DOCKER="ubuntu:eoan"
|
||||
VARIANT="ubuntu"
|
||||
VARIANT="ubuntu-19.10"
|
||||
TOOL="compile"
|
||||
COMPILER_C="gcc"
|
||||
COMPILER_CXX="g++"
|
||||
REPOSITORY="https://github.com/RXT0112/Zernit.git"
|
||||
# Ubuntu 19.10 (Eoan Ermine) with Clang
|
||||
- name: "Ubuntu 19.10 (Eoan Ermine) with Clang"
|
||||
os: linux
|
||||
@ -60,10 +61,11 @@ matrix:
|
||||
group: travis_latest
|
||||
env:
|
||||
DOCKER="ubuntu:eoan"
|
||||
VARIANT="ubuntu"
|
||||
VARIANT="ubuntu-19.10"
|
||||
TOOL="compile"
|
||||
COMPILER_C="clang"
|
||||
COMPILER_CXX="clang++"
|
||||
REPOSITORY="https://github.com/RXT0112/Zernit.git"
|
||||
|
||||
# Debian Linux
|
||||
# Debian Testing
|
||||
|
@ -9,7 +9,7 @@
|
||||
. "QA/travis-ci/travis-common.sh"
|
||||
|
||||
# shellcheck source=QA/travis-ci/get-container.sh
|
||||
. "$(dirname "$0")/get-container.sh"
|
||||
. "QA/travis-ci/get-container.sh"
|
||||
|
||||
fixme "Travis - before-install.sh disables SC1117 as hotfix"
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
# Copyright (C) 2018-2019 by Thomas Dreibholz <dreibh@iem.uni-due.de> as GPLv3 or any other GPL at your option
|
||||
|
||||
# shellcheck source=QA/travis-ci/travis-common.sh
|
||||
. "$(dirname "$0")/travis-common.sh"
|
||||
. "QA/travis-ci/travis-common.sh"
|
||||
|
||||
if [ -n "$DOCKER" ]; then
|
||||
|
||||
@ -18,7 +18,8 @@ if [ -n "$DOCKER" ]; then
|
||||
fi
|
||||
|
||||
# Get name of package
|
||||
PACKAGE="Kreyrock"
|
||||
fixme "Output package name based on repository name"
|
||||
PACKAGE="Zernit"
|
||||
|
||||
# Set container name
|
||||
CONTAINER=$(printf '%s\n' "$PACKAGE-$DOCKER-$TOOL" | sed -e "s/:/_/g")
|
||||
@ -27,7 +28,9 @@ if [ -n "$DOCKER" ]; then
|
||||
fi
|
||||
export CONTAINER
|
||||
|
||||
else
|
||||
elif [ -z "$DOCKER" ]; then
|
||||
info "Docker is not used"
|
||||
unset CONTAINER
|
||||
|
||||
else
|
||||
die 256 "Unexpected happend while processing DOCKER variable"
|
||||
fi
|
||||
|
@ -6,10 +6,10 @@
|
||||
# Copyright (C) 2018-2019 by Thomas Dreibholz <dreibh@iem.uni-due.de> as GPLv3 or any other GPL at your option
|
||||
|
||||
# shellcheck source=QA/travis-ci/travis-common.sh
|
||||
. "$(dirname "$0")/travis-common.sh"
|
||||
. "QA/travis-ci/travis-common.sh"
|
||||
|
||||
# shellcheck source=QA/travis-ci/get-container.sh
|
||||
. "$(dirname "$0")/get-container.sh"
|
||||
. "QA/travis-ci/get-container.sh"
|
||||
|
||||
fixme "Travis - install.sh is disabling SC1117 as hotfix"
|
||||
|
||||
@ -19,86 +19,59 @@ RETRY_MAXTRIALS=5
|
||||
RETRY_PAUSE=60
|
||||
|
||||
# Linux as-is
|
||||
if [ "$TRAVIS_OS_NAME" = linux ] && [ -z "$DOCKER" ] && [ -z "$QEMU" ] && [ "$VARIANT" = ubuntu ]; then
|
||||
|
||||
sudo apt update
|
||||
|
||||
if [ "$(apt-cache search libfuse3-dev | grep -o "libfuse3-dev")" = "libfuse3-dev" ]; then
|
||||
|
||||
# Fetch all dependencies
|
||||
sudo apt-get install meson uthash-dev libcap-dev cppcheck libattr1-dev clang libfuse3-dev gcc git ninja-build bison libtool autoconf pkg-config libcap-dev indent fakeroot uthash-dev gzip rsync autopoint uthash-dev shellcheck -y
|
||||
|
||||
elif [ "$(apt-cache search libfuse3-dev | grep -o "libfuse3-dev")" = "libfuse3-dev" ]; then
|
||||
|
||||
sudo apt-get install meson uthash-dev libcap-dev cppcheck clang gcc git libattr1-dev ninja-build bison libtool autoconf pkg-config libcap-dev indent fakeroot uthash-dev gzip rsync autopoint shellcheck -y
|
||||
|
||||
# Travis is incompetent to provide usefull version of linux (https://travis-ci.community/t/more-virtual-environments/6213/7) so we have to fetch libfuse3-dev manually
|
||||
warn "Travis-CI's ubuntu still doesn NOT offer 'libfuse3-dev', using hack to fetch it manually"
|
||||
mkdir "$HOME/build/fuse3"
|
||||
fixme "Export latest fuse3 instead of hard-coded in ci/before-install.sh"
|
||||
wget https://github.com/libfuse/libfuse/releases/download/fuse-3.6.2/fuse-3.6.2.tar.xz -O "$HOME/build/fuse3/fuse-3.6.2.tar.xz"
|
||||
tar xpf "$HOME/build/fuse3/fuse-3.6.2.tar.xz" --directory="$HOME/build/fuse3/"
|
||||
mkdir "$HOME/build/fuse3/fuse-3.6.2/build"
|
||||
fixme "Avoid using cd in ci/before-install.sh"
|
||||
cd "$HOME/build/fuse3/fuse-3.6.2/build"|| die
|
||||
meson .. --prefix /usr
|
||||
ninja
|
||||
sudo ninja install
|
||||
if [ "$TRAVIS_OS_NAME" = linux ] && [ -z "$DOCKER" ] && [ -z "$QEMU" ]; then
|
||||
|
||||
# Update repositories based on available package manager
|
||||
if command -v apt >/dev/null; then
|
||||
sudo apt update || die 1 "Unable to update repositories on VARIANT '$VARIANT'"
|
||||
elif command -v cave >/dev/null; then
|
||||
cave sync || die 1 "Unable to update repositories on paludis"
|
||||
else
|
||||
die "Unexpected in install.sh configuring linux as-is"
|
||||
|
||||
die 256 "Unsupported package manager has been used"
|
||||
fi
|
||||
|
||||
# Fetch shfmt (HACK!)
|
||||
if [ "$(apt-cache search shfmt | grep -o "shfmt")" = "shfmt" ]; then
|
||||
info "Installing shfmt"
|
||||
apt install -y shfmt
|
||||
|
||||
elif [ "$(apt-cache search shfmt | grep -o "shfmt")" != "shfmt" ]; then
|
||||
warn "Package shfmt is not available, using hack to fetch it manually.."
|
||||
|
||||
# Get shfmt
|
||||
if [ -e /usr/bin/shfmt ]; then
|
||||
warn "File /usr/bin/shfmt already exists! This is unexpected assuming that shfmt is already provided on linux as-is?"
|
||||
elif [ ! -e /usr/bin/shfmt ]; then
|
||||
sudo wget https://github.com/mvdan/sh/releases/download/v3.0.0-beta1/shfmt_v3.0.0-beta1_linux_amd64 -O /usr/bin/shfmt
|
||||
[ ! -x /usr/bin/shfmt ] && sudo chmod +x /usr/bin/shfmt
|
||||
# Install dependencies based on variant used
|
||||
case "$VARIANT" in
|
||||
ubuntu-19.10)
|
||||
# Install dependencies
|
||||
if [ -n "$PACKAGES" ]; then
|
||||
sudo apt install -y "$PACKAGES" || die 1 "Unable to install following packages: '$PACKAGES'"
|
||||
elif [ -z "$PACKAGES" ]; then
|
||||
info "Dependencies are not specified in PACKAGES variable"
|
||||
else
|
||||
die "Unexpected happend in /usr/bin/shfmt"
|
||||
fi
|
||||
else
|
||||
die "Unexpected happend in feteching shfmt in linux as-is"
|
||||
die 256 "Unexpected happend while processing PACKAGES variable"
|
||||
fi
|
||||
;;
|
||||
*) die 2 "Unsupported variant '$VARIANT' has been parsed"
|
||||
esac
|
||||
|
||||
# Do not clean repositories since docker images are not saved
|
||||
|
||||
# Linux via Docker
|
||||
elif [ "$TRAVIS_OS_NAME" = linux ] && [ -n "$DOCKER" ] && [ -z "$QEMU" ]; then
|
||||
|
||||
# Apt-based
|
||||
if [ "$VARIANT" = ubuntu ] || [ "$VARIANT" = debian ]; then
|
||||
# QA: Why are these variables? Looks like perfect scenario for a function..
|
||||
APT_UPDATE='env LANG=C.UTF-8 apt-get update -o Acquire::GzipIndexes=false'
|
||||
APT_INSTALL="env LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive apt-get install -y -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef --no-install-recommends"
|
||||
# APT_UPGRADE="env LANG=C.UTF-8 DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y -o Dpkg::Options::=--force-confold -o Dpkg::Options::=--force-confdef --no-install-recommends"
|
||||
# APT_ADD_REPOSITORY="env LANG=C.UTF-8 apt-add-repository -y"
|
||||
fixme "Fix duplicates of repository update"
|
||||
|
||||
# Prepare container
|
||||
info "Preparing container ..."
|
||||
# Use uncompressed package lists. Necessary to work around
|
||||
# "apt-show-version" problems due to usage of compressed lists in
|
||||
# Docker containers:
|
||||
# https://askubuntu.com/questions/916199/install-apt-show-versions-inside-an-ubuntu-docker-container
|
||||
sudo docker exec "$CONTAINER" env LANG=C.UTF-8 sed -e "s#http://archive.ubuntu.com/ubuntu/#http://$UBUNTU_MIRROR/ubuntu/#g" -i /etc/apt/sources.list
|
||||
fixme "Do not use bash in install.sh"
|
||||
#sudo docker exec "$CONTAINER" bash -c "find /var/lib/apt/lists/ -maxdepth 1 -type f | xargs rm -f"
|
||||
info "Updating docker's repositories for $VARIANT"
|
||||
sudo docker exec "$CONTAINER" ci/travis-ci/retry.sh -t "$RETRY_MAXTRIALS" -p "$RETRY_PAUSE" -- "$APT_UPDATE"
|
||||
case "$VARIANT" in
|
||||
ubuntu-19.10)
|
||||
# Update repositories
|
||||
docker exec "$CONTAINER" apt update || die 1 "Unable to update repositories on '$VARIANT' using DOCKER '$DOCKER'"
|
||||
|
||||
info "Installing dependencies for $VARIANT"
|
||||
sudo docker exec "$CONTAINER" ci/travis-ci/retry.sh -t "$RETRY_MAXTRIALS" -p "$RETRY_PAUSE" -- "$APT_INSTALL" build-essential meson cppcheck libcap-dev clang libfuse3-dev gcc git ninja-build bison libtool autoconf pkg-config libcap-dev indent fakeroot libattr1-dev uthash-dev gzip rsync autopoint uthash-dev shellcheck ca-certificates || die "Unable to install all required dependencies"
|
||||
# Install dependencies
|
||||
if [ -n "$PACKAGES" ]; then
|
||||
docker exec "$CONTAINER" apt install -y "$PACKAGES" || die 1 "Unable to install following packages on '$CONTAINER': '$PACKAGES'"
|
||||
elif [ -n "$PACKAGES" ]; then
|
||||
true
|
||||
else
|
||||
die 256 "Resolving packages for '$CONTAINER'"
|
||||
fi
|
||||
;;
|
||||
*) die 256 "Unsupported variant '$VARIANT' has been parsed in DOCKER '$DOCKER'"
|
||||
esac
|
||||
|
||||
info "Fetching repository for $VARIANT"
|
||||
sudo docker exec "$CONTAINER" git clone https://github.com/Kreyrock/Kreyrock.git
|
||||
|
||||
sudo docker exec "$CONTAINER" git clone "$REPOSITORY" || die 1 "Unable to fetch '$REPOSITORY'"
|
||||
|
||||
# Exherbo
|
||||
elif [ "$VARIANT" = exherbo ]; then
|
||||
|
@ -3,18 +3,18 @@
|
||||
# Distributed under the terms of the GNU General Public License v3 (https://www.gnu.org/licenses/gpl-3.0.en.html) or later
|
||||
|
||||
# shellcheck source=QA/travis-ci/travis-common.sh
|
||||
. "$(dirname "$0")/travis-common.sh"
|
||||
. "QA/travis-ci/travis-common.sh"
|
||||
|
||||
# shellcheck source=QA/travis-ci/get-container.sh
|
||||
. "$(dirname "$0")/get-container.sh"
|
||||
. "QA/travis-ci/get-container.sh"
|
||||
|
||||
# Linux as-is
|
||||
if [ "$TRAVIS_OS_NAME" = linux ] && [ -z "$DOCKER" ] && [ -z "$QEMU" ]; then
|
||||
make check
|
||||
make check-rustlang
|
||||
|
||||
# Linux via Docker
|
||||
elif [ "$TRAVIS_OS_NAME" = linux ] && [ -n "$DOCKER" ] && [ -z "$QEMU" ]; then
|
||||
sudo docker exec "$CONTAINER" make --directory="/travis/Kreyrock" check
|
||||
sudo docker exec "$CONTAINER" make --directory="/travis/Zernit" check-rustlang
|
||||
|
||||
# MacOS X
|
||||
elif [ "$TRAVIS_OS_NAME" = osx ]; then
|
||||
|
@ -1,3 +1,9 @@
|
||||
Directory used for translations
|
||||
|
||||
files in this directory can be translated in different format on demand if development requires it.
|
||||
|
||||
### Abstract
|
||||
|
||||
This is expected to be crowd-sourced using Crowdin and alike
|
||||
|
||||
Expecting sourcing from various programming languages
|
Loading…
Reference in New Issue
Block a user