Skip to content
This repository has been archived by the owner on Nov 3, 2023. It is now read-only.

feat: Load Python version from .python-version file #34

Merged
merged 8 commits into from
Oct 28, 2021
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 29 additions & 1 deletion .github/workflows/development-environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
pull_request:

jobs:
bootstrap:
fast-bootstrap:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Later on we can add caches and let the slow one take its time.

runs-on: macos-11
timeout-minutes: 45
env:
Expand All @@ -18,6 +18,34 @@ jobs:
- uses: actions/checkout@v2

- name: Execute bootstrap
env:
STRAP_DEBUG: 1
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is useful in case there's a failure so we can see what command failed.

# This enables iterating faster in the CI:
# - Only install required libraries rather than brew bundle
# - Skip updating Homebrew
QUICK: 1
run: |
./bootstrap.sh

# We can run a second time w/o anything breaking
- name: Second run
run: |
./bootstrap.sh

slow-bootstrap:
runs-on: macos-11
timeout-minutes: 45
env:
PIP_DISABLE_PIP_VERSION_CHECK: on
# Make the environment more similar to what Mac defaults to
SHELL: /bin/zsh

steps:
- uses: actions/checkout@v2

- name: Execute bootstrap
env:
STRAP_DEBUG: 1
run: |
./bootstrap.sh

Expand Down
15 changes: 6 additions & 9 deletions bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,8 @@ git_clone_repo() {
if [ ! -d "$2" ]; then
log "Cloning $1 to $2"
git clone -q "${GIT_URL_PREFIX}$1.git" "$2"
# XXX: Temporarily
cd "$2" && git checkout armenzg/dev/add-python-version-back
logk
fi
}
Expand Down Expand Up @@ -432,14 +434,15 @@ ensure_docker_server() {
# Install required libraries of dir ($1)
install_prerequisites() {
if [ -d "$1" ]; then
log "Installing from sentry Brewfile (very slow)"
if [ -z "$QUICK" ]; then
log "Installing from sentry Brewfile (very slow)"
# This makes sure that we don't try to install Python packages from the cache
# This is useful when verifying a new platform and multiple executions of bootstrap.sh is required
export PIP_NO_CACHE_DIR=on
# The fallback is useful when trying to run the script on a non-clean machine multiple times
cd "$1" && (make prerequisites || log "Something failed during brew bundle but let's try to continue")
else
log "Installing minimal set of requirements"
export HOMEBREW_NO_AUTO_UPDATE=on
brew install libxmlsec1 pyenv
brew install --cask docker
Expand Down Expand Up @@ -577,7 +580,7 @@ sudo_refresh
# Before starting, get the user's code location root where we will clone sentry repos to
get_code_root_path

[ -z "$CI" ] && check_github_access
[ -z "$CI" ] && [ -z "$QUICK" ] && check_github_access
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's actually a slow step!


[ "$USER" = "root" ] && abort "Run as yourself, not root."
groups | grep $Q -E "\b(admin)\b" || abort "Add $USER to the admin group."
Expand All @@ -587,7 +590,7 @@ caffeinate -s -w $$ &

install_xcode_cli
xcode_license
install_homebrew
[ -z "$QUICK" ] && install_homebrew

### Sentry stuff ###
SENTRY_ROOT="$CODE_ROOT/sentry"
Expand All @@ -605,12 +608,6 @@ install_prerequisites "$SENTRY_ROOT"
setup_pyenv "$SENTRY_ROOT"
# Run it here to make sure pyenv's Python is selected
eval "$(pyenv init --path)"
# shellcheck disable=SC2155
export PYENV_VERSION=$(
# shellcheck disable=SC1090 disable=SC1091
source "${SENTRY_ROOT}/scripts/lib.sh"
get-pyenv-version
)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the actual fix.

setup_virtualenv "$SENTRY_ROOT"
install_sentry_env_vars

Expand Down