File: python.yml

package info (click to toggle)
xrootd 5.9.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 25,956 kB
  • sloc: cpp: 244,425; sh: 2,691; python: 1,980; ansic: 1,027; perl: 814; makefile: 272
file content (75 lines) | stat: -rw-r--r-- 1,874 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
name: Python

permissions:
  contents: read

on:
  push:
    paths:
      - setup.py
      - pyproject.toml
      - 'bindings/**'
    tags-ignore:
  pull_request:
    paths:
      - setup.py
      - pyproject.toml
      - 'bindings/**'
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  manylinux:
    name: Python
    runs-on: ubuntu-latest
    container: quay.io/pypa/manylinux_2_28_x86_64

    strategy:
      matrix:
        version: [ "3.8", "3.9", "3.10", "3.11", "3.12", "3.13" ]

    env:
      PYTHON: python${{ matrix.version }}

    steps:
    - name: Install dependencies
      run: dnf install -y git krb5-devel libuuid-devel openssl-devel

    - name: Clone repository
      uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Build source distribution tarball
      run: |
        git config --global --add safe.directory "$GITHUB_WORKSPACE"
        ./genversion.sh --sanitize >| VERSION
        ${PYTHON} -m build --sdist

    - name: Build binary wheel
      run: ${PYTHON} -m pip wheel --use-pep517 --verbose dist/*.tar.gz

    - name: Install binary wheel
      run: ${PYTHON} -m pip install xrootd*.whl

    - name: Run post-installation tests
      run: |
        command -v ${PYTHON} && ${PYTHON} --version
        ${PYTHON} -m pip show xrootd
        ${PYTHON} -c 'import XRootD; print(XRootD)'
        ${PYTHON} -c 'import pyxrootd; print(pyxrootd)'
        ${PYTHON} -c 'from XRootD import client; help(client)'
        ${PYTHON} -c 'from XRootD import client; print(client.FileSystem("root://localhost"))'

    - name: Move binary wheels to artifact directory
      run: mv *.whl dist/

    - name: Upload Artifacts
      uses: actions/upload-artifact@v4
      with:
        name: python-${{ matrix.version }}
        path: dist
        retention-days: 14