-
Notifications
You must be signed in to change notification settings - Fork 98
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #11 from nexB/add-ci-config
Add CI config
- Loading branch information
Showing
7 changed files
with
279 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Set configure.bat's line ending to CRLF. Sometimes batch scripts don't work | ||
# properly on Windows if the line ending is LF and not CRLF | ||
configure.bat eol=crlf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
|
||
################################################################################ | ||
# We use Azure to run the full tests suites on Python 3.6 | ||
# on Windows (32 and 64), macOS and Linux (64 various distro) | ||
################################################################################ | ||
|
||
jobs: | ||
|
||
################################################################################ | ||
# These jobs are using VMs and Azure-provided Python 3.6 | ||
################################################################################ | ||
|
||
- template: etc/ci/azure-linux.yml | ||
parameters: | ||
job_name: ubuntu18_py36 | ||
image_name: ubuntu-18.04 | ||
python_versions: ['3.6'] | ||
test_suites: | ||
all: tmp/bin/pytest -n 2 -vvs | ||
|
||
- template: etc/ci/azure-mac.yml | ||
parameters: | ||
job_name: macos1015_py36 | ||
image_name: macos-10.15 | ||
python_versions: ['3.6'] | ||
test_suites: | ||
all: tmp/bin/pytest -n 2 -vvs | ||
|
||
- template: etc/ci/azure-win.yml | ||
parameters: | ||
job_name: win2019_32_py36 | ||
image_name: windows-2019 | ||
python_versions: ['3.6'] | ||
python_architecture: x86 | ||
test_suites: | ||
all: tmp\Scripts\pytest -vvs | ||
|
||
- template: etc/ci/azure-win.yml | ||
parameters: | ||
job_name: win2019_64_py36 | ||
image_name: windows-2019 | ||
python_versions: ['3.6'] | ||
python_architecture: x64 | ||
test_suites: | ||
all: tmp\Scripts\pytest -vvs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
@echo OFF | ||
@setlocal | ||
@rem Copyright (c) nexB Inc. http://www.nexb.com/ - All rights reserved. | ||
|
||
@rem ################################ | ||
@rem # A configuration script for Windows | ||
@rem # | ||
@rem # The options and (optional) arguments are: | ||
@rem # --clean : this is exclusive of anything else and cleans the environment | ||
@rem # from built and installed files | ||
@rem # | ||
@rem # --python < path to python.exe> : this must be the first argument and set | ||
@rem # the path to the Python executable to use. If < path to python.exe> is | ||
@rem # set to "path", then the executable will be the python.exe available | ||
@rem # in the PATH. | ||
@rem ################################ | ||
|
||
@rem Current directory where this .bat files lives | ||
set CFG_ROOT_DIR=%~dp0 | ||
@rem path where a configured Python should live in the current virtualenv if installed | ||
set CONFIGURED_PYTHON=%CFG_ROOT_DIR%tmp\Scripts\python.exe | ||
set PYTHON_EXECUTABLE= | ||
|
||
|
||
@rem parse command line options and arguments | ||
:collectopts | ||
if "%1" EQU "--help" (goto cli_help) | ||
if "%1" EQU "--clean" (call rmdir /s /q "%CFG_ROOT_DIR%tmp") && call exit /b | ||
if "%1" EQU "--python" (set PROVIDED_PYTHON=%~2) && shift && shift && goto collectopts | ||
|
||
@rem If we have a pre-configured Python in our virtualenv, reuse this as-is and run | ||
if exist ""%CONFIGURED_PYTHON%"" ( | ||
set PYTHON_EXECUTABLE=%CONFIGURED_PYTHON% | ||
goto run | ||
) | ||
|
||
@rem If we have a command arg for Python use this as-is | ||
if ""%PROVIDED_PYTHON%""==""path"" ( | ||
@rem use a bare python available in the PATH | ||
set PYTHON_EXECUTABLE=python | ||
goto run | ||
) | ||
if exist ""%PROVIDED_PYTHON%"" ( | ||
set PYTHON_EXECUTABLE=%PROVIDED_PYTHON% | ||
goto run | ||
) | ||
|
||
|
||
@rem otherwise we search for a suitable Python interpreter | ||
:find_python | ||
@rem First check the existence of the "py" launcher (available in Python 3) | ||
@rem if we have it, check if we have a py -3 installed with the good version or a py 2.7 | ||
@rem if not, check if we have an old py 2.7 | ||
@rem exist if all fails | ||
|
||
where py >nul 2>nul | ||
if %ERRORLEVEL% == 0 ( | ||
@rem we have a py launcher, check for the availability of our required Python 3 version | ||
py -3.6 --version >nul 2>nul | ||
if %ERRORLEVEL% == 0 ( | ||
set PYTHON_EXECUTABLE=py -3.6 | ||
) else ( | ||
@rem we have no required python 3, let's try python 2: | ||
py -2 --version >nul 2>nul | ||
if %ERRORLEVEL% == 0 ( | ||
set PYTHON_EXECUTABLE=py -2 | ||
) else ( | ||
@rem we have py and no python 3 and 2, exit | ||
echo * Unable to find an installation of Python. | ||
exit /b 1 | ||
) | ||
) | ||
) else ( | ||
@rem we have no py launcher, check for a default Python 2 installation | ||
if not exist ""%DEFAULT_PYTHON2%"" ( | ||
echo * Unable to find an installation of Python. | ||
exit /b 1 | ||
) else ( | ||
set PYTHON_EXECUTABLE=%DEFAULT_PYTHON2% | ||
) | ||
) | ||
|
||
|
||
:run | ||
@rem without this things may not always work on Windows 10, but this makes things slower | ||
set PYTHONDONTWRITEBYTECODE=1 | ||
|
||
call mkdir "%CFG_ROOT_DIR%tmp" | ||
call curl -o "%CFG_ROOT_DIR%tmp\virtualenv.pyz" https://bootstrap.pypa.io/virtualenv.pyz | ||
call %PYTHON_EXECUTABLE% "%CFG_ROOT_DIR%tmp\virtualenv.pyz" "%CFG_ROOT_DIR%tmp" | ||
call "%CFG_ROOT_DIR%tmp\Scripts\activate" | ||
call "%CFG_ROOT_DIR%tmp\Scripts\pip" install --upgrade pip virtualenv setuptools wheel | ||
call "%CFG_ROOT_DIR%tmp\Scripts\pip" install -e .[testing] | ||
|
||
@rem Return a proper return code on failure | ||
if %ERRORLEVEL% neq 0 ( | ||
exit /b %ERRORLEVEL% | ||
) | ||
endlocal | ||
goto activate | ||
|
||
|
||
:cli_help | ||
echo A configuration script for Windows | ||
echo usage: configure [options] [path/to/config/directory] | ||
echo. | ||
echo The options and arguments are: | ||
echo --clean : this is exclusive of anything else and cleans the environment | ||
echo from built and installed files | ||
echo. | ||
echo --python path/to/python.exe : this is set to the path of an alternative | ||
echo Python executable to use. If path/to/python.exe is set to "path", | ||
echo then the executable will be the python.exe available in the PATH. | ||
echo. | ||
|
||
|
||
:activate | ||
@rem Activate the virtualenv | ||
if exist "%CFG_ROOT_DIR%tmp\Scripts\activate" ( | ||
"%CFG_ROOT_DIR%tmp\Scripts\activate" | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
parameters: | ||
job_name: '' | ||
image_name: '' | ||
python_versions: [] | ||
test_suites: {} | ||
python_architecture: x64 | ||
|
||
jobs: | ||
- job: ${{ parameters.job_name }} | ||
|
||
pool: | ||
vmImage: ${{ parameters.image_name }} | ||
|
||
strategy: | ||
matrix: | ||
${{ each pyver in parameters.python_versions }}: | ||
${{ each tsuite in parameters.test_suites }}: | ||
${{ format('py{0} {1}', pyver, tsuite.key) }}: | ||
python_version: ${{ pyver }} | ||
test_suite_label: ${{ tsuite.key }} | ||
test_suite: ${{ tsuite.value }} | ||
steps: | ||
- checkout: self | ||
fetchDepth: 10 | ||
|
||
- task: UsePythonVersion@0 | ||
inputs: | ||
versionSpec: '$(python_version)' | ||
architecture: '${{ parameters.python_architecture }}' | ||
displayName: 'Install Python $(python_version)' | ||
|
||
- script: ./configure | ||
displayName: 'Run Configure' | ||
|
||
- script: $(test_suite) | ||
displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
parameters: | ||
job_name: '' | ||
image_name: '' | ||
python_versions: [] | ||
test_suites: {} | ||
python_architecture: x64 | ||
|
||
jobs: | ||
- job: ${{ parameters.job_name }} | ||
|
||
pool: | ||
vmImage: ${{ parameters.image_name }} | ||
|
||
strategy: | ||
matrix: | ||
${{ each pyver in parameters.python_versions }}: | ||
${{ each tsuite in parameters.test_suites }}: | ||
${{ format('py{0} {1}', pyver, tsuite.key) }}: | ||
python_version: ${{ pyver }} | ||
test_suite_label: ${{ tsuite.key }} | ||
test_suite: ${{ tsuite.value }} | ||
steps: | ||
- checkout: self | ||
fetchDepth: 10 | ||
|
||
- task: UsePythonVersion@0 | ||
inputs: | ||
versionSpec: '$(python_version)' | ||
architecture: '${{ parameters.python_architecture }}' | ||
displayName: 'Install Python $(python_version)' | ||
|
||
- script: ./configure | ||
displayName: 'Run Configure' | ||
|
||
- script: $(test_suite) | ||
displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
parameters: | ||
job_name: '' | ||
image_name: '' | ||
python_versions: [] | ||
test_suites: {} | ||
python_architecture: x86 | ||
|
||
jobs: | ||
- job: ${{ parameters.job_name }} | ||
|
||
pool: | ||
vmImage: ${{ parameters.image_name }} | ||
|
||
strategy: | ||
matrix: | ||
${{ each pyver in parameters.python_versions }}: | ||
${{ each tsuite in parameters.test_suites }}: | ||
${{ format('py{0} {1}', pyver, tsuite.key) }}: | ||
python_version: ${{ pyver }} | ||
test_suite_label: ${{ tsuite.key }} | ||
test_suite: ${{ tsuite.value }} | ||
steps: | ||
- checkout: self | ||
fetchDepth: 10 | ||
|
||
- task: UsePythonVersion@0 | ||
inputs: | ||
versionSpec: '$(python_version)' | ||
architecture: '${{ parameters.python_architecture }}' | ||
displayName: 'Install Python $(python_version)' | ||
|
||
- script: configure --python path | ||
displayName: 'Run Configure' | ||
|
||
- script: $(test_suite) | ||
displayName: 'Run $(test_suite_label) tests with py$(python_version) on ${{ parameters.job_name }}' |