Skip to content

Commit 4d32441

Browse files
committed
ci: Add AWS CI workflow for running unit and integ tests
1 parent 3fd032e commit 4d32441

File tree

3 files changed

+54
-58
lines changed

3 files changed

+54
-58
lines changed

.github/workflows/aws-ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: AWS CI
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
branches:
7+
- main
8+
- dev
9+
- 'feature/**'
10+
11+
permissions:
12+
id-token: write
13+
14+
jobs:
15+
run-ci:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Configure AWS Credentials
19+
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 #v4
20+
with:
21+
role-to-assume: ${{ secrets.CI_MAIN_TESTING_ACCOUNT_ROLE_ARN }}
22+
role-duration-seconds: 7200
23+
aws-region: us-west-2
24+
- name: Invoke Load Balancer Lambda
25+
id: lambda
26+
shell: pwsh
27+
run: |
28+
aws lambda invoke response.json --function-name "${{ secrets.CI_TESTING_LOAD_BALANCER_LAMBDA_NAME }}" --cli-binary-format raw-in-base64-out --payload '{"Roles": "${{ secrets.CI_TEST_RUNNER_ACCOUNT_ROLES }}", "ProjectName": "${{ secrets.CI_TESTING_CODE_BUILD_PROJECT_NAME }}", "Branch": "${{ github.sha }}"}'
29+
$roleArn=$(cat ./response.json)
30+
"roleArn=$($roleArn -replace '"', '')" >> $env:GITHUB_OUTPUT
31+
- name: Configure Test Runner Credentials
32+
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 #v4
33+
with:
34+
role-to-assume: ${{ steps.lambda.outputs.roleArn }}
35+
role-duration-seconds: 7200
36+
aws-region: us-west-2
37+
- name: Run Tests on AWS
38+
id: codebuild
39+
uses: aws-actions/aws-codebuild-run-build@v1
40+
with:
41+
project-name: ${{ secrets.CI_TESTING_CODE_BUILD_PROJECT_NAME }}
42+
- name: CodeBuild Link
43+
shell: pwsh
44+
run: |
45+
$buildId = "${{ steps.codebuild.outputs.aws-build-id }}"
46+
echo $buildId

.github/workflows/codebuild-ci.yml

Lines changed: 0 additions & 31 deletions
This file was deleted.

buildtools/ci.buildspec.yml

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,14 @@ version: 0.2
22

33
phases:
44
install:
5-
commands:
6-
# install .NET SDK
7-
- curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 6.0
8-
- export PATH="$PATH:$HOME/.dotnet"
9-
pre_build:
10-
commands:
11-
- export ORIGINAL_AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
12-
- export ORIGINAL_AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
13-
- export ORIGINAL_AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
14-
- export DOTNET_CLI_TELEMETRY_OPTOUT=1
15-
- eval $(aws sts assume-role --role-arn arn:aws:iam::610240510716:role/aws-dotnet-distributed-cache-provider-ci-test-runner --role-session-name test | jq -r '.Credentials | "export AWS_ACCESS_KEY_ID=\(.AccessKeyId)\nexport AWS_SECRET_ACCESS_KEY=\(.SecretAccessKey)\nexport AWS_SESSION_TOKEN=\(.SessionToken)\n"')
16-
5+
runtime-versions:
6+
dotnet: 6.x
177
build:
188
commands:
19-
- dotnet build AWS.DistributedCacheProvider.sln -c Release
20-
- dotnet test AWS.DistributedCacheProvider.sln -c Release --no-build --logger trx --results-directory ./testresults
21-
post_build:
22-
commands:
23-
- export AWS_ACCESS_KEY_ID=${ORIGINAL_AWS_ACCESS_KEY_ID}
24-
- export AWS_SECRET_ACCESS_KEY=${ORIGINAL_AWS_SECRET_ACCESS_KEY}
25-
- export AWS_SESSION_TOKEN=${ORIGINAL_AWS_SESSION_TOKEN}
26-
- unset ORIGINAL_AWS_ACCESS_KEY_ID
27-
- unset ORIGINAL_AWS_SECRET_ACCESS_KEY
28-
- unset ORIGINAL_AWS_SESSION_TOKEN
9+
- dotnet test --verbosity normal AWS.DistributedCacheProvider.sln --configuration Release --logger trx --results-directory ./testresults
2910
reports:
30-
aws-dotnet-deploy-tests:
31-
file-format: VisualStudioTrx
32-
files:
33-
- '**/*'
34-
base-directory: './testresults'
11+
aws-dotnet-distributed-cache-provider-tests:
12+
file-format: VisualStudioTrx
13+
files:
14+
- '**/*'
15+
base-directory: './testresults'

0 commit comments

Comments
 (0)