mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-19 14:43:57 +08:00
* code from setup cleanup #29419
update ci
update ci
export variables for mac os
check env
what is in the profile script?
install pyenv the same everywhere
temporarily disable brew cache
temporarily disable brew cache
try fixing pyenv virtualenv-init
try this
inject shims path earlier
try alternate install method
switch back to brew install
try eval "$(pyenv init --path)"
add eval "\$(pyenv init --path)"
* Add local .env file to the cache list
* Change .env paths
* debug line
* order?
* remove .env
* Add .venv to caches
---------
Co-authored-by: Greg Hogan <gregjhogan@gmail.com>
old-commit-hash: 0f7be5b1e6
77 lines
2.0 KiB
Bash
Executable File
77 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
|
ROOT=$DIR/../
|
|
cd $ROOT
|
|
|
|
RC_FILE="${HOME}/.$(basename ${SHELL})rc"
|
|
if [ "$(uname)" == "Darwin" ] && [ $SHELL == "/bin/bash" ]; then
|
|
RC_FILE="$HOME/.bash_profile"
|
|
fi
|
|
|
|
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
|
|
|
|
cat <<EOF > "${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
|
|
fi
|
|
|
|
export MAKEFLAGS="-j$(nproc)"
|
|
|
|
PYENV_PYTHON_VERSION=$(cat $ROOT/.python-version)
|
|
if ! pyenv prefix ${PYENV_PYTHON_VERSION} &> /dev/null; then
|
|
# no pyenv update on mac
|
|
if [ "$(uname)" == "Linux" ]; then
|
|
echo "pyenv update ..."
|
|
pyenv update
|
|
fi
|
|
echo "python ${PYENV_PYTHON_VERSION} install ..."
|
|
CONFIGURE_OPTS="--enable-shared" pyenv install -f ${PYENV_PYTHON_VERSION}
|
|
fi
|
|
eval "$(pyenv init --path)"
|
|
|
|
echo "update pip"
|
|
pip install pip==23.2.1
|
|
pip install poetry==1.5.1
|
|
|
|
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..."
|
|
poetry install --no-cache --no-root
|
|
pyenv rehash
|
|
|
|
[ -n "$POETRY_VIRTUALENVS_CREATE" ] && RUN="" || RUN="poetry run"
|
|
|
|
if [ "$(uname)" != "Darwin" ]; then
|
|
echo "pre-commit hooks install..."
|
|
shopt -s nullglob
|
|
for f in .pre-commit-config.yaml */.pre-commit-config.yaml; do
|
|
if [ -e "$ROOT/$(dirname $f)/.git" ]; then
|
|
$RUN pre-commit install -c "$f"
|
|
fi
|
|
done
|
|
fi
|