Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CI framework for Windows 64 #229

Merged
merged 10 commits into from
Jul 12, 2022

Conversation

samuel40791765
Copy link
Contributor

Issue #, if available:
CryptoAlg-1104

Description of changes:
Though official support for Windows (64-bit) is blocked on #48, we can still CI support for it.
Once the Windows CI framework is added to ACCP, we only have to reconfigure the tests/ci/run_windows_tests.bat test script for ACCP windows testing, then enable the CI support.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copy link
Contributor

@WillChilds-Klein WillChilds-Klein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall, looks good to me, but I'll caveat that by saying that I know very little about windows scripting, package managers, etc. and have never used windows on Docker. so, my feedback may not be the most useful...

given that ACCP won't yet build on windows, is there anything we can do to test these changes to ensure at least the docker images are building properly and the expected commands are being invoked? perhaps we can show the output of the failed ACCP gradle build when :build_and_test is run?

tests/ci/cdk/app.py Outdated Show resolved Hide resolved
tests/ci/cdk/util/metadata.py Show resolved Hide resolved
tests/ci/run_windows_tests.bat Outdated Show resolved Hide resolved
tests/ci/run_windows_tests.bat Outdated Show resolved Hide resolved
Copy link
Contributor Author

@samuel40791765 samuel40791765 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've verified the Windows docker image building portion works, along with the CI set up. I've attached a file which shows the docker image building output, along with a screenshot of the images living in the appropriate ECR. Along with that, the CI changes are tested in this local fork PR: samuel40791765#15

Running a test command with the script in the docker image outputs a gradle error during linking MSVC with AWS-LC. This would sound like one of the tasks to fix for ACCP Windows support, so I've stopped here.

C:\codebuild\tmp\output\src862177151\src\github.com\samuel40791765\amazon-corretto-crypto-provider>gradlew.bat release "-DTEST_JAVA_MAJOR_VERSION=17"   \|\| goto error
--
135 | Downloading https://services.gradle.org/distributions/gradle-7.2-bin.zip
136 | ..........10%...........20%...........30%...........40%...........50%...........60%...........70%...........80%...........90%...........100%
137 |  
138 | Welcome to Gradle 7.2!
139 |  
140 | Here are the highlights of this release:
141 | - Toolchain support for Scala
142 | - More cache hits when Java source files have platform-specific line endings
143 | - More resilient remote HTTP build cache behavior
144 |  
145 | For more details see https://docs.gradle.org/7.2/release-notes.html
146 |  
147 | Starting a Gradle Daemon (subsequent builds will be faster)
148 | > Task :assemble UP-TO-DATE
149 |  
150 | > Task :buildAwsLc
151 | -- Building for: Visual Studio 15 2017
152 | CMake Error at CMakeLists.txt:4 (project):
153 | Failed to run MSBuild command:
154 | -- Configuring incomplete, errors occurred!
155 |  
156 | See also "C:/codebuild/tmp/output/src862177151/src/github.com/samuel40791765/amazon-corretto-crypto-provider/build/awslc/build/CMakeFiles/CMakeOutput.log".
157 | C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/MSBuild/15.0/Bin/MSBuild.exe
158 |  
159 | to get the value of VCTargetsPath:
160 |  
161 | Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
162 | Copyright (C) Microsoft Corporation. All rights reserved.
163 |  
164 | Build started 7/9/2022 4:10:51 AM.
165 | Project "C:\codebuild\tmp\output\src862177151\src\github.com\samuel40791765\amazon-corretto-crypto-provider\build\awslc\build\CMakeFiles\3.15.4\VCTargetsPath.vcxproj" on node 1 (default targets).
166 | C:\codebuild\tmp\output\src862177151\src\github.com\samuel40791765\amazon-corretto-crypto-provider\build\awslc\build\CMakeFiles\3.15.4\VCTargetsPath.vcxproj(15,2): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
167 | Done Building Project "C:\codebuild\tmp\output\src862177151\src\github.com\samuel40791765\amazon-corretto-crypto-provider\build\awslc\build\CMakeFiles\3.15.4\VCTargetsPath.vcxproj" (default targets) -- FAILED.
168 |  
169 | Build FAILED.
170 |  
171 | "C:\codebuild\tmp\output\src862177151\src\github.com\samuel40791765\amazon-corretto-crypto-provider\build\awslc\build\CMakeFiles\3.15.4\VCTargetsPath.vcxproj" (default target) (1) ->
172 | C:\codebuild\tmp\output\src862177151\src\github.com\samuel40791765\amazon-corretto-crypto-provider\build\awslc\build\CMakeFiles\3.15.4\VCTargetsPath.vcxproj(15,2): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
173 |  
174 | 0 Warning(s)
175 | 1 Error(s)
176 |  
177 | Time Elapsed 00:00:00.40
178 |  
179 |  
180 | Exit code: 1
181 |  
182 |  
183 |  
184 |  
185 | > Task :buildAwsLc FAILED
186 |  
187 | FAILURE: Build failed with an exception.
188 |  
189 | * Where:
190 | Build file 'C:\codebuild\tmp\output\src862177151\src\github.com\samuel40791765\amazon-corretto-crypto-provider\build.gradle' line: 75
191 |  
192 | * What went wrong:
193 | Execution failed for task ':buildAwsLc'.
194 | > Process 'command 'cmake'' finished with non-zero exit value 1

Docker image building: nohup.txt
ECR: Screen Shot 2022-07-08 at 5 35 04 PM

tests/ci/cdk/util/metadata.py Show resolved Hide resolved
tests/ci/run_windows_tests.bat Outdated Show resolved Hide resolved
Copy link
Contributor

@WillChilds-Klein WillChilds-Klein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks great, thanks sam!

@samuel40791765 samuel40791765 merged commit bbcfdbd into corretto:develop Jul 12, 2022
@samuel40791765 samuel40791765 deleted the save-windows branch July 12, 2022 22:04
WillChilds-Klein pushed a commit to WillChilds-Klein/amazon-corretto-crypto-provider that referenced this pull request Jul 15, 2022
Though official support for Windows (64-bit) is blocked, we can
still add CI support for it. Once the Windows CI framework is
added to ACCP, we only have to reconfigure the
`tests/ci/run_windows_tests.bat` test script for ACCP windows
testing, then enable the CI support.
WillChilds-Klein pushed a commit that referenced this pull request Jul 25, 2022
Though official support for Windows (64-bit) is blocked, we can
still add CI support for it. Once the Windows CI framework is
added to ACCP, we only have to reconfigure the
`tests/ci/run_windows_tests.bat` test script for ACCP windows
testing, then enable the CI support.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants