Skip to content

Commit

Permalink
[build] properly get selenium manager from bazel output (#13452)
Browse files Browse the repository at this point in the history
* [build] properly get selenium manager from bazel output

* Migrate to cross-platform msbuild targets

---------

Co-authored-by: Nikolay Borisenko <nikolay.v.borisenko@gmail.com>
  • Loading branch information
titusfortner and nvborisenko committed Jan 18, 2024
1 parent 401f3e3 commit 60cfe1f
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 147 deletions.
18 changes: 18 additions & 0 deletions dotnet/src/webdriver/BUILD.bazel
Expand Up @@ -109,6 +109,24 @@ copy_file(
out = "transitive.Selenium.WebDriver.targets",
)

copy_file(
name = "manager-linux",
src = "//common/manager:selenium-manager-linux",
out = "manager/linux/selenium-manager",
)

copy_file(
name = "manager-macos",
src = "//common/manager:selenium-manager-macos",
out = "manager/macos/selenium-manager",
)

copy_file(
name = "manager-windows",
src = "//common/manager:selenium-manager-windows",
out = "manager/windows/selenium-manager.exe",
)

nuget_pack(
name = "webdriver-pack",
files = {
Expand Down
87 changes: 43 additions & 44 deletions dotnet/src/webdriver/WebDriver.csproj
Expand Up @@ -44,58 +44,19 @@

<ItemGroup>
<InternalsVisibleTo Include="WebDriver.Common.Tests" />

<Compile Remove="cdp\**" />
<Compile Remove="obj\**" />
<EmbeddedResource Remove="cdp\**" />
<EmbeddedResource Remove="obj\**" />
<None Remove="cdp\**" />
<None Remove="obj\**" />
</ItemGroup>

<ItemGroup>
<None Remove="Settings.StyleCop" />
<None Remove="WebDriver.ruleset" />
</ItemGroup>

<ItemGroup>
<Compile Include="..\..\..\bazel-bin\dotnet\src\webdriver\cdp\**\*.cs" LinkBase="DevTools\generated" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>

<ItemGroup>
<EmbeddedResource Include="$(ProjectDir)..\..\..\third_party\js\selenium\webdriver.json">
<Visible>False</Visible>
<LogicalName>webdriver_prefs.json</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)..\..\..\bazel-bin\javascript\webdriver\atoms\get-attribute.js">
<Visible>False</Visible>
<LogicalName>get-attribute.js</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)..\..\..\bazel-bin\javascript\atoms\fragments\is-displayed.js">
<Visible>False</Visible>
<LogicalName>is-displayed.js</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)..\..\..\bazel-bin\javascript\atoms\fragments\find-elements.js">
<Visible>False</Visible>
<LogicalName>find-elements.js</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)..\..\..\javascript\cdp-support\mutation-listener.js">
<Visible>False</Visible>
<LogicalName>mutation-listener.js</LogicalName>
</EmbeddedResource>
</ItemGroup>

<ItemGroup>
<Folder Include="Remote\JsonConverters\" />
</ItemGroup>

<PropertyGroup>
<BaseSeleniumManagerPath>..\..\..\common\manager</BaseSeleniumManagerPath>
<BaseImagePath>..\..\..\common\images</BaseImagePath>
<BaseImagePath>..\..\..\bazel-bin\dotnet\src\webdriver\images</BaseImagePath>
</PropertyGroup>

<ItemGroup>
Expand All @@ -109,12 +70,50 @@
<None Include="$(BaseSeleniumManagerPath)\windows\selenium-manager.exe" Pack="true" PackagePath="manager\windows" Visible="false" />
</ItemGroup>

<Target Name="PreBuild" BeforeTargets="PreBuildEvent" Condition="'$(OS)' == 'Windows_NT'">
<Exec Command="call $(ProjectDir)WebDriver.csproj.prebuild.cmd $(ProjectDir)" />
<Target Name="GenerateSeleniumManagerBinaries" BeforeTargets="PrepareForBuild">
<Exec Command="bazel build //dotnet/src/webdriver:manager-linux //dotnet/src/webdriver:manager-windows //dotnet/src/webdriver:manager-macos"
WorkingDirectory="..\..\.." />

<PropertyGroup>
<BaseSeleniumManagerPath>..\..\..\bazel-bin\dotnet\src\webdriver\manager</BaseSeleniumManagerPath>
</PropertyGroup>
</Target>

<Target Name="PreBuildNonWindows" BeforeTargets="PreBuildEvent" Condition="'$(OS)' != 'Windows_NT'">
<Exec Command="$(ProjectDir)WebDriver.csproj.prebuild.sh $(ProjectDir)" />
<Target Name="GenerateAtoms" BeforeTargets="PrepareForBuild">
<Exec Command="bazel build //javascript/webdriver/atoms:get-attribute.js //javascript/atoms/fragments:is-displayed.js //javascript/atoms/fragments:find-elements.js"
WorkingDirectory="..\..\.." />

<ItemGroup>
<EmbeddedResource Include="$(ProjectDir)..\..\..\third_party\js\selenium\webdriver.json">
<Visible>False</Visible>
<LogicalName>webdriver_prefs.json</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)..\..\..\bazel-bin\javascript\webdriver\atoms\get-attribute.js">
<Visible>False</Visible>
<LogicalName>get-attribute.js</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)..\..\..\bazel-bin\javascript\atoms\fragments\is-displayed.js">
<Visible>False</Visible>
<LogicalName>is-displayed.js</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)..\..\..\bazel-bin\javascript\atoms\fragments\find-elements.js">
<Visible>False</Visible>
<LogicalName>find-elements.js</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="$(ProjectDir)..\..\..\javascript\cdp-support\mutation-listener.js">
<Visible>False</Visible>
<LogicalName>mutation-listener.js</LogicalName>
</EmbeddedResource>
</ItemGroup>
</Target>

<Target Name="GenerateCdp" BeforeTargets="PrepareForBuild">
<Exec Command="bazel build //dotnet/src/webdriver/cdp:generate-v85 //dotnet/src/webdriver/cdp:generate-v118 //dotnet/src/webdriver/cdp:generate-v119 //dotnet/src/webdriver/cdp:generate-v120"
WorkingDirectory="..\..\.." />

<ItemGroup>
<Compile Include="..\..\..\bazel-bin\dotnet\src\webdriver\cdp\**\*.cs" LinkBase="DevTools\generated" />
</ItemGroup>
</Target>

</Project>
49 changes: 0 additions & 49 deletions dotnet/src/webdriver/WebDriver.csproj.prebuild.cmd

This file was deleted.

42 changes: 0 additions & 42 deletions dotnet/src/webdriver/WebDriver.csproj.prebuild.sh

This file was deleted.

2 changes: 1 addition & 1 deletion dotnet/test/common/WebDriver.Common.Tests.csproj
Expand Up @@ -57,7 +57,7 @@

<!-- It is automatically imported when Selenium.WebDriver consumed via nuget package -->
<PropertyGroup>
<Selenium_Manager_BinariesRootPath>..\..\..\common\manager</Selenium_Manager_BinariesRootPath>
<Selenium_Manager_BinariesRootPath>..\..\..\bazel-bin\dotnet\src\webdriver\manager</Selenium_Manager_BinariesRootPath>
</PropertyGroup>
<Import Project="..\..\src\webdriver\assets\Selenium.WebDriver.targets" />

Expand Down
8 changes: 2 additions & 6 deletions dotnet/test/common/WebDriver.Common.Tests.csproj.prebuild.cmd
@@ -1,6 +1,2 @@
if not exist "%1..\..\..\bazel-bin\java\test\org\openqa\selenium\environment\appserver_deploy.jar" (
echo Building test web server
pushd "%1..\..\.."
bazel build //java/test/org/openqa/selenium/environment:appserver_deploy.jar
popd
)
echo Building test web server
bazel build //java/test/org/openqa/selenium/environment:appserver_deploy.jar
7 changes: 2 additions & 5 deletions dotnet/test/common/WebDriver.Common.Tests.csproj.prebuild.sh
@@ -1,6 +1,3 @@
#!/bin/bash
if [[ ! -f "%1..\..\..\bazel-bin\java\test\org\openqa\selenium\environment\appserver_deploy.jar" ]]
then
echo "Building test web server"
bazel build //java/test/org/openqa/selenium/environment:appserver_deploy.jar
fi
echo "Building test web server"
bazel build //java/test/org/openqa/selenium/environment:appserver_deploy.jar

0 comments on commit 60cfe1f

Please sign in to comment.