2
2
# SPDX-License-Identifier: Apache-2.0 OR ISC
3
3
import typing
4
4
5
- from aws_cdk import (
6
- Duration ,
7
- Environment ,
8
- Stack ,
9
- aws_codebuild as codebuild ,
10
- aws_iam as iam ,
11
- )
5
+ from aws_cdk import Duration , Stack , aws_codebuild as codebuild , aws_iam as iam , Environment
12
6
from constructs import Construct
13
7
14
8
from cdk .components import PruneStaleGitHubBuilds
15
- from util .iam_policies import (
16
- code_build_batch_policy_in_json ,
17
- device_farm_access_policy_in_json ,
18
- )
19
- from util .metadata import (
20
- GITHUB_REPO_OWNER ,
21
- GITHUB_REPO_NAME ,
22
- GITHUB_PUSH_CI_BRANCH_TARGETS ,
23
- PRE_PROD_ACCOUNT ,
24
- STAGING_GITHUB_REPO_OWNER ,
25
- STAGING_GITHUB_REPO_NAME ,
26
- )
9
+ from util .iam_policies import code_build_batch_policy_in_json , device_farm_access_policy_in_json
10
+ from util .metadata import GITHUB_REPO_OWNER , GITHUB_REPO_NAME , GITHUB_PUSH_CI_BRANCH_TARGETS , PRE_PROD_ACCOUNT , \
11
+ STAGING_GITHUB_REPO_OWNER , STAGING_GITHUB_REPO_NAME
27
12
from util .build_spec_loader import BuildSpecLoader
28
13
29
14
@@ -33,14 +18,12 @@ class AwsLcAndroidCIStack(Stack):
33
18
# The Device Farm resource used to in this CI spec, must be manually created.
34
19
# TODO: Automate Device Farm creation with cdk script.
35
20
36
- def __init__ (
37
- self ,
38
- scope : Construct ,
39
- id : str ,
40
- spec_file_path : str ,
41
- env : typing .Union [Environment , typing .Dict [str , typing .Any ]],
42
- ** kwargs
43
- ) -> None :
21
+ def __init__ (self ,
22
+ scope : Construct ,
23
+ id : str ,
24
+ spec_file_path : str ,
25
+ env : typing .Optional [typing .Union [Environment , typing .Dict [str , typing .Any ]]],
26
+ ** kwargs ) -> None :
44
27
super ().__init__ (scope , id , env = env , ** kwargs )
45
28
46
29
github_repo_owner = GITHUB_REPO_OWNER
@@ -59,14 +42,11 @@ def __init__(
59
42
codebuild .FilterGroup .in_event_of (
60
43
codebuild .EventAction .PULL_REQUEST_CREATED ,
61
44
codebuild .EventAction .PULL_REQUEST_UPDATED ,
62
- codebuild .EventAction .PULL_REQUEST_REOPENED ,
63
- ),
64
- codebuild .FilterGroup .in_event_of (
65
- codebuild .EventAction .PUSH
66
- ).and_branch_is (GITHUB_PUSH_CI_BRANCH_TARGETS ),
45
+ codebuild .EventAction .PULL_REQUEST_REOPENED ),
46
+ codebuild .FilterGroup .in_event_of (codebuild .EventAction .PUSH ).and_branch_is (
47
+ GITHUB_PUSH_CI_BRANCH_TARGETS ),
67
48
],
68
- webhook_triggers_batch_build = True ,
69
- )
49
+ webhook_triggers_batch_build = True )
70
50
71
51
# Define a IAM role for this stack.
72
52
code_build_batch_policy = iam .PolicyDocument .from_json (
@@ -75,16 +55,11 @@ def __init__(
75
55
device_farm_policy = iam .PolicyDocument .from_json (
76
56
device_farm_access_policy_in_json (env )
77
57
)
78
- inline_policies = {
79
- "code_build_batch_policy" : code_build_batch_policy ,
80
- "device_farm_policy" : device_farm_policy ,
81
- }
82
- role = iam .Role (
83
- scope = self ,
84
- id = "{}-role" .format (id ),
85
- assumed_by = iam .ServicePrincipal ("codebuild.amazonaws.com" ),
86
- inline_policies = inline_policies ,
87
- )
58
+ inline_policies = {"code_build_batch_policy" : code_build_batch_policy , "device_farm_policy" : device_farm_policy }
59
+ role = iam .Role (scope = self ,
60
+ id = "{}-role" .format (id ),
61
+ assumed_by = iam .ServicePrincipal ("codebuild.amazonaws.com" ),
62
+ inline_policies = inline_policies )
88
63
89
64
# Define CodeBuild.
90
65
project = codebuild .Project (
@@ -94,19 +69,10 @@ def __init__(
94
69
source = git_hub_source ,
95
70
role = role ,
96
71
timeout = Duration .minutes (180 ),
97
- environment = codebuild .BuildEnvironment (
98
- compute_type = codebuild .ComputeType .SMALL ,
99
- privileged = False ,
100
- build_image = codebuild .LinuxBuildImage .STANDARD_4_0 ,
101
- ),
102
- build_spec = BuildSpecLoader .load (spec_file_path , env ),
103
- )
72
+ environment = codebuild .BuildEnvironment (compute_type = codebuild .ComputeType .SMALL ,
73
+ privileged = False ,
74
+ build_image = codebuild .LinuxBuildImage .STANDARD_4_0 ),
75
+ build_spec = BuildSpecLoader .load (spec_file_path , env ))
104
76
project .enable_batch_builds ()
105
77
106
- PruneStaleGitHubBuilds (
107
- scope = self ,
108
- id = "PruneStaleGitHubBuilds" ,
109
- project = project ,
110
- ec2_permissions = False ,
111
- env = env ,
112
- )
78
+ PruneStaleGitHubBuilds (scope = self , id = "PruneStaleGitHubBuilds" , project = project , ec2_permissions = False , env = env )
0 commit comments