Quellcode durchsuchen

Add option to skip unit tests when building debs (#9793)

Signed-off-by: Dan Callahan <danc@element.io>
tags/v1.32.0rc1
Dan Callahan vor 3 Jahren
committed by GitHub
Ursprung
Commit
3efde8b69a
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden GPG-Schlüssel-ID: 4AEE18F83AFDEB23
4 geänderte Dateien mit 34 neuen und 13 gelöschten Zeilen
  1. +1
    -0
      changelog.d/9793.misc
  2. +16
    -7
      debian/build_virtualenv
  3. +6
    -0
      debian/changelog
  4. +11
    -6
      scripts-dev/build_debian_packages

+ 1
- 0
changelog.d/9793.misc Datei anzeigen

@@ -0,0 +1 @@
Add option to skip unit tests when building Debian packages.

+ 16
- 7
debian/build_virtualenv Datei anzeigen

@@ -50,15 +50,24 @@ PACKAGE_BUILD_DIR="debian/matrix-synapse-py3"
VIRTUALENV_DIR="${PACKAGE_BUILD_DIR}${DH_VIRTUALENV_INSTALL_ROOT}/matrix-synapse"
TARGET_PYTHON="${VIRTUALENV_DIR}/bin/python"

# we copy the tests to a temporary directory so that we can put them on the
# PYTHONPATH without putting the uninstalled synapse on the pythonpath.
tmpdir=`mktemp -d`
trap "rm -r $tmpdir" EXIT
case "$DEB_BUILD_OPTIONS" in
*nocheck*)
# Skip running tests if "nocheck" present in $DEB_BUILD_OPTIONS
;;

*)
# Copy tests to a temporary directory so that we can put them on the
# PYTHONPATH without putting the uninstalled synapse on the pythonpath.
tmpdir=`mktemp -d`
trap "rm -r $tmpdir" EXIT

cp -r tests "$tmpdir"

cp -r tests "$tmpdir"
PYTHONPATH="$tmpdir" \
"${TARGET_PYTHON}" -m twisted.trial --reporter=text -j2 tests

PYTHONPATH="$tmpdir" \
"${TARGET_PYTHON}" -m twisted.trial --reporter=text -j2 tests
;;
esac

# build the config file
"${TARGET_PYTHON}" "${VIRTUALENV_DIR}/bin/generate_config" \


+ 6
- 0
debian/changelog Datei anzeigen

@@ -1,3 +1,9 @@
matrix-synapse-py3 (1.31.0+nmu1) UNRELEASED; urgency=medium

* Skip tests when DEB_BUILD_OPTIONS contains "nocheck".

-- Dan Callahan <danc@element.io> Mon, 12 Apr 2021 13:07:36 +0000

matrix-synapse-py3 (1.31.0) stable; urgency=medium

* New synapse release 1.31.0.


+ 11
- 6
scripts-dev/build_debian_packages Datei anzeigen

@@ -41,7 +41,7 @@ class Builder(object):
self._lock = threading.Lock()
self._failed = False

def run_build(self, dist):
def run_build(self, dist, skip_tests=False):
"""Build deb for a single distribution"""

if self._failed:
@@ -49,13 +49,13 @@ class Builder(object):
raise Exception("failed")

try:
self._inner_build(dist)
self._inner_build(dist, skip_tests)
except Exception as e:
print("build of %s failed: %s" % (dist, e), file=sys.stderr)
self._failed = True
raise

def _inner_build(self, dist):
def _inner_build(self, dist, skip_tests=False):
projdir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
os.chdir(projdir)

@@ -99,6 +99,7 @@ class Builder(object):
"--volume=" + debsdir + ":/debs",
"-e", "TARGET_USERID=%i" % (os.getuid(), ),
"-e", "TARGET_GROUPID=%i" % (os.getgid(), ),
"-e", "DEB_BUILD_OPTIONS=%s" % ("nocheck" if skip_tests else ""),
"dh-venv-builder:" + tag,
], stdout=stdout, stderr=subprocess.STDOUT)

@@ -122,7 +123,7 @@ class Builder(object):
self.active_containers.remove(c)


def run_builds(dists, jobs=1):
def run_builds(dists, jobs=1, skip_tests=False):
builder = Builder(redirect_stdout=(jobs > 1))

def sig(signum, _frame):
@@ -131,7 +132,7 @@ def run_builds(dists, jobs=1):
signal.signal(signal.SIGINT, sig)

with ThreadPoolExecutor(max_workers=jobs) as e:
res = e.map(builder.run_build, dists)
res = e.map(lambda dist: builder.run_build(dist, skip_tests), dists)

# make sure we consume the iterable so that exceptions are raised.
for r in res:
@@ -146,9 +147,13 @@ if __name__ == '__main__':
'-j', '--jobs', type=int, default=1,
help='specify the number of builds to run in parallel',
)
parser.add_argument(
'--no-check', action='store_true',
help='skip running tests after building',
)
parser.add_argument(
'dist', nargs='*', default=DISTS,
help='a list of distributions to build for. Default: %(default)s',
)
args = parser.parse_args()
run_builds(dists=args.dist, jobs=args.jobs)
run_builds(dists=args.dist, jobs=args.jobs, skip_tests=args.no_check)

Laden…
Abbrechen
Speichern