aws_codebuild tests - add retries and delay instead of a pause task (#61731)

- Add retries instead of a pause task
- Shorten the IAM role name length
- Put the IAM role name in defaults/main.yml instead
- Fix the aws_codepipeline tests too
This commit is contained in:
Sloane Hertel 2019-09-04 09:59:35 -04:00 committed by Sam Doran
parent 91ccb03552
commit 9ee0deea24
4 changed files with 18 additions and 11 deletions

View file

@ -1,2 +1,7 @@
---
# defaults file for aws_codebuild
# IAM role names have to be less than 64 characters
# The 8 digit identifier at the end of resource_prefix helps determine during
# which test something was created and allows tests to be run in parallel
iam_role_name: "ansible-test-sts-{{ resource_prefix | regex_search('([0-9]+)$') }}-codebuild-service-role"

View file

@ -18,17 +18,13 @@
- name: create IAM role needed for CodeBuild
iam_role:
name: "ansible-test-sts-{{ resource_prefix }}-codebuild-service-role"
name: "{{ iam_role_name }}"
description: Role with permissions for CodeBuild actions.
assume_role_policy_document: "{{ lookup('file', 'codebuild_iam_trust_policy.json') }}"
state: present
<<: *aws_connection_info
register: codebuild_iam_role
- name: Wait until IAM role is available
pause:
seconds: 10
- name: Set variable with aws account id
set_fact:
aws_account_id: "{{ codebuild_iam_role.iam_role.arn.split(':')[4] }}"
@ -61,6 +57,9 @@
state: present
<<: *aws_connection_info
register: output
retries: 10
delay: 5
until: output is success
- assert:
that:
@ -115,6 +114,6 @@
- name: cleanup IAM role created for CodeBuild test
iam_role:
name: "{{ resource_prefix }}-codebuild-service-role"
name: "{{ iam_role_name }}"
state: absent
<<: *aws_connection_info

View file

@ -2,4 +2,8 @@
# defaults file for aws_codepipeline
codepipeline_name: "{{ resource_prefix }}-test-codepipeline"
codepipeline_service_role_name: "ansible-test-sts-{{ resource_prefix }}-codepipeline-role"
# IAM role names have to be less than 64 characters
# The 8 digit identifier at the end of resource_prefix helps determine during
# which test something was created and allows tests to be run in parallel
codepipeline_service_role_name: "ansible-test-sts-{{ resource_prefix | regex_search('([0-9]+)$') }}-codebuild-service-role"

View file

@ -25,10 +25,6 @@
<<: *aws_connection_info
register: codepipeline_iam_role
- name: Pause a few seconds to ensure IAM role is available to next task
pause:
seconds: 10
# ================== integration test ==========================================
- name: create CodePipeline
@ -69,6 +65,9 @@
state: present
<<: *aws_connection_info
register: output
retries: 10
delay: 5
until: output is success
- assert:
that: