summaryrefslogtreecommitdiffstats
path: root/tools/roomservice.py
Commit message (Collapse)AuthorAgeFilesLines
* roomservice: check uniqueness by path, not nameArnav Gupta2016-02-011-11/+12
| | | | | | | | | | | | | | | | | | | For repos such as hardware/qcom/media-caf we are using the same name with different branches for different paths. for eg. CyanogenMod/hardware_qcom_media-caf(branch:8994) - fetch to : /hardware/qcom/media-caf/8994 CyanogenMod/hardware_qcom_media-caf(branch:8960) - fetch to : /hardware/qcom/media-caf/8960 For such cases roomservice won't pick up a new path if one already exists. We should check for unique by target path instead. Change-Id: I89e561ca9a2d57ede8cf782f431a8e829ea47ee5 Signed-off-by: Arnav Gupta <championswimmer@gmail.com>
* Revert "roomservice: check uniqueness by path, not name"Ethan Chen2016-01-251-8/+8
| | | | | | This reverts commit c5ef7f3284bd22f714b178038e42d838b275ade9. Change-Id: I9a3cad3525a0ab8478343a346c68b258e3cbe120
* roomservice: check uniqueness by path, not nameArnav Gupta2016-01-251-8/+8
| | | | | | | | | | | | | | | | | | | For repos such as hardware/qcom/media-caf we are using the same name with different branches for different paths. for eg. CyanogenMod/hardware_qcom_media-caf(branch:8994) - fetch to : /hardware/qcom/media-caf/8994 CyanogenMod/hardware_qcom_media-caf(branch:8960) - fetch to : /hardware/qcom/media-caf/8960 For such cases roomservice won't pick up a new path if one already exists. We should check for unique by target path instead. Change-Id: I0a97b48ccefc5e1e3dbee803bdbcf554db2c3fc9 Signed-off-by: Arnav Gupta <championswimmer@gmail.com>
* py3: update all the thingsAnthony King2016-01-041-2/+3
| | | | Change-Id: I5e11b46b7c2f7f8760d6c0e713ca99c1e88b7cd3
* roomservice: use force-sync when adding projects with roomserviceBrint E. Kriebel2015-10-081-2/+2
| | | | | | | | | | | | | | This works around the error GitError: --force-sync not enabled; cannot overwrite a local work tree when using roomservice. Since this should only trigger when the device repos haven't been checked out yet, we can use force-sync to overwrite any roomservice device paths in the .repo directory. Change-Id: Iac54a8a2f2913f82f8ca6497b8785a9d5769640b Ticket: CYNGNOS-735 (cherry picked from commit c85b14faf6e27754afe90618f2cfe237002978a0)
* roomservice: python3 supportChirayu Desai2015-10-081-32/+49
| | | | | Change-Id: I7621818ba7ed997676728fe865f37a25b3a5b8b5 Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* roomservice: Improve error handling on searchAnthony King2015-10-061-7/+6
| | | | | | | Use the relevant forms of 'except' for urllib and parsing instead of a general except which was performed too late anyways. Change-Id: Ia1fc89dd5a8a703fc0175aef7b6dd013a44a2c8e
* roomservice: Fix search of devices forked to CMMatt Mower2015-10-061-1/+1
| | | | | | | | Commit "roomservice: Improve new device retrieval" introduced a regression where repositories that were forked to CM were omitted from search results. This fixes that issue. Change-Id: I7bf54129b5da1749abe5b2b9a492cb93e6ee41a6
* roomservice: Improve new device retrievalMatt Mower2015-10-061-8/+12
| | | | | | | | | | | | | | | | | | Without credentials, GitHub's search API limits requests to 60/hr. The existing method to add a new device is to fetch JSON-formatted info for ALL CM repositories and then search for the device. In doing so, more than 10 pages of results are returned (i.e. more than 10 requests per device). This is clumsy, slow, and limits use of roomservice to only ~5 devices per hour. Instead, only return search results for repositories that have the device name in the repository name. Then, one device = one request. It's faster and allows closer to 60 device setups / hr. Additional bailouts are included to stop the script earlier than later if a device is not found. Change-Id: I7f914d7ede82da0f100d9fd6cf8b603177962e48
* roomservice: Add lightweight dependencies to repositoriesDiogo Ferreira2015-10-061-39/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Roomservice can already fetch your cm_<device> without the need for a manifest entry. However, when working with common repositories, there is no way of actually fetching them without adding to the manifest. This patch introduces a lightweight dependency system. Each repository can have a cm.dependencies in the following json format: [ { "repository": "repository_name_on_cm_organization" "target_path": "target/path" }, ... ] For instance, for cm_anzu I need android_device_semc_msm7x30-common and android_device_semc_mogami-common. I would add both to cm.dependencies as follows: [ { "repository": "android_device_semc_msm7x30-common", "target_path": "device/semc/msm7x30-common" }, { "repository": "android_device_semc_mogami-common", "target_path": "device/semc/mogami-common" } ] Roomservice would then fetch the anzu repository, parse the dependency files and add/fetch/sync these additional repositories if they don't exist already. This also adds pretty printing to the output xml. Change-Id: I9cc847adfc717a06439bc6094213ed6492343158 roomservice: Add branch support to cm.dependencies Allow the cm.dependencies entries to provide an optional "branch" for the repository dependencies. Added to fully support http://wiki.cyanogenmod.com/wiki/Integrated_kernel_building Change-Id: I35b51920d296afa329411af6172c7bd9aeef4af8 roomservice: Fill in dependencies for already-deployed repositories Change-Id: I01fd408c9c4bfa78097c7f848b2556d2b2b180f3 roomservice: Extend dependency-checks to devices in main manifest CM currently keeps devices inherited from AOSP in the main manifest, so take that into account as well when checking device paths Change-Id: I9663f283617f237428b4eaa0cd60b5de2b86a7b9 make compatible with github v3 api Change-Id: Iff6f1f9099cdc5d2b49e04000b5fe3d04aa5d7e4 Fixed build for full-eng Previously Traceback (most recent call last): File "build/tools/roomservice.py", line 153, in <module> repo_path = get_from_manifest(device) NameError: name 'device' is not defined ** Don't have a product spec for: 'full' ** Do you have the right repo manifest? Now ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.0.4 TARGET_PRODUCT=full TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=IMM76L ============================================ Change-Id: Ib513705aba9a7a52a971ab64102ecbe9fddfb97a roomservice: Bump github request per_page to 100 Change the number of repos per page from the default 30 to 100. We seem to be hitting the rate limit on the jenkins server. Change-Id: Ie733feaa0414cbfebb7efcfc1e24d94e1e466d1b roomservice: Add support for netrc Change-Id: I1f5e11e40125abd0c4e4c8d8294d4fc09bfdc30a roomservice: Handle missing netrc file Change-Id: If981fe79dc3e2191434301239b0cd585be8b4730 roomservice.py: Verbose error when a branch is missing. Also add ROOMSERVICE_BRANCHES environment variable to use fallback branches. Change-Id: I3c2b1d79fc185c1f1e1d658e5ca4f78e688780e2 roomservice.py: Fixups around fallback branches not being used by dependencies when ROOMSERVICE_BRANCHES is defined. Change-Id: Ifb42a023cae5f62ac8f9cf7832125b91b431169c roomservice: Allow following up tag references This is now needed for release builds Change-Id: I8c5f87341059b3b15ee853312b71df73790ad0d8 build: local_manifest.xml deprecated, use local_manifests Patch Set 2:- Use roomservice.xml instead of cm.xml. Change-Id: I3d8a6ef3907b92808662cbba912cea5ed38d0bde Fix fallback branch search in roomservice If you provided a fallback branch to roomservice via the ROOMSERVICE_BRANCHES environment var the branch search would fail if the device repo had any tags. Fixed this by appending the tag search results to the branch search results instead of overwriting them Change-Id: I73a11af1500bd04e346f08ec3f83454502f3a169 roomservice: Fix wrong assumption about path of active manifest Change-Id: Id740ff4b848e6ccbfd658be4846197b8ca519237 roomservice: When validating the presence of a repo, check main manifest too Change-Id: If680536484074b473458723d93e783d074d7f669 roomservice: Bump devices per page to 200 Limit was reached again when attempting to lunch various projects, such as steelhead. Change-Id: I2f3b9705e07e1e47b86857aeb383cf7c99fcdbdc Signed-off-by: William Roberts <bill.c.roberts@gmail.com> roomservice: Fix assumptions about the branch naming We can't just split from the last slash anymore, since we're using those to distinguish the stabilization branches Change-Id: Ia175dd317f508e99b275b56e9c83bd4729a75ddb roomservice: Add recursive dependencies Dependency repositories can now have dependencies themselves Change-Id: I33a28709170da52bc98f4a62387927e3a11b2450
* roomservice delivers you lunch combos from the CyanogenMod github.Koushik Dutta2015-10-061-0/+55
fix roomservice formatting support product names with _ in them fix roomservice to handle pagination Change-Id: I4923c2f768094dbad8e06a72d9f27d46414030ab