@@ -60,14 +60,107 @@ jobs:
60
60
QINIU_UPLOAD_CALLBACK_URL : ${{secrets.QINIU_UPLOAD_CALLBACK_URL}}
61
61
QINIU_TEST_ENV : " travis"
62
62
MOCK_SERVER_ADDRESS : " http://127.0.0.1:9000"
63
- PYTHONPATH : " $PYTHONPATH:."
64
63
run : |
65
64
flake8 --show-source --max-line-length=160 ./qiniu
66
- coverage run -m pytest ./test_qiniu.py ./tests/cases
67
- ocular --data-file .coverage
68
- codecov
65
+ python -m pytest ./test_qiniu.py tests --cov qiniu --cov-report=xml
66
+ - name : Post Setup mock server
67
+ if : ${{ always() }}
68
+ shell : bash
69
+ run : |
70
+ set +e
69
71
cat mock-server.pid | xargs kill
72
+ rm mock-server.pid
70
73
- name : Print mock server log
71
74
if : ${{ failure() }}
72
75
run : |
73
76
cat py-mock-server.log
77
+ - name : Upload results to Codecov
78
+ uses : codecov/codecov-action@v4
79
+ with :
80
+ token : ${{ secrets.CODECOV_TOKEN }}
81
+ test-win :
82
+ strategy :
83
+ fail-fast : false
84
+ max-parallel : 1
85
+ matrix :
86
+ python_version : ['2.7', '3.5', '3.9']
87
+ runs-on : windows-2019
88
+ # make sure only one test running,
89
+ # remove this when cases could run in parallel.
90
+ needs : test
91
+ steps :
92
+ - name : Checkout repo
93
+ uses : actions/checkout@v2
94
+ with :
95
+ ref : ${{ github.ref }}
96
+ - name : Setup miniconda
97
+ uses : conda-incubator/setup-miniconda@v2
98
+ with :
99
+ auto-update-conda : true
100
+ channels : conda-forge
101
+ python-version : ${{ matrix.python_version }}
102
+ activate-environment : qiniu-sdk
103
+ auto-activate-base : false
104
+ - name : Setup pip
105
+ env :
106
+ PYTHON_VERSION : ${{ matrix.python_version }}
107
+ PIP_BOOTSTRAP_SCRIPT_PREFIX : https://bootstrap.pypa.io/pip
108
+ run : |
109
+ # reinstall pip by some python(<3.7) not compatible
110
+ $pyversion = [Version]"$ENV:PYTHON_VERSION"
111
+ if ($pyversion -lt [Version]"3.7") {
112
+ Invoke-WebRequest "$ENV:PIP_BOOTSTRAP_SCRIPT_PREFIX/$($pyversion.Major).$($pyversion.Minor)/get-pip.py" -OutFile "$ENV:TEMP\get-pip.py"
113
+ python $ENV:TEMP\get-pip.py --user
114
+ Remove-Item -Path "$ENV:TEMP\get-pip.py"
115
+ }
116
+ - name : Install dependencies
117
+ run : |
118
+ python -m pip install --upgrade pip
119
+ python -m pip install -I -e ".[dev]"
120
+ - name : Run cases
121
+ env :
122
+ QINIU_ACCESS_KEY : ${{ secrets.QINIU_ACCESS_KEY }}
123
+ QINIU_SECRET_KEY : ${{ secrets.QINIU_SECRET_KEY }}
124
+ QINIU_TEST_BUCKET : ${{ secrets.QINIU_TEST_BUCKET }}
125
+ QINIU_TEST_NO_ACC_BUCKET : ${{ secrets.QINIU_TEST_NO_ACC_BUCKET }}
126
+ QINIU_TEST_DOMAIN : ${{ secrets.QINIU_TEST_DOMAIN }}
127
+ QINIU_UPLOAD_CALLBACK_URL : ${{secrets.QINIU_UPLOAD_CALLBACK_URL}}
128
+ QINIU_TEST_ENV : " github"
129
+ MOCK_SERVER_ADDRESS : " http://127.0.0.1:9000"
130
+ PYTHONPATH : " $PYTHONPATH:."
131
+ run : |
132
+ Write-Host "======== Setup Mock Server ========="
133
+ conda create -y -n mock-server python=3.10
134
+ conda activate mock-server
135
+ python --version
136
+ $processOptions = @{
137
+ FilePath="python"
138
+ ArgumentList="tests\mock_server\main.py", "--port", "9000"
139
+ PassThru=$true
140
+ RedirectStandardOutput="py-mock-server.log"
141
+ }
142
+ $mocksrvp = Start-Process @processOptions
143
+ $mocksrvp.Id | Out-File -FilePath "mock-server.pid"
144
+ conda deactivate
145
+ Sleep 3
146
+ Write-Host "======== Running Test ========="
147
+ python --version
148
+ python -m pytest ./test_qiniu.py tests --cov qiniu --cov-report=xml
149
+ - name : Post Setup mock server
150
+ if : ${{ always() }}
151
+ run : |
152
+ Try {
153
+ $mocksrvpid = Get-Content -Path "mock-server.pid"
154
+ Stop-Process -Id $mocksrvpid
155
+ Remove-Item -Path "mock-server.pid"
156
+ } Catch {
157
+ Write-Host -Object $_
158
+ }
159
+ - name : Print mock server log
160
+ if : ${{ failure() }}
161
+ run : |
162
+ Get-Content -Path "py-mock-server.log" | Write-Host
163
+ - name : Upload results to Codecov
164
+ uses : codecov/codecov-action@v4
165
+ with :
166
+ token : ${{ secrets.CODECOV_TOKEN }}
0 commit comments