Skip to content

Commit 83e7ca2

Browse files
authored
Set up GH actions for CI (aws#3219)
* Set up GH actions for CI * Update scripts
1 parent 36db847 commit 83e7ca2

File tree

2 files changed

+150
-0
lines changed

2 files changed

+150
-0
lines changed

.github/workflows/codebuild-ci.yml

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: AWS CodeBuild CI
2+
on:
3+
pull_request:
4+
push:
5+
branches:
6+
- master
7+
8+
permissions:
9+
id-token: write
10+
11+
jobs:
12+
jdk8-build:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Configure AWS Credentials
16+
uses: aws-actions/configure-aws-credentials@v1
17+
with:
18+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
19+
aws-region: us-west-2
20+
- name: Run JDK8 build
21+
uses: aws-actions/aws-codebuild-run-build@v1
22+
with:
23+
project-name: aws-sdk-java-v2
24+
jdk11-build:
25+
runs-on: ubuntu-latest
26+
steps:
27+
- name: Configure AWS Credentials
28+
uses: aws-actions/configure-aws-credentials@v1
29+
with:
30+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
31+
aws-region: us-west-2
32+
- name: Run JDK11 build
33+
uses: aws-actions/aws-codebuild-run-build@v1
34+
with:
35+
project-name: aws-sdk-java-v2-JDK11
36+
jdk17-build:
37+
runs-on: ubuntu-latest
38+
steps:
39+
- name: Configure AWS Credentials
40+
uses: aws-actions/configure-aws-credentials@v1
41+
with:
42+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
43+
aws-region: us-west-2
44+
- name: Run JDK17 build
45+
uses: aws-actions/aws-codebuild-run-build@v1
46+
with:
47+
project-name: aws-sdk-java-v2-JDK17
48+
windows-jdk8-build:
49+
runs-on: ubuntu-latest
50+
steps:
51+
- name: Configure AWS Credentials
52+
uses: aws-actions/configure-aws-credentials@v1
53+
with:
54+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
55+
aws-region: us-west-2
56+
- name: Run JDK8 windows build
57+
uses: aws-actions/aws-codebuild-run-build@v1
58+
with:
59+
project-name: aws-sdk-java-v2-JDK8-windows
60+
native-image-test:
61+
runs-on: ubuntu-latest
62+
steps:
63+
- name: Configure AWS Credentials
64+
uses: aws-actions/configure-aws-credentials@v1
65+
with:
66+
role-to-assume: ${{ secrets.CI_AWS_ROLE_ARN }}
67+
aws-region: us-west-2
68+
- name: Run native image test
69+
uses: aws-actions/aws-codebuild-run-build@v1
70+
with:
71+
project-name: aws-sdk-java-v2-native-image-test
+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
Parameters:
2+
GitHubOrg:
3+
Type: String
4+
Default: "aws"
5+
Description: The GitHub organization to use for the repository.
6+
GitHubRepositoryName:
7+
Description: The name of the GitHub repository to create the role template in and to use for the CodeBuild.
8+
Type: String
9+
Default: "aws-sdk-java-v2"
10+
OIDCProviderArn:
11+
Description: Arn for the GitHub OIDC Provider.
12+
Default: ""
13+
Type: String
14+
OidcRoleRoleName:
15+
Description: Name of the role to use for the OIDC provider.
16+
Default: "aws-sdk-for-java-v2-ci-role"
17+
Type: String
18+
19+
20+
Conditions:
21+
CreateOIDCProvider: !Equals
22+
- !Ref OIDCProviderArn
23+
- ""
24+
25+
Resources:
26+
OidcRole:
27+
Type: AWS::IAM::Role
28+
Properties:
29+
RoleName: !Ref OidcRoleRoleName
30+
AssumeRolePolicyDocument:
31+
Statement:
32+
- Effect: Allow
33+
Action: sts:AssumeRoleWithWebIdentity
34+
Principal:
35+
Federated: !If
36+
- CreateOIDCProvider
37+
- !Ref GithubOidc
38+
- !Ref OIDCProviderArn
39+
Condition:
40+
StringLike:
41+
token.actions.githubusercontent.com:sub: !Sub repo:${GitHubOrg}/${GitHubRepositoryName}:*
42+
Policies:
43+
- PolicyName: !Sub "${AWS::StackName}-OIDC-Policy"
44+
PolicyDocument:
45+
Version: "2012-10-17"
46+
Statement:
47+
- Effect: Allow
48+
Action:
49+
- codebuild:StartBuild
50+
- codebuild:BatchGetBuilds
51+
Resource:
52+
- !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2
53+
- !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2-JDK11
54+
- !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2-JDK17
55+
- !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2-JDK8-windows
56+
- !Sub arn:aws:codebuild:${ AWS::Region }:${ AWS::AccountId }:project/aws-sdk-java-v2-native-image-test
57+
- Effect: Allow
58+
Action:
59+
- logs:GetLogEvents
60+
Resource:
61+
- !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log- group:/aws/codebuild/aws-sdk-java-v2:*
62+
- !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/aws-sdk-java-v2-JDK11:*
63+
- !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/aws-sdk-java-v2-JDK17:*
64+
- !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/aws-sdk-java-v2-JDK8-windows:*
65+
- !Sub arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/codebuild/aws-sdk-java-v2-native-image-test:*
66+
67+
GithubOidc:
68+
Type: AWS::IAM::OIDCProvider
69+
Condition: CreateOIDCProvider
70+
Properties:
71+
Url: https://token.actions.githubusercontent.com
72+
ClientIdList:
73+
- sts.amazonaws.com
74+
ThumbprintList:
75+
- 6938fd4d98bab03faadb97b34396831e3780aea1
76+
77+
Outputs:
78+
OidcRole:
79+
Value: !GetAtt OidcRole.Arn

0 commit comments

Comments
 (0)