aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar scragly <[email protected]>2019-04-19 09:52:52 +1000
committerGravatar GitHub <[email protected]>2019-04-19 09:52:52 +1000
commit88b843be6dbe3e43f913c4fefa65e07e560474c7 (patch)
treedb668cccb6f000e32397f601167467f968f751a2
parentMerge pull request #212 from python-discord/api/split-viewsets (diff)
Remove multi-version, use lock and publish lint.
-rw-r--r--azure-pipelines.yml229
1 files changed, 96 insertions, 133 deletions
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 398b4797..dde9f574 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -1,136 +1,99 @@
# https://aka.ms/yaml
jobs:
- - job: lint_misc
- displayName: Lint others
- pool:
- vmImage: ubuntu-16.04
-
- steps:
- - script: |
- set -eux
-
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update
- sudo apt-get install docker-ce
- displayName: install docker
-
- - script: docker run -v $(pwd):/app:ro --rm ruby:alpine /bin/ash -c "gem install mdl && cd /app && mdl"
- displayName: run markdownlint
-
- - script: docker run -i hadolint/hadolint hadolint --ignore DL3008 --ignore DL3013 --ignore DL3018 --ignore DL3019 - < docker/app/Dockerfile
- displayName: run hadolint
-
- - job: lint_python
- displayName: Lint Python
- pool:
- vmImage: ubuntu-16.04
-
- strategy:
- matrix:
- Python 3.6:
- python.version: 3.6
- Python 3.7:
- python.version: 3.7
-
- variables:
- PIP_CACHE_DIR: .cache/pip
-
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: $(python.version)
- architecture: x64
-
- - script: >
- python -m pip install $(grep -E '^(coverage|flake8|mccabe|pep8-naming)' Pipfile | cut -d' ' -f1)
- displayName: install lint requirements
-
- - script: flake8
- displayName: lint using flake8
-
- - job: test
- displayName: Test
- dependsOn:
- - lint_misc
- - lint_python
- pool:
- vmImage: ubuntu-16.04
- strategy:
- matrix:
- Python 3.6 with PostgreSQL 10:
- python.version: 3.6
- postgres.version: 10
- Python 3.6 with PostgreSQL 11:
- python.version: 3.6
- postgres.version: 11
- Python 3.7 with PostgreSQL 10:
- python.version: 3.7
- postgres.version: 10
- Python 3.7 with PostgreSQL 11:
- python.version: 3.7
- postgres.version: 11
-
- steps:
- - task: UsePythonVersion@0
- inputs:
- versionSpec: $(python.version)
- architecture: x64
-
- - script: |
- curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- sudo apt-get update -y
- sudo apt-get install -y postgresql-$(postgres.version)
- displayName: install postgresql
-
- - script: |
- echo "$USER_CREATE_COMMAND;" > pgscript.sql
- echo "CREATE DATABASE pysite OWNER pysite;" >> pgscript.sql
- sudo su postgres -c "psql < pgscript.sql"
- env:
- USER_CREATE_COMMAND: CREATE USER pysite WITH PASSWORD 'pysite' CREATEDB
- displayName: set up the database
-
- - script: python -m pip install pipenv && python -m pipenv install --dev --system
- displayName: install requirements
-
- - script: |
- python manage.py migrate
- coverage run --branch manage.py test --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner --no-input
- env:
- CI: azure
- DATABASE_URL: postgres://pysite:pysite@localhost/pysite
- displayName: run tests
-
- - script: coverage report
- displayName: show coverage results
-
- - task: PublishTestResults@2
- inputs:
- testResultsFiles: "**/TEST-*.xml"
- testRunTitle: 'Python $(python.version) with PostgreSQL $(postgres.version)'
-
- - job: push_image
- displayName: Push Docker image
- dependsOn: test
- condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/django'))
- pool:
- vmImage: ubuntu-16.04
-
- steps:
- - task: Docker@1
- displayName: Login to Docker Hub
-
- inputs:
- containerregistrytype: 'Container Registry'
- dockerRegistryEndpoint: 'DockerHub'
- command: 'login'
-
- - script: |
- docker build -t pythondiscord/django:latest docker/app/Dockerfile
- docker push pythondiscord/django:latest
- displayName: Build and push the image
-
-# vim: sw=2 ts=2:
+- job: lint
+ displayName: Lint
+ pool:
+ vmImage: ubuntu-16.04
+
+ variables:
+ PIP_CACHE_DIR: .cache/pip
+
+ steps:
+ - task: UsePythonVersion@0
+ displayName: Set Python Version
+ inputs:
+ versionSpec: '3.7.x'
+ addToPath: true
+
+ - script: |
+ python3 -m pip install pipenv
+ pipenv install --dev --system
+ python3 -m pip install flake8-formatter-junit-xml
+ displayName: Install Requirements
+
+ - script: python3 -m flake8 --format junit-xml --output-file test-lint.xml
+ displayName: Run Linter
+
+ - task: PublishTestResults@2
+ condition: succeededOrFailed()
+ inputs:
+ testResultsFiles: '**/test-*.xml'
+ testRunTitle: Site-Django Lint Results
+
+- job: test
+ displayName: Test
+ dependsOn: lint
+ pool:
+ vmImage: ubuntu-16.04
+
+ steps:
+ - task: UsePythonVersion@0
+ inputs:
+ versionSpec: '3.7.x'
+ architecture: x64
+
+ - script: |
+ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
+ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
+ sudo apt-get update -y
+ sudo apt-get install -y postgresql-11
+ displayName: Install PostgreSQL
+
+ - script: |
+ echo "$USER_CREATE_COMMAND;" > pgscript.sql
+ echo "CREATE DATABASE pysite OWNER pysite;" >> pgscript.sql
+ sudo su postgres -c "psql < pgscript.sql"
+ env:
+ USER_CREATE_COMMAND: CREATE USER pysite WITH PASSWORD 'pysite' CREATEDB
+ displayName: Setup Database
+
+ - script: python3 -m pip install pipenv && pipenv install --dev --system
+ displayName: Install Requirements
+
+ - script: |
+ python manage.py migrate
+ coverage run --branch manage.py test --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner --no-input
+ env:
+ CI: azure
+ DATABASE_URL: postgres://pysite:pysite@localhost/pysite
+ displayName: Run Test
+
+ - script: coverage report
+ displayName: Show Coverage Results
+
+ - task: PublishTestResults@2
+ inputs:
+ testResultsFiles: "**/TEST-*.xml"
+ testRunTitle: Site-Django Test Results
+
+- job: build
+ displayName: Build
+ dependsOn: test
+ condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
+ pool:
+ vmImage: ubuntu-16.04
+
+ steps:
+ - task: Docker@1
+ displayName: Login to Docker Hub
+
+ inputs:
+ containerregistrytype: 'Container Registry'
+ dockerRegistryEndpoint: 'DockerHub'
+ command: 'login'
+
+ - script: |
+ docker build -t pythondiscord/django:latest docker/app/Dockerfile
+ docker push pythondiscord/django:latest
+ displayName: Build & Push Docker