parent
dd2e5ddb92
commit
9384f1892e
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# Get all non-live ebuilds that are in the git tree and emerge all of them in a clean stage3
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
SCRIPT_PATH=$(dirname "$0")
|
||||
|
||||
EBUILDS=($(git ls-files | grep -e "\.ebuild$" | egrep -v '.+9999(-r[0-9]+)?.ebuild'))
|
||||
|
||||
echo "Emerging the following ebuilds: ${EBUILDS[@]}"
|
||||
|
||||
# Emerge the ebuilds in a clean stage3
|
||||
"${SCRIPT_PATH}/emerge-ebuild.sh" "${EBUILDS[@]}"
|
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# Get all live ebuilds that are in the git tree and emerge all of them in a clean stage3
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
SCRIPT_PATH=$(dirname "$0")
|
||||
|
||||
EBUILDS=($(git ls-files | egrep -e '.+9999(-r[0-9]+)?.ebuild$'))
|
||||
|
||||
echo "Emerging the following ebuilds: ${EBUILDS[@]}"
|
||||
|
||||
# Emerge the ebuilds in a clean stage3
|
||||
"${SCRIPT_PATH}/emerge-ebuild.sh" "${EBUILDS[@]}"
|
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
# Emerge a specific ebuild in a clean stage3
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "Usage: $0 <ebuild category>/<ebuild name>/<ebuild filename>.ebuild [<second ebuild category>/<second ebuild name>/<second ebuild filename>.ebuild]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create volume container named "portage" with today's gentoo tree in it
|
||||
# Ensure the portage image is up to date
|
||||
docker pull gentoo/portage
|
||||
# Clean up in case an old volume container exists
|
||||
docker rm -f portage || true
|
||||
# Create the new volume container
|
||||
docker create --name portage gentoo/portage
|
||||
|
||||
# Ensure the stage3 image is up to date
|
||||
docker pull gentoo/stage3
|
||||
|
||||
# Emerge the ebuild in a clean stage3
|
||||
docker run --rm -ti \
|
||||
-e GITHUB_TOKEN \
|
||||
-e CIRCLECI \
|
||||
-e CIRCLE_PROJECT_USERNAME \
|
||||
-e CIRCLE_PROJECT_REPONAME \
|
||||
-e CIRCLE_PULL_REQUEST \
|
||||
-e CIRCLE_PR_NUMBER \
|
||||
-e DEBUG \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--volumes-from portage \
|
||||
-v "${HOME}/.portage-pkgdir":/var/cache/binpkgs \
|
||||
-v "${PWD}":/usr/local/portage \
|
||||
-w /usr/local/portage \
|
||||
gentoo/stage3 \
|
||||
/usr/local/portage/tests/resources/emerge-ebuild.sh "${@}"
|
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
# Determine which ebuilds are new or changed and emerge them in a clean stage3
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
SCRIPT_PATH=$(dirname "$0")
|
||||
|
||||
IFS=" " read -ra EBUILDS <<< "$("${SCRIPT_PATH}/get-new-or-changed-ebuilds.sh")"
|
||||
|
||||
if [ ${#EBUILDS[@]} -eq 0 ]; then
|
||||
echo "No changed ebuilds found, skipping emerge tests"
|
||||
else
|
||||
echo "Emerging the following ebuilds:" "${EBUILDS[@]}"
|
||||
"${SCRIPT_PATH}/emerge-ebuild.sh" "${EBUILDS[@]}"
|
||||
fi
|
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# Emerge a random non-live ebuild out of all the ebuilds in the overlay in a clean stage3
|
||||
# Used to do continuous tests if our ebuilds still work
|
||||
# as well as make sure the binary package cache is updated on our CI service
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
SCRIPT_PATH=$(dirname "$0")
|
||||
|
||||
# Pick a random non-live ebuild
|
||||
EBUILD=$(find . -regex '.*\.ebuild$' -printf '%P\n' | egrep -v '.+9999(-r[0-9]+)?.ebuild' | shuf -n1)
|
||||
|
||||
${SCRIPT_PATH}/emerge-ebuild.sh "${EBUILD}"
|
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# Emerge a random live ebuild out of all the ebuilds in the overlay in a clean stage3
|
||||
# Used to do continuous tests if our ebuilds still work
|
||||
# as well as make sure the binary package cache is updated on our CI service
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
SCRIPT_PATH=$(dirname "$0")
|
||||
|
||||
# Pick a random live ebuild
|
||||
EBUILD=$(find . -regextype egrep -regex '.+9999(-r[0-9]+)?.ebuild' -printf '%P\n' | shuf -n1)
|
||||
|
||||
${SCRIPT_PATH}/emerge-ebuild.sh "${EBUILD}"
|
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
# Determine which packages/ebuilds are new or changed
|
||||
# If there are changes to .ebuild files return the list of changed ebuilds
|
||||
# If there are no changes to .ebuild files determine which package(s) is/are changed
|
||||
# and return all of the .ebuild files for those package(s)
|
||||
# All ebuilds need to be returned because there is no way to determine which specific ebuild is impacted
|
||||
# by a change to for example files/patches or metadata changes
|
||||
# If no changed .ebuild files or changed packages can be found return nothing
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
# This uses master... to only include the changes introduced in the current branch and exclude new changes in master
|
||||
# because we only want to test ebuild changes introduced in the the current branch
|
||||
if [[ -n "${CIRCLECI}" ]]; then
|
||||
# For some reason CircleCI does some crazy stuff with git/master which breaks the normal git workflow :|
|
||||
# See https://discuss.circleci.com/t/checkout-script-adds-commits-to-master-from-circle-branch/14194
|
||||
# So we hard reset master here to make it usable again
|
||||
git checkout master > /dev/null 2>&1
|
||||
git reset --hard origin/master > /dev/null 2>&1
|
||||
git checkout - > /dev/null 2>&1
|
||||
DIFF_REFS="master...${CIRCLE_BRANCH}"
|
||||
else
|
||||
DIFF_REFS="master..."
|
||||
fi
|
||||
|
||||
# Get ebuild files that are changed
|
||||
EBUILDS=($(git diff --name-only --diff-filter=d "${DIFF_REFS}" | grep '\.ebuild$')) || true
|
||||
# If no ebuild files are changed check if there are any other changes to packages
|
||||
if [ ${#EBUILDS[@]} -eq 0 ]; then
|
||||
# Ignore everything that's not a package by only picking up paths that are >= 3 levels deep
|
||||
# This excludes everything, except for some stuff in the "tests" directory, so explicitly exclude the "tests" directory
|
||||
PACKAGES=($(git diff --name-only --diff-filter=d "${DIFF_REFS}" ':!tests' | awk -F/ '{if (NF>=3) print $1"/"$2;}' | sort -u)) || true
|
||||
for PACKAGE in "${PACKAGES[@]}"
|
||||
do
|
||||
shopt -s nullglob
|
||||
EBUILDS+=(${PACKAGE}/*.ebuild)
|
||||
done
|
||||
fi
|
||||
|
||||
echo "${EBUILDS[@]}"
|
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
# Check if a new version of any of the projects in this overlay is released
|
||||
# Will create an issue requesting a version bump if a new version is found
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
docker run --rm -ti \
|
||||
-e GITHUB_API_TOKEN \
|
||||
-v "${PWD}/tests/resources/newversionchecker.toml":/app/newversionchecker.toml \
|
||||
simonvanderveldt/newversionchecker
|
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
# Determine which ebuilds are new or changed and run repoman on their packages
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
SCRIPT_PATH=$(dirname "$0")
|
||||
|
||||
PACKAGES=""
|
||||
# Get list of new or changed packages
|
||||
IFS=" " read -ra EBUILDS <<< "$("${SCRIPT_PATH}/get-new-or-changed-ebuilds.sh")"
|
||||
mapfile -t PACKAGES < <(for EBUILD in "${EBUILDS[@]}"; do dirname "${EBUILD}"; done | sort -u)
|
||||
|
||||
if [ ${#PACKAGES[@]} -eq 0 ]; then
|
||||
echo "No changed packages found, skipping repoman check"
|
||||
else
|
||||
echo "Running repoman on the following packages:" "${PACKAGES[@]}"
|
||||
"${SCRIPT_PATH}/repoman.sh" "${PACKAGES[@]}"
|
||||
fi
|
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
# Run repoman in a clean stage3
|
||||
# Pass package names to only run against these packages, otherwise runs agains the whole overlay
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
SCRIPT_PATH=$(dirname "$0")
|
||||
|
||||
# Create volume container named "portage" with today's gentoo tree in it
|
||||
# Ensure the portage image is up to date
|
||||
docker pull gentoo/portage
|
||||
# Clean up in case an old volume container exists
|
||||
docker rm -f portage || true
|
||||
# Create the new volume container
|
||||
docker create --name portage gentoo/portage
|
||||
|
||||
# Ensure the stage3 image is up to date
|
||||
docker pull gentoo/stage3
|
||||
|
||||
# Run the repoman tests in a clean stage3
|
||||
docker run --rm -ti \
|
||||
-e GITHUB_TOKEN \
|
||||
-e CIRCLECI \
|
||||
-e CIRCLE_PROJECT_USERNAME \
|
||||
-e CIRCLE_PROJECT_REPONAME \
|
||||
-e CIRCLE_PULL_REQUEST \
|
||||
-e CIRCLE_PR_NUMBER \
|
||||
-e DEBUG \
|
||||
--volumes-from portage \
|
||||
-v "${HOME}/.portage-pkgdir":/var/cache/binpkgs \
|
||||
-v "${PWD}":/usr/local/portage \
|
||||
-w /usr/local/portage \
|
||||
gentoo/stage3 \
|
||||
/usr/local/portage/tests/resources/repoman.sh "${@}"
|
@ -0,0 +1,116 @@
|
||||
#!/usr/bin/env bash
|
||||
# Tests emering of one or multiple ebuilds, installs dependencies first
|
||||
# Takes the path to an ebuild or a list of ebuild paths as argument(s)
|
||||
# Sources ebuild specific config from ./packages/<category>/<PN>.conf and
|
||||
# ./packages/<category>/<P>.conf if those files exist
|
||||
# Depends on qatom from app-portage/portage-utils
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "Usage: $0 <ebuild category>/<ebuild name>/<ebuild filename>.ebuild [<second ebuild category>/<second ebuild name>/<second ebuild filename>.ebuild]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Enable binpkg-multi-instance mainly for keeping binpkgs built with different USE flags
|
||||
# Disable news messages from portage as well as the IPC, network and PID sandbox to get rid of the
|
||||
# "Unable to unshare: EPERM" messages without requiring the container to be run in privileged mode
|
||||
# Disable rsync output
|
||||
export FEATURES="binpkg-multi-instance parallel-install -news -ipc-sandbox -network-sandbox -pid-sandbox"
|
||||
export PORTAGE_RSYNC_EXTRA_OPTS="-q"
|
||||
# Don't store any elogs by default
|
||||
export PORTAGE_ELOG_SYSTEM="echo"
|
||||
|
||||
# Use 4 jobs to speedup emerges
|
||||
# CircleCI's large VMs have 4 CPUs and 15GB of memory
|
||||
# -j4 doesn't sature the CPUs so increase it by 1
|
||||
echo 'MAKEOPTS="-j5"' >> /etc/portage/make.conf
|
||||
|
||||
# Only enable intel so LLVM doesn't get pulled in
|
||||
echo 'VIDEO_CARDS="intel"' >> /etc/portage/make.conf
|
||||
|
||||
# Disable LLVM support in mesa
|
||||
echo "media-libs/mesa -llvm" > /etc/portage/package.use/audio-overlay
|
||||
|
||||
# Ensure we use dev-lang/rust-bin
|
||||
echo "dev-lang/rust" > /etc/portage/package.mask/audio-overlay
|
||||
|
||||
# Show emerge info for troubleshooting purposes
|
||||
emerge --info
|
||||
|
||||
# Emerge utilities/tools used by this script
|
||||
emerge -q --buildpkg --usepkg app-portage/portage-utils
|
||||
|
||||
# Set portage's distdir to /tmp/distfiles
|
||||
# This is a workaround for a bug in portage/git-r3 where git-r3 can't
|
||||
# create the distfiles/git-r3 directory when no other distfiles have been
|
||||
# downloaded by portage first, which happens when using binary packages
|
||||
# https://bugs.gentoo.org/481434
|
||||
export DISTDIR="/tmp/distfiles"
|
||||
|
||||
# Setup overlay
|
||||
mkdir -p /etc/portage/repos.conf
|
||||
cat > /etc/portage/repos.conf/localrepo.conf <<EOF
|
||||
[audio-overlay]
|
||||
location = /usr/local/portage
|
||||
EOF
|
||||
|
||||
# Emerge the ebuilds in a clean stage3
|
||||
EBUILD_PATHS=("${@}")
|
||||
for EBUILD_PATH in "${EBUILD_PATHS[@]}"
|
||||
do
|
||||
echo "Emerging ${EBUILD_PATH}"
|
||||
EBUILD_FILENAME=$(basename "${EBUILD_PATH}" ".ebuild")
|
||||
EBUILD_CATEGORY="${EBUILD_PATH%%/*}"
|
||||
EBUILD="${EBUILD_CATEGORY}/${EBUILD_FILENAME}"
|
||||
|
||||
# Source ebuild specific env vars
|
||||
unset ACCEPT_KEYWORDS
|
||||
unset USE
|
||||
PKG_CATEGORY=$(qatom -F "%{CATEGORY}" ${EBUILD})
|
||||
PKG_NAME=$(qatom -F "%{PN}" ${EBUILD})
|
||||
PKG_FULL_NAME=$(qatom -F "%{PF}" ${EBUILD})
|
||||
# Source versionless config
|
||||
if [ -f "./tests/resources/packages/${PKG_CATEGORY}/${PKG_NAME}.conf" ]; then
|
||||
source "./tests/resources/packages/${PKG_CATEGORY}/${PKG_NAME}.conf"
|
||||
fi
|
||||
# Source version specific config
|
||||
if [ -f "./tests/resources/packages/${PKG_CATEGORY}/${PKG_FULL_NAME}.conf" ]; then
|
||||
source "./tests/resources/packages/${PKG_CATEGORY}/${PKG_FULL_NAME}.conf"
|
||||
fi
|
||||
|
||||
# Emerge dependencies first
|
||||
echo "Emerging dependencies"
|
||||
emerge --tree --quiet-build --buildpkg --usepkg --onlydeps --autounmask=y --autounmask-continue=y "=${PKG_CATEGORY}/${PKG_FULL_NAME}"
|
||||
|
||||
# Emerge the ebuild itself
|
||||
echo "Emerging ${EBUILD}"
|
||||
# Store QA elogs for the ebuild we're testing
|
||||
PORTAGE_ELOG_SYSTEM="save_summary:qa echo" emerge -v "=${PKG_CATEGORY}/${PKG_FULL_NAME}"
|
||||
|
||||
if [[ -f /var/log/portage/elog/summary.log ]]; then
|
||||
cat /var/log/portage/elog/summary.log >> /tmp/qa.log
|
||||
else
|
||||
echo "${EBUILD}: No QA issues found" >> /tmp/qa.log
|
||||
fi
|
||||
rm -f /var/log/portage/elog/summary.log
|
||||
|
||||
# Unmerge ebuild in case we're emerging multiple ebuilds to prevent blocking other ebuilds
|
||||
if (( ${#EBUILD_PATHS[@]} > 1 )); then
|
||||
emerge -c "=${PKG_CATEGORY}/${PKG_FULL_NAME}"
|
||||
fi
|
||||
done
|
||||
|
||||
# Post QA result as comment on PR when running on CI
|
||||
if [[ -n "${CIRCLE_PULL_REQUEST}" ]]; then
|
||||
# Install dependencies
|
||||
emerge -q --buildpkg --usepkg dev-vcs/git dev-python/pip
|
||||
pip install --user https://github.com/simonvanderveldt/travis-github-pr-bot/archive/master.zip
|
||||
PATH="${HOME}/.local/bin:$PATH"
|
||||
cat /tmp/qa.log | travis-bot --description "Portage QA results:"
|
||||
else
|
||||
cat /tmp/qa.log
|
||||
fi
|
@ -0,0 +1,28 @@
|
||||
github_repo = "gentoo-audio/audio-overlay"
|
||||
check_interval = 24
|
||||
|
||||
[projects]
|
||||
adlplug = "https://github.com/jpcima/adlplug"
|
||||
artyfx = "https://github.com/openAVproductions/openAV-ArtyFX"
|
||||
bitrot = "https://github.com/grejppi/bitrot"
|
||||
cadence = "https://github.com/falkTX/Cadence"
|
||||
carla = "https://github.com/falkTX/Carla"
|
||||
deteriorate-lv2 = "https://github.com/blablack/deteriorate-lv2"
|
||||
distrho-ports = "https://github.com/DISTRHO/DISTRHO-Ports"
|
||||
drumkv1 = "https://github.com/rncbc/drumkv1"
|
||||
ladish = "https://github.com/LADI/ladish"
|
||||
libmonome = "https://github.com/monome/libmonome"
|
||||
luppp = "https://github.com/openAVproductions/openAV-Luppp"
|
||||
mididings = "https://github.com/dsacre/mididings"
|
||||
nekobi = "https://github.com/DISTRHO/Nekobi"
|
||||
new-session-manager = "https://github.com/linuxaudio/new-session-manager"
|
||||
ntk = "https://github.com/gentoo-audio/ntk"
|
||||
padthv1 = "https://github.com/rncbc/padthv1"
|
||||
pure-data = "https://github.com/pure-data/pure-data"
|
||||
samplv1 = "https://github.com/rncbc/samplv1"
|
||||
sc3-plugins = "https://github.com/supercollider/sc3-plugins"
|
||||
sequencer64 = "https://github.com/ahlstromcj/sequencer64"
|
||||
serialosc = "https://github.com/monome/serialosc"
|
||||
setbfree = "https://github.com/pantherb/setBfree"
|
||||
sorcer = "https://github.com/openAVproductions/openAV-Sorcer"
|
||||
synthv1 = "https://github.com/rncbc/synthv1"
|
@ -0,0 +1,8 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-plugins/adlplug lv2
|
||||
media-libs/mesa -llvm
|
||||
EOF
|
||||
|
||||
cat >/etc/portage/make.conf <<EOF
|
||||
VIDEO_CARDS="intel"
|
||||
EOF
|
@ -0,0 +1,4 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
x11-libs/cairo X
|
||||
dev-cpp/cairomm X
|
||||
EOF
|
@ -0,0 +1,8 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-plugins/distrho-ports lv2 vst
|
||||
media-libs/mesa -llvm
|
||||
EOF
|
||||
|
||||
cat >/etc/portage/make.conf <<EOF
|
||||
VIDEO_CARDS="intel"
|
||||
EOF
|
@ -0,0 +1,7 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-libs/mesa -llvm
|
||||
EOF
|
||||
|
||||
cat >/etc/portage/make.conf <<EOF
|
||||
VIDEO_CARDS="intel"
|
||||
EOF
|
@ -0,0 +1,8 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-plugins/opnplug lv2
|
||||
media-libs/mesa -llvm
|
||||
EOF
|
||||
|
||||
cat >/etc/portage/make.conf <<EOF
|
||||
VIDEO_CARDS="intel"
|
||||
EOF
|
@ -0,0 +1,8 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-libs/mesa -llvm
|
||||
EOF
|
||||
|
||||
cat >/etc/portage/make.conf <<EOF
|
||||
VIDEO_CARDS="intel"
|
||||
CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3 sse4_1"
|
||||
EOF
|
@ -0,0 +1,11 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
x11-libs/cairo X
|
||||
media-libs/mesa -llvm
|
||||
dev-qt/qtgui -gif -udev -libinput
|
||||
EOF
|
||||
|
||||
cat >/etc/portage/make.conf <<EOF
|
||||
VIDEO_CARDS="intel"
|
||||
CPU_FLAGS_X86="sse mmxext mmx"
|
||||
USE="-png"
|
||||
EOF
|
@ -0,0 +1,3 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-sound/drumkv1 standalone lv2
|
||||
EOF
|
@ -0,0 +1,3 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-sound/mididings jack
|
||||
EOF
|
@ -0,0 +1,3 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-sound/new-session-manager gui jack
|
||||
EOF
|
@ -0,0 +1,3 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-sound/padthv1 standalone lv2
|
||||
EOF
|
@ -0,0 +1,3 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-sound/pure-data jack
|
||||
EOF
|
@ -0,0 +1,3 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-sound/samplv1 standalone lv2
|
||||
EOF
|
@ -0,0 +1,5 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
x11-libs/cairo X
|
||||
dev-cpp/cairomm X
|
||||
media-sound/sequencer64 jack
|
||||
EOF
|
@ -0,0 +1,3 @@
|
||||
cat >/etc/portage/package.use/audio-overlay <<EOF
|
||||
media-sound/synthv1 standalone lv2
|
||||
EOF
|
@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env bash
|
||||
# "Lint" using repoman if any ebuilds have basic issues
|
||||
# In case of a PR the result is added as a comment to the PR
|
||||
set -e
|
||||
|
||||
if [ "${DEBUG}" = True ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
# Enable binpkg-multi-instance mainly for keeping binpkgs built with different USE flags
|
||||
# Disable news messages from portage as well as the IPC, network and PID sandbox to get rid of the
|
||||
# "Unable to unshare: EPERM" messages without requiring the container to be ran in priviliged mode
|
||||
# Also disable rsync's output
|
||||
export FEATURES="binpkg-multi-instance parallel-install -news -ipc-sandbox -network-sandbox -pid-sandbox" PORTAGE_RSYNC_EXTRA_OPTS="-q"
|
||||
|
||||
# Ensure we use dev-lang/rust-bin
|
||||
echo "dev-lang/rust" > /etc/portage/package.mask/audio-overlay
|
||||
|
||||
# Install dependencies
|
||||
emerge -q --buildpkg --usepkg dev-vcs/git app-portage/repoman dev-python/pip
|
||||
pip install --user https://github.com/simonvanderveldt/travis-github-pr-bot/archive/master.zip
|
||||
PATH="${HOME}/.local/bin:$PATH"
|
||||
|
||||
REPOMAN_OUTPUT=""
|
||||
REPOMAN_EXITCODES=0
|
||||
|
||||
if [[ -n "${1}" ]]; then
|
||||
IFS=' ' read -ra PACKAGES <<< "${@}"
|
||||
for PACKAGE in "${PACKAGES[@]}"
|
||||
do
|
||||
pushd "${PACKAGE}"
|
||||
REPOMAN_OUTPUT+="${PACKAGE}: $(repoman full -d -q)\n" || REPOMAN_EXITCODES+=${?}
|
||||
popd
|
||||
done
|
||||
else
|
||||
REPOMAN_OUTPUT+=$(repoman full -d -q) || REPOMAN_EXITCODES+=${?}
|
||||
fi
|
||||
|
||||
echo -e "${REPOMAN_OUTPUT}"
|
||||
# Post repoman output as comment on PR when running on CI
|
||||
if [[ -n "${CIRCLE_PULL_REQUEST}" ]]; then
|
||||
echo -e "${REPOMAN_OUTPUT}" | travis-bot --description "Repoman QA results:"
|
||||
fi
|
||||
|
||||
if (( REPOMAN_EXITCODES > 0 )); then
|
||||
exit 1
|
||||
fi
|
Loading…
Reference in new issue