From 1944945d9dfee6f42a875b119a5cf60daf8ade09 Mon Sep 17 00:00:00 2001 From: Justin Newberry Date: Thu, 17 Aug 2023 13:23:06 -0700 Subject: [PATCH] Revert "setup cleanup (#29419)" (#29451) This reverts commit ad32816fd6bdd744e7f596209822707494d3ba5e. --- .github/workflows/selfdrive_tests.yaml | 7 ++++--- tools/install_python_dependencies.sh | 16 ++++++---------- tools/mac_setup.sh | 9 ++++++++- tools/openpilot_env.sh | 22 ++++++++++++++++++++++ tools/ubuntu_setup.sh | 7 +++++++ 5 files changed, 47 insertions(+), 14 deletions(-) create mode 100755 tools/openpilot_env.sh diff --git a/.github/workflows/selfdrive_tests.yaml b/.github/workflows/selfdrive_tests.yaml index 427c96c0ec..65e10e61ed 100644 --- a/.github/workflows/selfdrive_tests.yaml +++ b/.github/workflows/selfdrive_tests.yaml @@ -149,17 +149,18 @@ jobs: PYTHONWARNINGS: default - name: Build openpilot run: | - eval "$(pyenv init --path)" + source tools/openpilot_env.sh poetry run scons -j$(nproc) - name: Run tests run: | - eval "$(pyenv init --path)" + source tools/openpilot_env.sh + export PYTHONPATH=$PWD poetry run tools/plotjuggler/test_plotjuggler.py - name: Pre Cache - Cleanup scons cache if: github.ref == 'refs/heads/master' run: | + source tools/openpilot_env.sh rm -rf /tmp/scons_cache/* - eval "$(pyenv init --path)" poetry run scons -j$(nproc) --cache-populate - name: Save scons cache id: scons-save-cache diff --git a/tools/install_python_dependencies.sh b/tools/install_python_dependencies.sh index 70021f5c2e..075dec3bff 100755 --- a/tools/install_python_dependencies.sh +++ b/tools/install_python_dependencies.sh @@ -14,19 +14,21 @@ if ! command -v "pyenv" > /dev/null 2>&1; then echo "pyenv install ..." curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash + echo -e "\n. ~/.pyenvrc" >> $RC_FILE cat < "${HOME}/.pyenvrc" if [ -z "\$PYENV_ROOT" ]; then export PATH=\$HOME/.pyenv/bin:\$HOME/.pyenv/shims:\$PATH export PYENV_ROOT="\$HOME/.pyenv" - eval "\$(pyenv init --path)" eval "\$(pyenv init -)" eval "\$(pyenv virtualenv-init -)" fi EOF - echo -e "\nsource ~/.pyenvrc" >> $RC_FILE - # activate pyenv now - source $RC_FILE + # setup now without restarting shell + export PATH=$HOME/.pyenv/bin:$HOME/.pyenv/shims:$PATH + export PYENV_ROOT="$HOME/.pyenv" + eval "$(pyenv init -)" + eval "$(pyenv virtualenv-init -)" fi export MAKEFLAGS="-j$(nproc)" @@ -50,12 +52,6 @@ pip install poetry==1.5.1 poetry config virtualenvs.prefer-active-python true --local echo "PYTHONPATH=${PWD}" > $ROOT/.env -if [[ "$(uname)" == 'Darwin' ]]; then - echo "# msgq doesn't work on mac" >> $ROOT/.env - echo "export ZMQ=1" >> $ROOT/.env - echo "export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES" >> $ROOT/.env -fi - poetry self add poetry-dotenv-plugin@^0.1.0 echo "pip packages install..." diff --git a/tools/mac_setup.sh b/tools/mac_setup.sh index 3892efd6bb..45bdf90383 100755 --- a/tools/mac_setup.sh +++ b/tools/mac_setup.sh @@ -46,7 +46,6 @@ brew "libtool" brew "llvm" brew "openssl@3.0" brew "pyenv" -brew "pyenv-virtualenv" brew "qt@5" brew "zeromq" brew "gcc@12" @@ -70,8 +69,16 @@ export CPPFLAGS="$CPPFLAGS -I${BREW_PREFIX}/opt/openssl@3/include" export PYCURL_CURL_CONFIG=/usr/bin/curl-config export PYCURL_SSL_LIBRARY=openssl +# openpilot environment +if [ -z "$OPENPILOT_ENV" ] && [ -n "$RC_FILE" ] && [ -z "$CI" ]; then + echo "source $ROOT/tools/openpilot_env.sh" >> $RC_FILE + source "$ROOT/tools/openpilot_env.sh" + echo "Added openpilot_env to RC file: $RC_FILE" +fi + # install python dependencies $DIR/install_python_dependencies.sh +eval "$(pyenv init --path)" echo "[ ] installed python dependencies t=$SECONDS" echo diff --git a/tools/openpilot_env.sh b/tools/openpilot_env.sh new file mode 100755 index 0000000000..59108312ac --- /dev/null +++ b/tools/openpilot_env.sh @@ -0,0 +1,22 @@ +if [ -z "$OPENPILOT_ENV" ]; then + export PATH="$HOME/.pyenv/bin:$PATH" + + # Pyenv suggests we place the below two lines in .profile before we source + # .bashrc, but there is no simple way to guarantee we do this correctly + # programmatically across heterogeneous systems. For end-user convenience, + # we add the lines here as a workaround. + # https://github.com/pyenv/pyenv/issues/1906 + export PYENV_ROOT="$HOME/.pyenv" + + if [[ "$(uname)" == 'Linux' ]]; then + eval "$(pyenv virtualenv-init -)" + elif [[ "$(uname)" == 'Darwin' ]]; then + # msgq doesn't work on mac + export ZMQ=1 + export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES + fi + eval "$(pyenv init --path)" + eval "$(pyenv init -)" + + export OPENPILOT_ENV=1 +fi diff --git a/tools/ubuntu_setup.sh b/tools/ubuntu_setup.sh index 9007611cc4..581b785252 100755 --- a/tools/ubuntu_setup.sh +++ b/tools/ubuntu_setup.sh @@ -141,6 +141,13 @@ fi # python setup $DIR/install_python_dependencies.sh +source ~/.bashrc +if [ -z "$OPENPILOT_ENV" ]; then + printf "\nsource %s/tools/openpilot_env.sh" "$ROOT" >> ~/.bashrc + source ~/.bashrc + echo "added openpilot_env to bashrc" +fi + echo echo "---- OPENPILOT SETUP DONE ----" echo "Open a new shell or configure your active shell env by running:"