-
Notifications
You must be signed in to change notification settings - Fork 125
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Our release process documentation recommends getting passing tox results on as many popular linux distributions as time allows. Doing this by hand is cumbersome, redundant, and error prone. Add a directory with a helper script that automates the entire process using docker compose and document its use in MAINTAINERS.rst. Signed-off-by: Martí Bolívar <[email protected]> Signed-off-by: Pieter De Gendt <[email protected]>
- Loading branch information
1 parent
59bf95a
commit 7d226d4
Showing
13 changed files
with
238 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,3 +12,4 @@ shippable/ | |
htmlcov/ | ||
.dir-locals.el | ||
.venv/ | ||
docker-testing/outdir |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Docker based testing | ||
-------------------- | ||
|
||
This directory contains helper files used for running west's tests in Docker on | ||
various Linux runtimes. It was originally developed for release testing. | ||
|
||
Run "./run-tests.sh" in this directory to run the tests. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
FROM archlinux:latest | ||
CMD ["/west/docker-testing/in-container-test.sh"] | ||
|
||
RUN pacman -Syu --noconfirm \ | ||
git \ | ||
python-pip \ | ||
&& pacman -Scc --noconfirm | ||
|
||
RUN pip3 install --break-system-packages tox |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
# It would be nicer to consolidate the common user/volumes | ||
# boilerplate, but there wasn't enough time to figure out if it was | ||
# possible at time of writing. Improvements welcome. | ||
|
||
services: | ||
west-arch: | ||
build: arch | ||
environment: | ||
WEST_TOX_OUT: /west/docker-testing/outdir/arch | ||
WEST_TOX_OUT_IN_HOST: ${WEST_IN_HOST}/docker-testing/outdir/arch | ||
|
||
user: ${MY_UID}:${MY_GID} | ||
volumes: | ||
- /etc/passwd:/etc/passwd:ro | ||
- /etc/group:/etc/group:ro | ||
- ..:/west | ||
|
||
west-debian-stable: | ||
build: debian-stable | ||
environment: | ||
WEST_TOX_OUT: /west/docker-testing/outdir/debian-stable | ||
WEST_TOX_OUT_IN_HOST: ${WEST_IN_HOST}/docker-testing/outdir/debian-stable | ||
|
||
user: ${MY_UID}:${MY_GID} | ||
volumes: | ||
- /etc/passwd:/etc/passwd:ro | ||
- /etc/group:/etc/group:ro | ||
- ..:/west | ||
|
||
west-debian-testing: | ||
build: debian-testing | ||
environment: | ||
WEST_TOX_OUT: /west/docker-testing/outdir/debian-testing | ||
WEST_TOX_OUT_IN_HOST: ${WEST_IN_HOST}/docker-testing/outdir/debian-testing | ||
|
||
user: ${MY_UID}:${MY_GID} | ||
volumes: | ||
- /etc/passwd:/etc/passwd:ro | ||
- /etc/group:/etc/group:ro | ||
- ..:/west | ||
|
||
west-fedora-latest: | ||
build: fedora-latest | ||
environment: | ||
WEST_TOX_OUT: /west/docker-testing/outdir/fedora-latest | ||
WEST_TOX_OUT_IN_HOST: ${WEST_IN_HOST}/docker-testing/outdir/fedora-latest | ||
|
||
user: ${MY_UID}:${MY_GID} | ||
volumes: | ||
- /etc/passwd:/etc/passwd:ro | ||
- /etc/group:/etc/group:ro | ||
- ..:/west | ||
|
||
west-fedora-rawhide: | ||
build: fedora-rawhide | ||
environment: | ||
WEST_TOX_OUT: /west/docker-testing/outdir/fedora-rawhide | ||
WEST_TOX_OUT_IN_HOST: ${WEST_IN_HOST}/docker-testing/outdir/fedora-rawhide | ||
|
||
user: ${MY_UID}:${MY_GID} | ||
volumes: | ||
- /etc/passwd:/etc/passwd:ro | ||
- /etc/group:/etc/group:ro | ||
- ..:/west | ||
|
||
west-ubuntu-latest: | ||
build: ubuntu-latest | ||
environment: | ||
WEST_TOX_OUT: /west/docker-testing/outdir/ubuntu-latest | ||
WEST_TOX_OUT_IN_HOST: ${WEST_IN_HOST}/docker-testing/outdir/ubuntu-latest | ||
|
||
user: ${MY_UID}:${MY_GID} | ||
volumes: | ||
- /etc/passwd:/etc/passwd:ro | ||
- /etc/group:/etc/group:ro | ||
- ..:/west | ||
|
||
west-ubuntu-devel: | ||
build: ubuntu-devel | ||
environment: | ||
WEST_TOX_OUT: /west/docker-testing/outdir/ubuntu-devel | ||
WEST_TOX_OUT_IN_HOST: ${WEST_IN_HOST}/docker-testing/outdir/ubuntu-devel | ||
|
||
user: ${MY_UID}:${MY_GID} | ||
volumes: | ||
- /etc/passwd:/etc/passwd:ro | ||
- /etc/group:/etc/group:ro | ||
- ..:/west |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
FROM debian:stable | ||
CMD ["/west/docker-testing/in-container-test.sh"] | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
git \ | ||
python3-pip \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
RUN pip3 install --break-system-packages tox |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
FROM debian:testing | ||
CMD ["/west/docker-testing/in-container-test.sh"] | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
git \ | ||
python3-pip \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
RUN pip3 install --break-system-packages tox |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
FROM fedora:latest | ||
CMD ["/west/docker-testing/in-container-test.sh"] | ||
|
||
RUN dnf install -y \ | ||
git \ | ||
python3-pip \ | ||
&& dnf clean dbcache | ||
|
||
RUN pip3 install tox |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
FROM fedora:rawhide | ||
CMD ["/west/docker-testing/in-container-test.sh"] | ||
|
||
RUN dnf install -y \ | ||
git \ | ||
python3-pip \ | ||
&& dnf clean dbcache | ||
|
||
RUN pip3 install tox |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#!/bin/bash | ||
set -e | ||
|
||
# This is the test script that runs in the containers themselves. | ||
|
||
WEST=/west | ||
|
||
die() { | ||
if [ $# -eq 0 ]; then | ||
echo "error: $*" >&2 | ||
else | ||
echo "error: unknown error in $0" | ||
fi | ||
exit 1 | ||
} | ||
|
||
main() | ||
{ | ||
# Verify the container environment set up meets this script's requirements. | ||
[ -n "$WEST_TOX_OUT" ] || die "missing $WEST_TOX_OUT" | ||
[ -n "$WEST_TOX_OUT_IN_HOST" ] || die "missing $WEST_TOX_OUT_IN_HOST" | ||
[ -d "$WEST" ] || die "missing $WEST in the container" | ||
|
||
TOX_LOG="$WEST_TOX_OUT/tox.log" | ||
TOX_LOG_IN_HOST="$WEST_TOX_OUT_IN_HOST/tox.log" | ||
WEST_TESTDIR="/tmp/west" | ||
|
||
mkdir "$WEST_TOX_OUT" | ||
|
||
git clone -q "$WEST" "$WEST_TESTDIR" || die "failed to clone west to $WEST_TESTDIR in container" | ||
cd "$WEST_TESTDIR" | ||
|
||
echo "running tox, output in $TOX_LOG_IN_HOST in host" | ||
tox run >"$TOX_LOG" 2>&1 || die "tox failed" | ||
|
||
cp -R htmlcov "$WEST_TOX_OUT" || die "failed to copy coverage to $WEST_TOX_OUT_IN_HOST/htmlcov in host" | ||
} | ||
|
||
main "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/bin/bash | ||
|
||
# This is the top-level test script that runs in the host. | ||
|
||
HERE=$(dirname "$0") | ||
|
||
[ -d "$HERE/outdir" ] && rm -r "$HERE/outdir" | ||
|
||
set -e | ||
mkdir "$HERE/outdir" | ||
export MY_UID=$(id -u) | ||
export MY_GID=$(id -g) | ||
export WEST_IN_HOST=$(realpath "$HERE/..") | ||
docker-compose up --force-recreate --build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
FROM ubuntu:devel | ||
CMD ["/west/docker-testing/in-container-test.sh"] | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
git \ | ||
python3-pip \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
RUN pip3 install --break-system-packages tox |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
FROM ubuntu:latest | ||
CMD ["/west/docker-testing/in-container-test.sh"] | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
git \ | ||
python3-pip \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
RUN pip3 install --break-system-packages tox |