name: dev env
on:
  pull_request:
    paths:
      - '.pre-commit-config.yaml'
      - 'Makefile'
      - '.github/workflows/development-environment.yml'
      - 'requirements-*.txt'
      - '.python-version'
      - '.envrc'
      - 'Brewfile'
      - 'scripts/**'
      - 'tools/**'
      - 'src/sentry/runner/commands/devserver.py'
      - 'src/sentry/runner/commands/devservices.py'
      - 'bin/load-mocks'

# Cancel in progress workflows on pull_requests.
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value
concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

# hack for https://github.com/actions/cache/issues/810#issuecomment-1222550359
env:
  SEGMENT_DOWNLOAD_TIMEOUT_MINS: 3

jobs:
  test:
    runs-on: ubuntu-22.04
    timeout-minutes: 5
    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
      - uses: getsentry/action-setup-venv@a133e6fd5fa6abd3f590a1c106abda344f5df69f # v2.1.0
        with:
          python-version: 3.11.8
          cache-dependency-path: |
            requirements-dev.txt
            requirements-dev-frozen.txt
          install-cmd: python3 -m tools.hack_pip && pip install -r requirements-dev.txt -c requirements-dev-frozen.txt
      - name: test-tools
        run: make test-tools
      - name: Handle artifacts
        uses: ./.github/actions/artifacts
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          commit_sha: ${{ github.event.pull_request.head.sha }}
  devenv:
    runs-on: ubuntu-22.04
    timeout-minutes: 5
    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
      - uses: getsentry/action-setup-venv@a133e6fd5fa6abd3f590a1c106abda344f5df69f # v2.1.0
        with:
          python-version: 3.11.8
          cache-dependency-path: |
            requirements-dev.txt
            requirements-dev-frozen.txt
          install-cmd: python3 -m tools.hack_pip && pip install -r requirements-dev.txt -c requirements-dev-frozen.txt
      - name: devenv sync
        run: |
          devenv --nocoderoot sync