Skip to content

Commit 394adfd

Browse files
mikechu-optimizelyNomanShoaib
authored andcommitted
chore: Fix and Reconfigure GitHub Actions (#319)
1 parent acb06c2 commit 394adfd

File tree

4 files changed

+58
-57
lines changed

4 files changed

+58
-57
lines changed

.editorconfig

+10-14
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,10 @@ root = true
77
#### Core EditorConfig Options ####
88

99
# Indentation and spacing
10-
indent_size = 4
1110
indent_style = space
12-
tab_width = 4
1311

1412
# New line preferences
15-
end_of_line = crlf
16-
insert_final_newline = false
13+
insert_final_newline = true
1714

1815
#### .NET Coding Conventions ####
1916

@@ -198,33 +195,33 @@ dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
198195

199196
dotnet_naming_symbols.interface.applicable_kinds = interface
200197
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
201-
dotnet_naming_symbols.interface.required_modifiers =
198+
dotnet_naming_symbols.interface.required_modifiers =
202199

203200
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
204201
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
205-
dotnet_naming_symbols.types.required_modifiers =
202+
dotnet_naming_symbols.types.required_modifiers =
206203

207204
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
208205
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
209-
dotnet_naming_symbols.non_field_members.required_modifiers =
206+
dotnet_naming_symbols.non_field_members.required_modifiers =
210207

211208
# Naming styles
212209

213-
dotnet_naming_style.pascal_case.required_prefix =
214-
dotnet_naming_style.pascal_case.required_suffix =
215-
dotnet_naming_style.pascal_case.word_separator =
210+
dotnet_naming_style.pascal_case.required_prefix =
211+
dotnet_naming_style.pascal_case.required_suffix =
212+
dotnet_naming_style.pascal_case.word_separator =
216213
dotnet_naming_style.pascal_case.capitalization = pascal_case
217214

218215
dotnet_naming_style.begins_with_i.required_prefix = I
219-
dotnet_naming_style.begins_with_i.required_suffix =
220-
dotnet_naming_style.begins_with_i.word_separator =
216+
dotnet_naming_style.begins_with_i.required_suffix =
217+
dotnet_naming_style.begins_with_i.word_separator =
221218
dotnet_naming_style.begins_with_i.capitalization = pascal_case
222219

223220
[*.{cs,vb}]
224221
dotnet_style_operator_placement_when_wrapping = beginning_of_line
225222
tab_width = 4
226223
indent_size = 4
227-
end_of_line = crlf
224+
end_of_line = lf
228225
dotnet_style_coalesce_expression = true:suggestion
229226
dotnet_style_null_propagation = true:suggestion
230227
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
@@ -240,4 +237,3 @@ dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
240237
dotnet_style_prefer_compound_assignment = true:suggestion
241238
dotnet_style_prefer_simplified_interpolation = true:suggestion
242239
dotnet_style_namespace_match_folder = true:suggestion
243-

.github/workflows/csharp.yml

+45-38
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,39 @@ on:
66
branches: [master]
77
pull_request:
88
branches: [master]
9-
9+
1010
env:
1111
RELEASE_BRANCH: "master"
12+
WINDOWS_2019_SN_PATH: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\sn.exe
1213

1314
jobs:
1415
lint_code_base:
1516
runs-on: ubuntu-latest
16-
name: Lint Code Base
17+
name: Lint Codebase
1718
steps:
18-
- name: Checkout Code
19+
- name: Checkout code
1920
uses: actions/checkout@v3
2021
with:
2122
# Full git history is needed to get a proper list of changed files
2223
fetch-depth: 0
23-
- name: Lint Code Base
24+
- name: Lint codebase
2425
uses: github/super-linter@v4
2526
env:
27+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2628
VALIDATE_ALL_CODEBASE: false
2729
DEFAULT_BRANCH: master
2830
VALIDATE_CSHARP: true
2931
VALIDATE_MARKDOWN: true
3032

3133
integration_tests:
34+
name: Run Integration Tests
3235
uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master
3336
secrets:
3437
CI_USER_TOKEN: ${{ secrets.CI_USER_TOKEN }}
3538
TRAVIS_COM_TOKEN: ${{ secrets.TRAVIS_COM_TOKEN }}
36-
39+
3740
fullstack_production_suite:
41+
name: Run Full Stack Compatibility Suite
3842
uses: optimizely/csharp-sdk/.github/workflows/integration_test.yml@master
3943
with:
4044
FULLSTACK_TEST_REPO: ProdTesting
@@ -43,7 +47,8 @@ jobs:
4347
TRAVIS_COM_TOKEN: ${{ secrets.TRAVIS_COM_TOKEN }}
4448

4549
unit_test:
46-
runs-on: ubuntu-latest
50+
name: Build and Run Unit Tests
51+
runs-on: windows-2019 # required version for Framework 4.0
4752
env:
4853
REPO_SLUG: ${{ github.repository }}
4954
BUILD_NUMBER: ${{ github.run_id }}
@@ -52,35 +57,40 @@ jobs:
5257
EVENT_TYPE: ${{ github.event_name }}
5358
CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
5459
steps:
55-
- uses: actions/checkout@v3
56-
- name: Setup .NET
57-
uses: actions/setup-dotnet@v1
58-
with:
59-
dotnet-version: 5.0.x
60-
- name: Restore nuget packages
61-
run: |
62-
nuget restore OptimizelySDK.Travis.sln
63-
nuget install ./OptimizelySDK.Tests/packages.config -OutputDirectory ./packages
64-
nuget install NUnit.Runners -Version 2.6.4 -OutputDirectory ./testrunner
65-
- name: script
66-
run: |
67-
./install_mono.sh
68-
xbuild /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk /p:Configuration=Release ./OptimizelySDK.Travis.sln
69-
mono ./testrunner/NUnit.Runners.2.6.4/tools/nunit-console.exe ./OptimizelySDK.Tests/bin/Release/OptimizelySDK.Tests.dll
70-
- name: find and sign dll
60+
- name: Checkout code
61+
uses: actions/checkout@v3
62+
- name: Add msbuild to PATH
63+
uses: microsoft/setup-msbuild@v1
64+
- name: Setup NuGet
65+
uses: NuGet/setup-nuget@v1
66+
- name: Restore NuGet packages
67+
run: nuget restore ./OptimizelySDK.Travis.sln
68+
- name: Build solution
69+
run: msbuild /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk /p:Configuration=Release ./OptimizelySDK.Travis.sln
70+
- name: Install NUnit Console
71+
run: nuget install NUnit.Console -Version 3.15.2 -DirectDownload -OutputDirectory .
72+
- name: Run NUnit tests
73+
# https://docs.nunit.org/articles/nunit/running-tests/Console-Command-Line.html
74+
run: ./NUnit.ConsoleRunner.3.15.2\tools\nunit3-console.exe /timeout 10000 /process Separate ./OptimizelySDK.Tests/bin/Release/OptimizelySDK.Tests.dll
75+
- name: Find and sign all DLLs
7176
id: unit_tests
7277
run: |
73-
sudo find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do sn -R $file ./keypair.snk; done
74-
- name: Check on success
78+
Get-ChildItem -Recurse -Exclude '.*Tests.*' -Include 'OptimizelySDK*.dll' |
79+
Where-Object { $_.DirectoryName -match '\\bin\\Release' } |
80+
Foreach-Object { & $env:WINDOWS_2019_SN_PATH -R $_.FullName ./keypair.snk }
81+
- name: Install AWS CLI, deploy to S3 on successful tests & for release
7582
if: steps.unit_tests.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == 'push'
7683
env:
7784
AWS_ACCESS_KEY_ID: ${{ secrets.OFTA_KEY }}
7885
AWS_SECRET_ACCESS_KEY: ${{ secrets.OFTA_SECRET }}
7986
AWS_DEFAULT_REGION: ${{ secrets.OFTA_REGION }}
8087
run: |
81-
find . -path './OptimizelySDK*bin/Release/OptimizelySDK*.dll' -not -regex '.*Tests.*' -print0 | while IFS= read -r -d '' file; do (aws s3 cp $file s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned); done
82-
88+
Install-Module -Name AWS.Tools.Installer -Force;
89+
Install-AWSToolsModule AWS.Tools.S3 -Force -CleanUp;
90+
Get-ChildItem -Recurse -Exclude '.*Tests.*' -include 'OptimizelySDK*.dll' | Where-Object { $_.DirectoryName -match '\\bin\\Release' } | Foreach-Object { aws s3 cp $_.FullName s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/$(basename $file)-unsigned }
91+
8392
netStandard16:
93+
name: Build For .NET Standard 1.6
8494
runs-on: windows-2022
8595
env:
8696
REPO_SLUG: ${{ github.repository }}
@@ -90,19 +100,17 @@ jobs:
90100
EVENT_TYPE: ${{ github.event_name }}
91101
CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
92102
steps:
93-
- uses: actions/checkout@v3
103+
- name: Checkout code
104+
uses: actions/checkout@v3
94105
- name: Setup .NET
95106
uses: actions/setup-dotnet@v2
96107
with:
97108
dotnet-version: 3.1.x
98109
- name: Restore dependencies
99110
run: dotnet restore OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj
100-
- name: Build
111+
- name: Build and sign Standard 1.6 project
101112
id: netStandard16_build
102-
run: |
103-
# strongname signing is taken care of in build step
104-
dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
105-
# TODO: no dotnet test yet for NetStandard16
113+
run: dotnet build OptimizelySDK.NetStandard16/OptimizelySDK.NetStandard16.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
106114
- name: Check on success
107115
if: steps.netStandard16_build.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == 'push'
108116
env:
@@ -113,6 +121,7 @@ jobs:
113121
(aws s3 cp ./OptimizelySDK.NetStandard16/bin/Release/netstandard1.6/OptimizelySDK.NetStandard16.dll s3://optly-fs-travisci-artifacts/${{ env.REPO_SLUG }}/${{ env.BUILD_NUMBER }}/${{ env.RUN_NUMBER }}/${{ env.ATTEMPT_NUM }}/OptimizelySDK.NetStandard16.dll-unsigned)
114122
115123
netStandard20:
124+
name: Build For .NET Standard 2.0
116125
runs-on: windows-2022
117126
env:
118127
REPO_SLUG: ${{ github.repository }}
@@ -122,19 +131,17 @@ jobs:
122131
EVENT_TYPE: ${{ github.event_name }}
123132
CURRENT_BRANCH: ${{ github.head_ref || github.ref_name }}
124133
steps:
125-
- uses: actions/checkout@v3
134+
- name: Checkout code
135+
uses: actions/checkout@v3
126136
- name: Setup .NET
127137
uses: actions/setup-dotnet@v2
128138
with:
129139
dotnet-version: 3.1.x
130140
- name: Restore dependencies
131141
run: dotnet restore OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj
132-
- name: Build
142+
- name: Build and sign Standard 2.0 project
133143
id: netStandard20_build
134-
run: |
135-
# strongname signing is taken care of in build step
136-
dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
137-
# TODO: no dotnet test yet for NetStandard20
144+
run: dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=D:\a\csharp-sdk\csharp-sdk\keypair.snk -c Release
138145
- name: Check on success
139146
if: steps.netStandard20_build.outcome == 'success' && env.CURRENT_BRANCH == env.RELEASE_BRANCH && env.EVENT_TYPE == 'push'
140147
env:

.github/workflows/ticket_reference_check.yml

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
name: Jira ticket reference check
1+
name: Jira Ticket Reference Check
22

33
on:
44
pull_request:
5-
types: [opened, edited, reopened, synchronize]
5+
types: [opened, edited, reopened, synchronize]
66

77
jobs:
8-
98
jira_ticket_reference_check:
109
runs-on: ubuntu-latest
11-
1210
steps:
1311
- name: Check for Jira ticket reference
1412
uses: optimizely/github-action-ticket-reference-checker-public@master

OptimizelySDK.Tests/App.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<configSections>
99
<section name="optlySDKConfigSection"
10-
type="OptimizelySDK.OptimizelySDKConfigSection, OptimizelySDK, Version=3.2.0.0, Culture=neutral, PublicKeyToken=null" />
10+
type="OptimizelySDK.OptimizelySDKConfigSection, OptimizelySDK" />
1111
</configSections>
1212

1313
<optlySDKConfigSection>

0 commit comments

Comments
 (0)