File: test.yml

package info (click to toggle)
rpy2 3.6.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,412 kB
  • sloc: python: 18,448; ansic: 492; makefile: 197; sh: 166
file content (129 lines) | stat: -rw-r--r-- 5,201 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
name: Build, install, and test wheels.

on:
  workflow_call:
    inputs:
      python-version:
        required: true
        type: string
      r-version:
        required: true
        type: string
      os:
        required: true
        type: string
jobs:
  test:
    runs-on: ${{ inputs.os }}
    continue-on-error: ${{ startsWith(inputs.os, 'windows') && inputs.r-version == 'release' }}
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python ${{ inputs.python-version }}
      uses: actions/setup-python@v4
      with:
        python-version: ${{ inputs.python-version }}
    - name: Set up R ${{ inputs.r-version }}
      uses: r-lib/actions/setup-r@v2
      with:
        r-version: ${{ inputs.r-version }}
        use-public-rspm: true
    - name: Set virtualenv activation command (Windows)
      if: startsWith(inputs.os, 'windows')
      shell: bash
      run: |
        echo "VENV_ACTIVATE=pyenv_base/Scripts/activate" >> $GITHUB_ENV
        echo "R_LIBRARY=''" >> $GITHUB_ENV
        echo "R_HOME=$(R RHOME)" >> $GITHUB_ENV
    - name: Set virtualenv activation command (POSIX)
      if: "!startsWith(inputs.os, 'windows')"
      run: |
        echo "VENV_ACTIVATE=source pyenv_base/bin/activate" >> $GITHUB_ENV
        echo "R_LIBRARY=export LD_LIBRARY_PATH=$(python -m rpy2.situation LD_LIBRARY_PATH)" >> $GITHUB_ENV
    - name: Create base virtualenv
      run: |
        python -m venv pyenv_base
        ${{ env.VENV_ACTIVATE }}
        python -m  pip install -U pip wheel
    - uses: actions/download-artifact@v4.1.7
      with:
        pattern: rpy2-rinterface-${{ inputs.os }}-py${{ inputs.python-version }}-r${{ inputs.r-version }}
        path: rpy2-rinterface/dist/
    - uses: actions/download-artifact@v4.1.7
      with:
        pattern: rpy2-robjects-${{ inputs.os }}
        path: rpy2-robjects/dist/
    - name: Built package path.
      shell: bash
      run: |
        ls rpy2-rinterface/dist/rpy2-rinterface-${{ inputs.os }}-py${{ inputs.python-version }}-r${{ inputs.r-version }}/*.whl
        ls rpy2-rinterface/dist/
        echo "RPY2_RINTERFACE_WHL_DIST=$(ls -1 rpy2-rinterface/dist/rpy2-rinterface-${{ inputs.os }}-py${{ inputs.python-version }}-r${{ inputs.r-version }}/*.whl | tail -n 1)" >> $GITHUB_ENV
        echo "RPY2_ROBJECTS_WHL_DIST=$(ls -1 rpy2-robjects/dist/rpy2-robjects-${{ inputs.os }}/*.whl | tail -n 1)" >> $GITHUB_ENV
    - name: Install package
      run: |
        ${{ env.VENV_ACTIVATE }}
        pip install ${{ env.RPY2_RINTERFACE_WHL_DIST }}
        pip install --pre ${{ env.RPY2_ROBJECTS_WHL_DIST }}
        python -m rpy2.situation
    - name: Set R_LIBRARY (Windows)
      if: startsWith(inputs.os, 'windows')
      run: |
        ${{ env.VENV_ACTIVATE }}
        echo "R_LIBRARY=''" >> $GITHUB_ENV
    - name: Set R_LIBRARY (POSIX)
      if: "!startsWith(inputs.os, 'windows')"
      run: |
        ${{ env.VENV_ACTIVATE }}
        echo "R_LIBRARY=export LD_LIBRARY_PATH=$(python -m rpy2.situation LD_LIBRARY_PATH):${LD_LIBRARY_PATH}" >> $GITHUB_ENV
    - name: Test with minimal dependencies
      run: |
        ${{ env.VENV_ACTIVATE }}
        echo "With requirements for rpy2-rinterface."
        python3 -m pip install --pre ${{ env.RPY2_RINTERFACE_WHL_DIST }}'[test]'
        ${{ env.R_LIBRARY }}
        python -c 'from rpy2.rinterface_lib import openrlib; print(openrlib.cffi_mode)'
        bash -e ./scripts/run_test_rinterface_min_deps.sh
        echo "With dev for rpy2-robjects."
        python3 -m pip install --pre ${{ env.RPY2_ROBJECTS_WHL_DIST }}'[test_minimal]'
        bash -e ./scripts/run_test_robjects_min_deps.sh
    - name: Test with numpy
      run: |
        ${{ env.VENV_ACTIVATE }}
        python -m pip install --pre ${{ env.RPY2_ROBJECTS_WHL_DIST}}'[numpy]'
        ${{ env.R_LIBRARY }}
        bash -e ./scripts/run_test_numpy.sh
    - name: Test with pandas
      run: |
        ${{ env.VENV_ACTIVATE }}
        python -m pip install --pre ${{ env.RPY2_ROBJECTS_WHL_DIST}}'[pandas]'
        ${{ env.R_LIBRARY }}
        bash -e ./scripts/run_test_pandas.sh
    - name: Test with ipython
      run: |
        ${{ env.VENV_ACTIVATE }}
        python -m pip install --pre ${{ env.RPY2_ROBJECTS_WHL_DIST}}'[test]'
        ${{ env.R_LIBRARY }}
        bash -e ./scripts/run_test_ipython.sh
    - name: Set RSPM
      if: startsWith(inputs.os, 'ubuntu')
      run: |
        echo "RSPM=\"https://packagemanager.rstudio.com/cran/__linux__/$(lsb_release -sc)/latest\"" >> $GITHUB_ENV
    - name: Install R dependencies
      run: |
        install.packages(c("ggplot2", "dplyr", "tidyr", "dbplyr", "lazyeval", "rlang"))
      shell: Rscript {0}
    - name: Test with R deps
      if: "!startsWith(inputs.os, 'windows')"
      run: |
        ${{ env.VENV_ACTIVATE }}
        ${{ env.R_LIBRARY }}
        bash -e ./scripts/run_test_rdeps.sh
    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v4.6.0
      if: inputs.os == 'ubuntu-22.04' && inputs.python-version == '3.10' && inputs.r-version == 'release'
      env:
        OS: ${{ runner.os }}
        PYTHON: ${{ inputs.python-version }}
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        env_vars: OS,PYTHON