Skip to content

Commit

Permalink
chore: Add AWS CodeBuild buildspec (#146)
Browse files Browse the repository at this point in the history
Adding buildspec to batch build
multiple Python runtimes

* Python 2.7
* Python 3.5
* Python 3.6
* Python 3.7
* Python 3.8
  • Loading branch information
seebees authored Dec 22, 2020
1 parent d610e0b commit 74f7f32
Show file tree
Hide file tree
Showing 7 changed files with 135 additions and 0 deletions.
15 changes: 15 additions & 0 deletions buildspec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
version: 0.2

batch:
fast-fail: false
build-list:
- identifier: python2_7
buildspec: codebuild/python2.7.yml
- identifier: python3_5
buildspec: codebuild/python3.5.yml
- identifier: python3_6
buildspec: codebuild/python3.6.yml
- identifier: python3_7
buildspec: codebuild/python3.7.yml
- identifier: python3_8
buildspec: codebuild/python3.8.yml
18 changes: 18 additions & 0 deletions codebuild/python2.7.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 0.2

env:
variables:
TOXENV: "py27-integ-slow"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
phases:
install:
runtime-versions:
python: latest
build:
commands:
- pip install tox
- tox
32 changes: 32 additions & 0 deletions codebuild/python3.5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
version: 0.2

env:
variables:
TOXENV: "py35-integ-slow"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
phases:
install:
runtime-versions:
python: latest
build:
commands:
# The specific versions are manually installed
# because they are not installed
# by default in CodeBuild containers.
# `pyenv` does not have
# a nice way to just install
# the latest patch version.
# I have selected the current latest patch
# rather than try
# and manage a one-liner or script.
# Testing every minor version
# is too extreme at this time.
# The choice of versions should be reviewed.
- pyenv install 3.5.9
- pyenv local 3.5.9
- pip install tox tox-pyenv
- tox
18 changes: 18 additions & 0 deletions codebuild/python3.6.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 0.2

env:
variables:
TOXENV: "py36-integ-slow"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
phases:
install:
runtime-versions:
python: latest
build:
commands:
- pip install tox
- tox
32 changes: 32 additions & 0 deletions codebuild/python3.7.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
version: 0.2

env:
variables:
TOXENV: "py37-integ-slow"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
phases:
install:
runtime-versions:
python: latest
build:
commands:
# The specific versions are manually installed
# because they are not installed
# by default in CodeBuild containers.
# `pyenv` does not have
# a nice way to just install
# the latest patch version.
# I have selected the current latest patch
# rather than try
# and manage a one-liner or script.
# Testing every minor version
# is too extreme at this time.
# The choice of versions should be reviewed.
- pyenv install 3.7.9
- pyenv local 3.7.9
- pip install tox tox-pyenv
- tox
18 changes: 18 additions & 0 deletions codebuild/python3.8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 0.2

env:
variables:
TOXENV: "py38-integ-slow"
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID: >-
arn:aws:kms:us-west-2:658956600833:key/b3537ef1-d8dc-4780-9f5a-55776cbb2f7f
AWS_ENCRYPTION_SDK_PYTHON_INTEGRATION_TEST_AWS_KMS_KEY_ID_2: >-
arn:aws:kms:eu-central-1:658956600833:key/75414c93-5285-4b57-99c9-30c1cf0a22c2
phases:
install:
runtime-versions:
python: latest
build:
commands:
- pip install tox
- tox
2 changes: 2 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ passenv =
DDB_ENCRYPTION_CLIENT_TEST_TABLE_NAME \
# Pass through AWS credentials
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN \
# AWS Role access in CodeBuild is via the contaner URI
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI \
# Pass through AWS profile name (useful for local testing)
AWS_PROFILE \
# Pass through the default AWS region (used for integration tests)
Expand Down

0 comments on commit 74f7f32

Please sign in to comment.