summaryrefslogtreecommitdiffstats
path: root/.github/workflows/codspeed.yml
blob: fcc7ed3fbcdaaa5954189272309b28fbc52c02ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
name: codspeed

on:
  push:
    branches:
      - "master"
  pull_request:
  # `workflow_dispatch` allows CodSpeed to trigger backtest
  # performance analysis in order to generate initial data.
  workflow_dispatch:

jobs:
  benchmarks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v3
        with:
          python-version: "3.9"

      - name: Get full Python version
        id: full-python-version
        run: |
          echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")

      - name: Install poetry
        run: |
          curl -fsS https://install.python-poetry.org | python - -y

      - name: Update PATH
        if: ${{ matrix.os != 'Windows' }}
        run: echo "$HOME/.local/bin" >> $GITHUB_PATH

      - name: Configure poetry
        run: poetry config virtualenvs.create false

      - name: Install dependencies
        run: poetry install --only test --only benchmark --only build -vvv --no-root

      - name: Install project
        run: poetry install --only test --only benchmark --only build -vvv --no-root

      - name: Install pendulum and check extensions
        run: |
          poetry run pip install -e . -vvv
          python -c 'import pendulum._pendulum'

      - name: Run benchmarks
        uses: CodSpeedHQ/action@v1
        with:
          token: ${{ secrets.CODSPEED_TOKEN }}
          run: pytest tests/ --codspeed