diff --git a/.ci/pipeline/ci.yml b/.ci/pipeline/ci.yml index 2472054108..3e761c79bc 100644 --- a/.ci/pipeline/ci.yml +++ b/.ci/pipeline/ci.yml @@ -48,20 +48,7 @@ jobs: pool: vmImage: 'ubuntu-22.04' steps: - - script: | - echo "##vso[task.setvariable variable=ISORT_VERSION]$(grep -zoP '(?<=isort\n rev: ).*' .pre-commit-config.yaml)" - echo "##vso[task.setvariable variable=BLACK_VERSION]$(grep -zoP '(?<=black\n rev: ).*' .pre-commit-config.yaml)" - echo "##vso[task.setvariable variable=PYTHON_LINT_VERSION]$(grep -oP -m 1 '(?<=python).*' .pre-commit-config.yaml)" - displayName: 'Collect lint versions' - - task: UsePythonVersion@0 - inputs: - versionSpec: $(PYTHON_LINT_VERSION) - addToPath: true - - script: | - python -m pip install --upgrade pip setuptools - pip install isort==${ISORT_VERSION} black[jupyter]==${BLACK_VERSION} - isort --profile black --check . && black --check . - displayName: 'Linting' + - template: linting.yml - job: LinuxCondaRecipe dependsOn: Lint timeoutInMinutes: 120 @@ -73,19 +60,7 @@ jobs: pool: vmImage: 'ubuntu-22.04' steps: - - script: | - conda config --add channels conda-forge - conda config --set channel_priority strict - conda update -y -q --all - displayName: "Conda update" - - script: | - conda create -y -q -n build-env conda-build conda-verify - displayName: "Conda create" - - script: | - . /usr/share/miniconda/etc/profile.d/conda.sh - conda activate build-env - conda build . --python $(PYTHON_VERSION) --numpy $(NUMPY_VERSION) - displayName: "Conda build and test" + - template: conda-recipe-lnx.yml - job: WindowsCondaRecipe dependsOn: Lint timeoutInMinutes: 120 @@ -97,20 +72,7 @@ jobs: pool: vmImage: 'windows-2022' steps: - - powershell: Write-Host "##vso[task.prependpath]$env:CONDA\Scripts" - displayName: Add conda to PATH - - script: | - conda config --add channels conda-forge - conda config --set channel_priority strict - conda update -y -q --all - displayName: "Conda update" - - script: | - conda create -y -q -n build-env conda-build conda-verify - displayName: "Conda create" - - script: | - call activate build-env - conda build . --python $(PYTHON_VERSION) --numpy $(NUMPY_VERSION) - displayName: "Conda build and test" + - template: conda-recipe-win.yml - job: LinuxCondaEnv dependsOn: Lint timeoutInMinutes: 120 diff --git a/.ci/pipeline/conda-recipe-lnx.yml b/.ci/pipeline/conda-recipe-lnx.yml new file mode 100644 index 0000000000..e272f4439f --- /dev/null +++ b/.ci/pipeline/conda-recipe-lnx.yml @@ -0,0 +1,29 @@ +#=============================================================================== +# Copyright contributors to the oneDAL project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#=============================================================================== +steps: + - script: | + conda config --add channels conda-forge + conda config --set channel_priority strict + conda update -y -q --all + displayName: "Conda update" + - script: | + conda create -y -q -n build-env conda-build conda-verify + displayName: "Conda create" + - script: | + . /usr/share/miniconda/etc/profile.d/conda.sh + conda activate build-env + conda build . --python $(PYTHON_VERSION) --numpy $(NUMPY_VERSION) + displayName: "Conda build and test" diff --git a/.ci/pipeline/conda-recipe-win.yml b/.ci/pipeline/conda-recipe-win.yml new file mode 100644 index 0000000000..6abeaa4309 --- /dev/null +++ b/.ci/pipeline/conda-recipe-win.yml @@ -0,0 +1,30 @@ +#=============================================================================== +# Copyright contributors to the oneDAL project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#=============================================================================== +steps: + - powershell: Write-Host "##vso[task.prependpath]$env:CONDA\Scripts" + displayName: Add conda to PATH + - script: | + conda config --add channels conda-forge + conda config --set channel_priority strict + conda update -y -q --all + displayName: "Conda update" + - script: | + conda create -y -q -n build-env conda-build conda-verify + displayName: "Conda create" + - script: | + call activate build-env + conda build . --python $(PYTHON_VERSION) --numpy $(NUMPY_VERSION) + displayName: "Conda build and test" diff --git a/.ci/pipeline/linting.yml b/.ci/pipeline/linting.yml new file mode 100644 index 0000000000..f303f7f9db --- /dev/null +++ b/.ci/pipeline/linting.yml @@ -0,0 +1,21 @@ +#=============================================================================== +# Copyright contributors to the oneDAL project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#=============================================================================== +steps: + - script: | + python -m pip install --upgrade pip pre-commit==4.0.1 + pre-commit install + pre-commit run --all-files --show-diff-on-failure + displayName: 'Linting'