-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaction.yml
134 lines (127 loc) · 4.66 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: 'Execute Dotnet Test'
author: DevOps
description: 'Run dotnet test.'
inputs:
# AWS Authentication
aws-access-key-id:
description: 'AWS Access Key ID to authenticate for deploying to ECR and the desired EKS cluster.'
required: true
aws-secret-access-key:
description: 'AWS Secret Access Key to authenticate for deploying to ECR and the desired EKS cluster.'
required: true
aws-region:
description: 'Region used for ECR login.'
required: false
default: 'us-east-1'
# Dotnet Configuration
solution-file:
description: 'Dotnet Solution file to run against.'
required: true
filter:
description: 'Dotnet filter to use. Typically UnitTests or IntegrationTests'
required: true
dotnet-test-logger:
description: 'Dotnet logger flag.'
required: false
dotnet-test-verbosity:
description: 'Dotnet verbosity flag.'
required: false
dotnet-test-environment:
description: 'Dotnet environment flag.'
required: false
dotnet-test-settings:
description: 'Dotnet settings flag.'
required: false
configuration:
description: 'Dotnet configuration to use. Default is "Release".'
required: false
default: 'Release'
aspnetcore-environment:
description: 'Dotnet aspnet configuration to use. Default is "BranchDevelopment".'
required: false
default: 'BranchDevelopment'
dotnet-environment:
description: 'Dotnet environment configuration to use. Default is "BranchDevelopment".'
required: false
default: 'BranchDevelopment'
run-test-report:
description: 'Run Dotnet Test Reports.'
required: false
default: 'false'
test-report-name:
description: 'Dotnet Test Name.'
required: false
default: 'false'
test-report-path:
description: 'Dotnet Test Path.'
required: false
default: 'false'
test-report-reporter:
description: 'Dotnet Test Reporter.'
required: false
default: 'false'
test-report-fail-on-error:
description: 'Dotnet Test Fail on Error.'
required: false
default: 'false'
runs:
using: 'composite'
steps:
- name: Authenticate with AWS
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ inputs.aws-access-key-id }}
aws-secret-access-key: ${{ inputs.aws-secret-access-key }}
aws-region: ${{ inputs.aws-region }}
- name: Extract branch name
id: extract_branch
shell: bash
run: |
export UNESCAPED_BRANCH_NAME=${GITHUB_REF#refs/heads/}
echo "branch=$(echo ${UNESCAPED_BRANCH_NAME})" >> $GITHUB_OUTPUT
echo "clean-branch=$(echo ${UNESCAPED_BRANCH_NAME} | sed 's/_//g' | tr '[:upper:]' '[:lower:]' | cut -c -38)" >> $GITHUB_OUTPUT
- name: Copy NuGet Config
shell: bash
run: cp /home/runner/.nuget/NuGet/NuGet.Config ./nuget.config
- name: Restore Dependencies
shell: bash
run: dotnet restore ${{ inputs.solution-file }}
- name: Run Dotnet Tests
shell: bash
env:
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
BRANCH_DATABASE: ${{ steps.extract_branch.outputs.branch }}
ASPNETCORE_ENVIRONMENT: ${{ inputs.aspnetcore-environment }}
DOTNET_ENVIRONMENT: ${{ inputs.dotnet-environment }}
run: |
# Set optional variables
if [[ "${{ inputs.dotnet-test-logger }}" != "" ]]; then
LOGGER=" --logger ${{ inputs.dotnet-test-logger }}"
else
LOGGER=""
fi
if [[ "${{ inputs.dotnet-test-environment }}" != "" ]]; then
DOTNET_TEST_ENVIRONMENT=" --environment ${{ inputs.environment }}"
else
DOTNET_TEST_ENVIRONMENT=""
fi
if [[ "${{ inputs.dotnet-test-verbosity }}" != "" ]]; then
VERBOSITY=" --verbosity ${{ inputs.verbosity }}"
else
VERBOSITY=""
fi
if [[ "${{ inputs.dotnet-test-settings }}" != "" ]]; then
SETTINGS=" --settings ${{ inputs.dotnet-test-settings }}"
else
SETTINGS=""
fi
dotnet test ${{ inputs.solution-file }} --configuration ${{ inputs.configuration }} --filter ${{ inputs.filter }}$LOGGER$DOTNET_TEST_ENVIRONMENT$VERBOSITY$SETTINGS
# ^ From this point, it will append any additional flags that have been entered by the user.
- name: Test Report
if: ${{ inputs.run-test-report == 'true' }}
uses: dorny/test-reporter@v1
with:
name: ${{ inputs.test-report-name }}
path: ${{ inputs.test-report-path }}
reporter: ${{ inputs.test-report-reporter }}
fail-on-error: ${{ inputs.test-report-fail-on-error }}