-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
feat(ci): Optimizations for dev env workflow #29658
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,28 +4,25 @@ on: | |
| paths: | ||
| - '.pre-commit-config.yaml' | ||
| - 'Makefile' | ||
| - '.github/actions/*' | ||
| - '.github/actions/setup-python' | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We only use the |
||
| - '.github/workflows/development-environment.yml' | ||
| - '.envrc' | ||
| - 'Brewfile' | ||
| - 'scripts/*' | ||
| - 'src/sentry/runner/commands/devserver.py' | ||
| - 'src/sentry/runner/commands/devservices.py' | ||
| - 'requirements-*.txt' | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since I've deleted the python deps workflow. |
||
|
|
||
| jobs: | ||
| dev-environment: | ||
| name: dev docs set up | ||
| runs-on: ${{ matrix.os }} | ||
| timeout-minutes: 90 | ||
| timeout-minutes: 40 | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We don't fetch from Docker and it takes less than 15 minutes, thus, this should be plenty. |
||
| strategy: | ||
| matrix: | ||
| # Using Ubuntu 18 until I figure out this error: | ||
| # -> ImportError: libffi.so.6: cannot open shared object file: No such file or directory | ||
| os: [macos-11.0, ubuntu-18.04] | ||
| python-version: [3.8.12] | ||
| os: [macos-11.0, ubuntu-20.04] | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems that Ubuntu 20 magically works now :) |
||
| fail-fast: false | ||
| env: | ||
| PIP_DISABLE_PIP_VERSION_CHECK: on | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Dealt as part of the |
||
| # Make the environment more similar to what Mac defaults to | ||
| SHELL: /bin/zsh | ||
|
|
||
|
|
@@ -36,27 +33,14 @@ jobs: | |
| - name: Set variables for caches | ||
| id: info | ||
| run: | | ||
| echo "::set-output name=brew-cache-dir::$(brew --cache)" | ||
| echo "::set-output name=yarn-cache-dir::$(yarn cache dir)" | ||
|
|
||
| - name: Cache (brew) | ||
| uses: actions/cache@v2 | ||
| with: | ||
| path: ${{ steps.info.outputs.brew-cache-dir }} | ||
| key: devenv-${{ runner.os }}-brew-${{ hashFiles('Brewfile') }} | ||
| restore-keys: devenv-${{ runner.os }}-brew | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It was adding a couple of minutes. It's probably been growing indefinitely. |
||
|
|
||
| - name: Install prerequisites | ||
| # brew can be finicky but it does not always means that the rest of the job will fail | ||
| # Xcode CLI & brew are already installed, thus, no need to call xcode-select install | ||
| continue-on-error: true | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
| run: | | ||
| make prerequisites | ||
|
|
||
| - name: Setup Python ${{ matrix.python-version }} | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We don't use a matrix anymore. |
||
| - name: Setup Python | ||
| uses: ./.github/actions/setup-python | ||
| with: | ||
| python-version: ${{ matrix.python-version }} | ||
|
|
||
| - name: Cache (pyenv) | ||
| uses: actions/cache@v2 | ||
|
|
@@ -68,24 +52,27 @@ jobs: | |
| uses: actions/cache@v1 # We are explicitly using v1 due to perf reasons | ||
| with: | ||
| path: ${{ steps.info.outputs.yarn-cache-dir }} | ||
| key: devenv-${{ matrix.os }}-v2-yarn-${{ hashFiles('yarn.lock') }} | ||
| key: devenv-${{ matrix.os }}-v1-yarn-${{ hashFiles('yarn.lock') }} | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since we're using |
||
|
|
||
| - name: Set up development environment (mostly as per docs) | ||
| run: | | ||
| curl https://get.volta.sh | bash | ||
| export VOLTA_HOME="$HOME/.volta" | ||
| export PATH="$HOME/.volta/bin:$PATH" | ||
| make setup-pyenv | ||
| eval "$(pyenv init --path)" | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Using |
||
| [[ $(which python) != "${HOME}/.pyenv/shims/python" ]] | ||
| source ~/.zprofile | ||
| [[ $(which python) == "${HOME}/.pyenv/shims/python" ]] | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. After sourcing, we should be using the Python version from pyenv. |
||
| [[ $(python -V) == "Python $(cat .python-version)" ]] | ||
| python -m venv .venv | ||
| source .venv/bin/activate | ||
| make develop init-config | ||
| pre-commit | ||
|
|
||
| bootstrap-script: | ||
| runs-on: macos-11 | ||
| timeout-minutes: 90 | ||
| timeout-minutes: 40 | ||
| env: | ||
| PIP_DISABLE_PIP_VERSION_CHECK: on | ||
| # Make the environment more similar to what Mac defaults to | ||
| SHELL: /bin/zsh | ||
|
|
||
|
|
||
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -234,7 +234,11 @@ reset-db() { | |
| } | ||
|
|
||
| prerequisites() { | ||
| brew update -q && brew bundle -q | ||
| if [ -z "${CI+x}" ]; then | ||
| brew update -q && brew bundle -q | ||
| else | ||
| HOMEBREW_NO_AUTO_UPDATE=on brew install libxmlsec1 pyenv | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These are the minimum required packages on CI to get us to success. |
||
| fi | ||
| } | ||
|
|
||
| direnv-help() { | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is merged in the next step.