mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-07 01:06:01 +08:00
installer: branch migration (#36315)
* mig * fix * fix * more * staging
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "common/swaglog.h"
|
||||
#include "common/util.h"
|
||||
#include "system/hardware/hw.h"
|
||||
#include "third_party/raylib/include/raylib.h"
|
||||
|
||||
int freshClone();
|
||||
@@ -38,6 +39,27 @@ extern const uint8_t inter_ttf_end[] asm("_binary_selfdrive_ui_installer_inter_a
|
||||
|
||||
Font font;
|
||||
|
||||
std::vector<std::string> tici_prebuilt_branches = {"release3", "release-tizi", "release3-staging", "nightly", "nightly-dev"};
|
||||
std::string migrated_branch;
|
||||
|
||||
void branchMigration() {
|
||||
migrated_branch = BRANCH_STR;
|
||||
cereal::InitData::DeviceType device_type = Hardware::get_device_type();
|
||||
if (device_type == cereal::InitData::DeviceType::TICI) {
|
||||
if (std::find(tici_prebuilt_branches.begin(), tici_prebuilt_branches.end(), BRANCH_STR) != tici_prebuilt_branches.end()) {
|
||||
migrated_branch = "release-tici";
|
||||
} else if (BRANCH_STR == "master") {
|
||||
migrated_branch = "master-tici";
|
||||
}
|
||||
} else if (device_type == cereal::InitData::DeviceType::TIZI) {
|
||||
if (BRANCH_STR == "release3") {
|
||||
migrated_branch = "release-tizi";
|
||||
} else if (BRANCH_STR == "release3-staging") {
|
||||
migrated_branch = "release-tizi-staging";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void run(const char* cmd) {
|
||||
int err = std::system(cmd);
|
||||
assert(err == 0);
|
||||
@@ -87,7 +109,7 @@ int doInstall() {
|
||||
int freshClone() {
|
||||
LOGD("Doing fresh clone");
|
||||
std::string cmd = util::string_format("git clone --progress %s -b %s --depth=1 --recurse-submodules %s 2>&1",
|
||||
GIT_URL.c_str(), BRANCH_STR.c_str(), TMP_INSTALL_PATH);
|
||||
GIT_URL.c_str(), migrated_branch.c_str(), TMP_INSTALL_PATH);
|
||||
return executeGitCommand(cmd);
|
||||
}
|
||||
|
||||
@@ -95,11 +117,11 @@ int cachedFetch(const std::string &cache) {
|
||||
LOGD("Fetching with cache: %s", cache.c_str());
|
||||
|
||||
run(util::string_format("cp -rp %s %s", cache.c_str(), TMP_INSTALL_PATH).c_str());
|
||||
run(util::string_format("cd %s && git remote set-branches --add origin %s", TMP_INSTALL_PATH, BRANCH_STR.c_str()).c_str());
|
||||
run(util::string_format("cd %s && git remote set-branches --add origin %s", TMP_INSTALL_PATH, migrated_branch.c_str()).c_str());
|
||||
|
||||
renderProgress(10);
|
||||
|
||||
return executeGitCommand(util::string_format("cd %s && git fetch --progress origin %s 2>&1", TMP_INSTALL_PATH, BRANCH_STR.c_str()));
|
||||
return executeGitCommand(util::string_format("cd %s && git fetch --progress origin %s 2>&1", TMP_INSTALL_PATH, migrated_branch.c_str()));
|
||||
}
|
||||
|
||||
int executeGitCommand(const std::string &cmd) {
|
||||
@@ -142,8 +164,8 @@ void cloneFinished(int exitCode) {
|
||||
// ensure correct branch is checked out
|
||||
int err = chdir(TMP_INSTALL_PATH);
|
||||
assert(err == 0);
|
||||
run(("git checkout " + BRANCH_STR).c_str());
|
||||
run(("git reset --hard origin/" + BRANCH_STR).c_str());
|
||||
run(("git checkout " + migrated_branch).c_str());
|
||||
run(("git reset --hard origin/" + migrated_branch).c_str());
|
||||
run("git submodule update --init");
|
||||
|
||||
// move into place
|
||||
@@ -193,6 +215,8 @@ int main(int argc, char *argv[]) {
|
||||
font = LoadFontFromMemory(".ttf", inter_ttf, inter_ttf_end - inter_ttf, FONT_SIZE, NULL, 0);
|
||||
SetTextureFilter(font.texture, TEXTURE_FILTER_BILINEAR);
|
||||
|
||||
branchMigration();
|
||||
|
||||
if (util::file_exists(CONTINUE_PATH)) {
|
||||
finishInstall();
|
||||
} else {
|
||||
|
||||
+3
-1
@@ -376,7 +376,9 @@ class Setup(Widget):
|
||||
|
||||
fd, tmpfile = tempfile.mkstemp(prefix="installer_")
|
||||
|
||||
headers = {"User-Agent": USER_AGENT, "X-openpilot-serial": HARDWARE.get_serial()}
|
||||
headers = {"User-Agent": USER_AGENT,
|
||||
"X-openpilot-serial": HARDWARE.get_serial(),
|
||||
"X-openpilot-device-type": HARDWARE.get_device_type()}
|
||||
req = urllib.request.Request(self.download_url, headers=headers)
|
||||
|
||||
with open(tmpfile, 'wb') as f, urllib.request.urlopen(req, timeout=30) as response:
|
||||
|
||||
Reference in New Issue
Block a user