File: build.yml

package info (click to toggle)
python-laspy 2.6.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,128 kB
  • sloc: python: 9,459; makefile: 20
file content (146 lines) | stat: -rw-r--r-- 3,617 bytes parent folder | download
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
name: Build

on:
  push:
    branches:
    - '*'
  pull_request:
    branches:
    - '*'
jobs:
  build:
    name: Python ${{ matrix.python-version }} - ${{ matrix.os }} - laz=${{ matrix.laz-backend }}

    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
        python-version: [ "3.10", "3.11", "3.12", "3.13" ]
        laz-backend: [ None, lazrs, laszip ]

    steps:
    - uses: actions/checkout@v4

    - uses: conda-incubator/setup-miniconda@v3
      with:
        python-version: ${{ matrix.python-version }}

    - shell: bash -l {0}
      run: |
        conda info
        conda list

    - name: Display Python version
      run: |
          python -c "import sys; print(sys.version)"

    - name: Install With LAZ backend
      if: matrix.laz-backend != 'None'
      run: pip install .[${{ matrix.laz-backend }},dev,pyproj,cli]

    - name: Install Without LAZ backend
      if: matrix.laz-backend == 'None'
      run: pip install .[dev,pyproj,cli]

    # Install dependencies which are optional
    # so that the tests corresponding to them runs.
    - name: Install Optional depencencies
      run: pip install requests rangehttpserver

    # Some crs tests require pdal
    - name: Install pdal
      if: matrix.python-version != '3.13'
      shell: bash -l {0}
      run: | 
        conda install -c conda-forge pdal "gdal<=3.8"
        pdal --version

    - name: Install pdal
      if: matrix.python-version == '3.13'
      shell: bash -l {0}
      run: | 
        conda install -c conda-forge pdal "gdal>=3.9"
        pdal --version

    - name: Run Tests
      shell: bash -l {0}
      run: |
        pytest -v


  # Check that we can import laspy in an environment that does
  # not have dev deps installed to make sure there are no wrong imports
  import:
    name: Python ${{ matrix.python-version }} - ${{ matrix.os }} - laz=${{ matrix.laz-backend }}

    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
        python-version: [ "3.13" ]
        laz-backend: [ None, lazrs, laszip ]

    steps:
      - uses: actions/checkout@v4

      - uses: conda-incubator/setup-miniconda@v3
        with:
          python-version: ${{ matrix.python-version }}

      - shell: bash -l {0}
        run: |
          conda info
          conda list

      - name: Display Python version
        run: |
          python -c "import sys; print(sys.version)"

      - name: Install With LAZ backend
        if: matrix.laz-backend != 'None'
        run: pip install .[${{ matrix.laz-backend }},pyproj,cli]

      - name: Install Without LAZ backend
        if: matrix.laz-backend == 'None'
        run: pip install .[pyproj,cli]

      - name: Import laspy
        run: |
          python -c "import laspy"

  linting:
    runs-on: ubuntu-latest

    steps:
      - name: Clone
        uses: actions/checkout@v4

      - name: Install black & isort
        run: |
          python3 -m pip install setuptools
          python3 -m pip install black==22.3.0 isort==5.11.5

      - name: Run black check
        run: python3 -m black --check .

      - name: Run isort check
        run: python3 -m isort --check laspy tests

  coverage:
    runs-on: ubuntu-latest

    steps:
      - name: Clone
        uses: actions/checkout@v4

      - name: Install
        run: |
          python3 -m pip install .[dev]

      - name: Run coverage
        run: |
          nox -s coverage
          coverage combine
          coverage report