Clone requirements into a tempdir.
Git doesn't remove git repos with git clean, so the workspace checkout of the requirements repo was stale. Clone into a tempdir instead. Also, fix a traceback in the case that a new requirement is added. The loop wasn't short-circuiting as it should in that case. Print the git sha from the requirements repo to aid in debugging. Reorder imports. Change-Id: Id5a8e748a1fb353f2628a9c9fa291d6825d1046d Reviewed-on: https://review.openstack.org/26791 Reviewed-by: Clark Boylan <clark.boylan@gmail.com> Approved: James E. Blair <corvus@inaugust.com> Tested-by: Jenkins
This commit is contained in:
parent
c8962dea27
commit
05cd301f8b
@ -15,11 +15,13 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import subprocess
|
|
||||||
import shlex
|
|
||||||
import sys
|
|
||||||
import pkg_resources
|
|
||||||
import os
|
import os
|
||||||
|
import pkg_resources
|
||||||
|
import shlex
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
|
||||||
def run_command(cmd):
|
def run_command(cmd):
|
||||||
print(cmd)
|
print(cmd)
|
||||||
@ -75,10 +77,14 @@ def main():
|
|||||||
|
|
||||||
run_command("git checkout %s" % head)
|
run_command("git checkout %s" % head)
|
||||||
|
|
||||||
|
reqroot = tempfile.mkdtemp()
|
||||||
|
reqdir = os.path.join(reqroot, "requirements")
|
||||||
run_command("git clone https://review.openstack.org/p/openstack/"
|
run_command("git clone https://review.openstack.org/p/openstack/"
|
||||||
"requirements --depth 1 .openstack-requirements")
|
"requirements --depth 1 %s" % reqdir)
|
||||||
os.chdir('.openstack-requirements')
|
os.chdir(reqdir)
|
||||||
run_command("git checkout remotes/origin/%s" % branch)
|
run_command("git checkout remotes/origin/%s" % branch)
|
||||||
|
print "requirements git sha: %s" % run_command(
|
||||||
|
"git rev-parse HEAD").strip()
|
||||||
os_reqs = RequirementsList('openstack/requirements')
|
os_reqs = RequirementsList('openstack/requirements')
|
||||||
os_reqs.read_all_requirements()
|
os_reqs.read_all_requirements()
|
||||||
|
|
||||||
@ -90,6 +96,7 @@ def main():
|
|||||||
if name not in os_reqs.reqs:
|
if name not in os_reqs.reqs:
|
||||||
print("Requirement %s not in openstack/requirements" % str(req))
|
print("Requirement %s not in openstack/requirements" % str(req))
|
||||||
failed = True
|
failed = True
|
||||||
|
continue
|
||||||
# pkg_resources.Requirement implements __eq__() but not __ne__().
|
# pkg_resources.Requirement implements __eq__() but not __ne__().
|
||||||
# There is no implied relationship between __eq__() and __ne__()
|
# There is no implied relationship between __eq__() and __ne__()
|
||||||
# so we must negate the result of == here instead of using !=.
|
# so we must negate the result of == here instead of using !=.
|
||||||
@ -98,6 +105,7 @@ def main():
|
|||||||
"value %s" % (str(req), str(os_reqs.reqs[name])))
|
"value %s" % (str(req), str(os_reqs.reqs[name])))
|
||||||
failed = True
|
failed = True
|
||||||
|
|
||||||
|
shutil.rmtree(reqroot)
|
||||||
if failed or os_reqs.failed or head_reqs.failed or branch_reqs.failed:
|
if failed or os_reqs.failed or head_reqs.failed or branch_reqs.failed:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
print("Updated requirements match openstack/requirements.")
|
print("Updated requirements match openstack/requirements.")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user