diff --git a/.github/workflows/selfdrive_tests.yaml b/.github/workflows/selfdrive_tests.yaml index 90a1c14aa0..2b2341d6ff 100644 --- a/.github/workflows/selfdrive_tests.yaml +++ b/.github/workflows/selfdrive_tests.yaml @@ -117,6 +117,8 @@ jobs: uses: actions/cache@v3 with: path: | + .env + .venv ~/github_brew_cache_entries.txt ~/.pyenv ~/Library/Caches/pypoetry @@ -148,18 +150,17 @@ jobs: PYTHONWARNINGS: default - name: Build openpilot run: | - source tools/openpilot_env.sh + eval "$(pyenv init --path)" poetry run scons -j$(nproc) - name: Run tests run: | - source tools/openpilot_env.sh - export PYTHONPATH=$PWD + eval "$(pyenv init --path)" 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 ffa9a6efef..79c36d57d9 100755 --- a/tools/install_python_dependencies.sh +++ b/tools/install_python_dependencies.sh @@ -14,21 +14,19 @@ 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 - # 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 -)" + # activate pyenv now + source $RC_FILE fi export MAKEFLAGS="-j$(nproc)" @@ -53,6 +51,12 @@ poetry config virtualenvs.prefer-active-python true --local poetry config virtualenvs.in-project 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 45bdf90383..3892efd6bb 100755 --- a/tools/mac_setup.sh +++ b/tools/mac_setup.sh @@ -46,6 +46,7 @@ brew "libtool" brew "llvm" brew "openssl@3.0" brew "pyenv" +brew "pyenv-virtualenv" brew "qt@5" brew "zeromq" brew "gcc@12" @@ -69,16 +70,8 @@ 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 deleted file mode 100755 index 59108312ac..0000000000 --- a/tools/openpilot_env.sh +++ /dev/null @@ -1,22 +0,0 @@ -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 581b785252..9007611cc4 100755 --- a/tools/ubuntu_setup.sh +++ b/tools/ubuntu_setup.sh @@ -141,13 +141,6 @@ 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:"