Skip to content

Commit

Permalink
Merge branch 'master' into pre-commit-hook
Browse files Browse the repository at this point in the history
  • Loading branch information
mergify[bot] authored Apr 22, 2021
2 parents 1a54f21 + ccd4d71 commit bb18fb3
Showing 1 changed file with 114 additions and 134 deletions.
248 changes: 114 additions & 134 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
version: 2.1

resource_class: &resource_class medium
default_resource_class: &default_resource_class medium
cimg_base_image: &cimg_base_image cimg/base:stable
python38-alpine_image: &python38-alpine_image python:3.8-alpine
python38_image: &python38_image circleci/python:3.8
python37_image: &python37_image circleci/python:3.7
python36_image: &python36_image circleci/python:3.6
python35_image: &python35_image circleci/python:3.5
python27_image: &python27_image circleci/python:2.7
ddtrace_dev_image: &ddtrace_dev_image datadog/dd-trace-py:latest
datadog_agent_image: &datadog_agent_image datadog/agent:latest
redis_image: &redis_image redis:4.0-alpine
Expand Down Expand Up @@ -45,6 +41,10 @@ contrib_job: &contrib_job
executor: ddtrace_dev
parallelism: 4

contrib_job_small: &contrib_job_small
executor: ddtrace_dev_small
parallelism: 1

commands:
save_coverage:
description: "Save coverage.py results to workspace"
Expand Down Expand Up @@ -238,35 +238,23 @@ executors:
cimg_base:
docker:
- image: *cimg_base_image
resource_class: *resource_class
resource_class: small
python38-alpine:
docker:
- image: *python38-alpine_image
resource_class: *resource_class
resource_class: small
python38:
docker:
- image: *python38_image
resource_class: *resource_class
python37:
docker:
- image: *python37_image
resource_class: *resource_class
python36:
docker:
- image: *python36_image
resource_class: *resource_class
python35:
docker:
- image: *python35_image
resource_class: *resource_class
python27:
docker:
- image: *python27_image
resource_class: *resource_class
resource_class: small
ddtrace_dev:
docker:
- image: *ddtrace_dev_image
resource_class: *resource_class
resource_class: *default_resource_class
ddtrace_dev_small:
docker:
- image: *ddtrace_dev_image
resource_class: small

# Common configuration blocks as YAML anchors
# See: https://circleci.com/blog/circleci-hacks-reuse-yaml-in-your-circleci-config-with-yaml/
Expand Down Expand Up @@ -299,12 +287,20 @@ postgres_server: &postgres_server
- POSTGRES_DB=postgres

jobs:
black:
pre_check:
executor: python38
steps:
- checkout
- setup_riot
- run: riot run -s black --check .
- run:
name: "Black check"
command: riot run -s black --check .
- run:
name: "Flake8 check"
command: riot run -s flake8
- run:
name: "Mypy check"
command: riot run mypy

ccheck:
executor: cimg_base
Expand All @@ -315,27 +311,6 @@ jobs:
- run: scripts/cformat.sh
- run: DD_COMPILE_DEBUG=1 CC=gcc-10 python3 setup.py build_ext

flake8:
executor: python38
steps:
- checkout
- setup_riot
- run: riot run -s flake8

mypy:
executor: python38
steps:
- checkout
- setup_riot
- run: riot run mypy

riot-helpers:
executor: python38
steps:
- checkout
- setup_riot
- run: riot run -s riot-helpers

coverage_report:
executor: python38
steps:
Expand Down Expand Up @@ -379,6 +354,9 @@ jobs:
steps:
- checkout
- setup_riot
- run:
name: "Run riotfile.py tests"
command: riot run -s riot-helpers
- run:
name: "Generate base virtual environments."
command: "echo '2.7,3.5,3.6,3.7,3.8,3.9' | tr ',' '\n' | circleci tests split | xargs -I PY riot -v generate --python=PY"
Expand Down Expand Up @@ -458,15 +436,15 @@ jobs:
command: ./scripts/ddtest scripts/run-tox-scenario '^py..-integration-snapshot'

vendor:
<<: *contrib_job
<<: *contrib_job_small
docker:
- image: *ddtrace_dev_image
steps:
- run_test:
pattern: 'vendor'

futures:
<<: *contrib_job
<<: *contrib_job_small
steps:
- run_tox_scenario:
pattern: '^futures_contrib-'
Expand All @@ -491,13 +469,13 @@ jobs:
pattern: 'ddtracerun'

test_logging:
<<: *contrib_job
<<: *contrib_job_small
steps:
- run_test:
pattern: 'test_logging'

asyncio:
<<: *contrib_job
<<: *contrib_job_small
steps:
- run_tox_scenario:
pattern: '^asyncio_contrib-'
Expand All @@ -515,7 +493,7 @@ jobs:
pattern: '^aiohttp_contrib-'

asgi:
<<: *contrib_job
<<: *contrib_job_small
steps:
- run_test:
pattern: 'asgi$'
Expand Down Expand Up @@ -911,7 +889,7 @@ jobs:
pattern: '^jinja2_contrib-'

mako:
<<: *contrib_job
<<: *contrib_job_small
steps:
- run_test:
pattern: 'mako'
Expand Down Expand Up @@ -947,18 +925,17 @@ jobs:
- store_artifacts:
path: dist

requires_pre_test: &requires_pre_test
requires_pre_check: &requires_pre_check
requires:
- black
- flake8
- pre_check
- ccheck
- mypy
- riot-helpers

requires_base_venvs: &requires_base_venvs
requires:
- build_base_venvs

requires_tests: &requires_tests
requires:
- build_docs
- aiobotocore
- aiohttp
- aiopg
Expand Down Expand Up @@ -1016,14 +993,12 @@ requires_tests: &requires_tests
- sqlalchemy
- sqlite3
- starlette
- test_build_alpine
- test_logging
- tracer
- tornado
- urllib3
- vertica
- wsgi
- build-docker-ci-image

workflows:
version: 2
Expand All @@ -1037,81 +1012,86 @@ workflows:

test:
jobs:
# Jobs that should run before individual integration test suites
- build_docs
- black
- flake8
- mypy
- riot-helpers
# Pre-checking before running all jobs
- pre_check
- ccheck
- build_base_venvs

# Docs
- build_docs: *requires_pre_check

# Build necessary base venvs for integration tests
- build_base_venvs: *requires_pre_check

# Building CI docker image
- build-docker-ci-image: *requires_pre_check

# Test building the package
- test_build_alpine: *requires_pre_test
- test_build_alpine: *requires_pre_check

# Integration test suites
- aiobotocore: *requires_pre_test
- aiohttp: *requires_pre_test
- aiopg: *requires_pre_test
- asyncio: *requires_pre_test
- algoliasearch: *requires_pre_test
- asgi: *requires_pre_test
- benchmarks: *requires_pre_test
- boto: *requires_pre_test
- bottle: *requires_pre_test
- cassandra: *requires_pre_test
- celery: *requires_pre_test
- cherrypy: *requires_pre_test
- consul: *requires_pre_test
- dbapi: *requires_pre_test
- ddtracerun: *requires_pre_test
- django: *requires_pre_test
- djangorestframework: *requires_pre_test
- dogpile_cache: *requires_pre_test
- elasticsearch: *requires_pre_test
- falcon: *requires_pre_test
- fastapi: *requires_pre_test
- flask: *requires_pre_test
- futures: *requires_pre_test
- gevent: *requires_pre_test
- grpc: *requires_pre_test
- httplib: *requires_pre_test
- integration_agent5: *requires_pre_test
- integration_agent: *requires_pre_test
- integration_testagent: *requires_pre_test
- vendor: *requires_pre_test
- profile: *requires_pre_test
- jinja2: *requires_pre_test
- kombu: *requires_pre_test
- mako: *requires_pre_test
- molten: *requires_pre_test
- mongoengine: *requires_pre_test
- mysqlconnector: *requires_pre_test
- mysqldb: *requires_pre_test
- mysqlpython: *requires_pre_test
- opentracer: *requires_pre_test
- psycopg: *requires_pre_test
- pylibmc: *requires_pre_test
- pylons: *requires_pre_test
- pymemcache: *requires_pre_test
- pymongo: *requires_pre_test
- pymysql: *requires_pre_test
- pynamodb: *requires_pre_test
- pyodbc: *requires_pre_test
- pyramid: *requires_pre_test
- pytest: *requires_pre_test
- redis: *requires_pre_test
- rediscluster: *requires_pre_test
- requests: *requires_pre_test
- sanic: *requires_pre_test
- starlette: *requires_pre_test
- sqlalchemy: *requires_pre_test
- sqlite3: *requires_pre_test
- test_logging: *requires_pre_test
- tornado: *requires_pre_test
- tracer: *requires_pre_test
- urllib3: *requires_pre_test
- vertica: *requires_pre_test
- wsgi: *requires_pre_test
- build-docker-ci-image: *requires_pre_test
- aiobotocore: *requires_base_venvs
- aiohttp: *requires_base_venvs
- aiopg: *requires_base_venvs
- asyncio: *requires_base_venvs
- algoliasearch: *requires_base_venvs
- asgi: *requires_base_venvs
- benchmarks: *requires_base_venvs
- boto: *requires_base_venvs
- bottle: *requires_base_venvs
- cassandra: *requires_base_venvs
- celery: *requires_base_venvs
- cherrypy: *requires_base_venvs
- consul: *requires_base_venvs
- dbapi: *requires_base_venvs
- ddtracerun: *requires_base_venvs
- django: *requires_base_venvs
- djangorestframework: *requires_base_venvs
- dogpile_cache: *requires_base_venvs
- elasticsearch: *requires_base_venvs
- falcon: *requires_base_venvs
- fastapi: *requires_base_venvs
- flask: *requires_base_venvs
- futures: *requires_base_venvs
- gevent: *requires_base_venvs
- grpc: *requires_base_venvs
- httplib: *requires_base_venvs
- integration_agent5: *requires_base_venvs
- integration_agent: *requires_base_venvs
- integration_testagent: *requires_base_venvs
- vendor: *requires_base_venvs
- profile: *requires_base_venvs
- jinja2: *requires_base_venvs
- kombu: *requires_base_venvs
- mako: *requires_base_venvs
- molten: *requires_base_venvs
- mongoengine: *requires_base_venvs
- mysqlconnector: *requires_base_venvs
- mysqldb: *requires_base_venvs
- mysqlpython: *requires_base_venvs
- opentracer: *requires_base_venvs
- psycopg: *requires_base_venvs
- pylibmc: *requires_base_venvs
- pylons: *requires_base_venvs
- pymemcache: *requires_base_venvs
- pymongo: *requires_base_venvs
- pymysql: *requires_base_venvs
- pynamodb: *requires_base_venvs
- pyodbc: *requires_base_venvs
- pyramid: *requires_base_venvs
- pytest: *requires_base_venvs
- redis: *requires_base_venvs
- rediscluster: *requires_base_venvs
- requests: *requires_base_venvs
- sanic: *requires_base_venvs
- starlette: *requires_base_venvs
- sqlalchemy: *requires_base_venvs
- sqlite3: *requires_base_venvs
- test_logging: *requires_base_venvs
- tornado: *requires_base_venvs
- tracer: *requires_base_venvs
- urllib3: *requires_base_venvs
- vertica: *requires_base_venvs
- wsgi: *requires_base_venvs

# Final reports
- coverage_report: *requires_tests

0 comments on commit bb18fb3

Please sign in to comment.