@@ -60,14 +60,107 @@ jobs:
6060 QINIU_UPLOAD_CALLBACK_URL : ${{secrets.QINIU_UPLOAD_CALLBACK_URL}}
6161 QINIU_TEST_ENV : " travis"
6262 MOCK_SERVER_ADDRESS : " http://127.0.0.1:9000"
63- PYTHONPATH : " $PYTHONPATH:."
6463 run : |
6564 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
6971 cat mock-server.pid | xargs kill
72+ rm mock-server.pid
7073 - name : Print mock server log
7174 if : ${{ failure() }}
7275 run : |
7376 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