Isolate build tmp directories

This commit is contained in:
Adrien Ferrand 2021-03-07 17:37:58 +01:00
parent 6e4549c141
commit 5b2263cfed

View file

@ -2,10 +2,12 @@
import argparse
import datetime
import glob
import os
import re
import subprocess
import sys
import time
import tempfile
from multiprocessing import Pool, Process, Manager, Lock
from os.path import join, realpath, dirname, basename, exists
from typing import List, Dict, Tuple, Set
@ -17,10 +19,15 @@ PLUGINS = [basename(path) for path in glob.glob(join(CERTBOT_DIR, 'certbot-dns-*
def _execute_build(
target: str, archs: Set[str], status: Dict[str, Dict[str, str]],
workspace: str) -> Tuple[int, List[str]]:
process = subprocess.Popen([
'snapcraft', 'remote-build', '--launchpad-accept-public-upload', '--recover',
'--build-on', ','.join(archs)
], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, cwd=workspace)
with tempfile.TemporaryDirectory() as tempdir:
environ = os.environ.copy()
environ['TMPDIR'] = tempdir
process = subprocess.Popen([
'snapcraft', 'remote-build', '--launchpad-accept-public-upload', '--recover',
'--build-on', ','.join(archs)],
stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
universal_newlines=True, env=environ, cwd=workspace)
process_output: List[str] = []
for line in process.stdout: