Skip to content

Commit

Permalink
Replacing storage emulator with Azurite
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiocav committed Jul 14, 2021
1 parent 37d3f63 commit 5504943
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 56 deletions.
8 changes: 1 addition & 7 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -281,16 +281,10 @@ jobs:
arguments: '-c Release'
projects: 'DotNetWorker.sln'

- pwsh: ./setup-e2e-tests.ps1 -SkipEmulators
- pwsh: ./setup-e2e-tests.ps1 -SkipCosmosDBEmulator
displayName: "Setup E2E tests"
env:
CORE_TOOLS_URL: $(CORE_TOOLS_URL)

- bash: |
sudo npm install -g azurite
sudo mkdir azurite
sudo azurite --silent --location azurite --debug azurite\debug.log &
displayName: 'Install and Run Azurite'

- task: DotNetCoreCLI@2
displayName: 'Run E2E tests'
Expand Down
5 changes: 2 additions & 3 deletions samples/FunctionApp/FunctionApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.3.0-local202106220952" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.0.3-local202106220952" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
</ItemGroup>
Expand All @@ -34,4 +33,4 @@
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
</Project>
15 changes: 9 additions & 6 deletions setup-e2e-tests.ps1
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
param(
[Parameter(Mandatory=$false)]
[Switch]
$SkipEmulators,
$SkipStorageEmulator,
[Parameter(Mandatory=$false)]
[Switch]
$SkipCosmosDBEmulator,
[Parameter(Mandatory=$false)]
[Switch]
$SkipCoreTools
Expand Down Expand Up @@ -94,15 +97,15 @@ if (Test-Path $output)

.\tools\devpack.ps1 -E2E -AdditionalPackArgs @("-c","Release") -SkipBuildOnPack

if (!$SkipEmulators)
{
.\tools\start-emulators.ps1
}
else
if ($SkipStorageEmulator -And $SkipCosmosDBEmulator)
{
Write-Host
Write-Host "---Skipping emulator startup---"
Write-Host
}
else
{
.\tools\start-emulators.ps1 -SkipStorageEmulator:$SkipStorageEmulator -SkipCosmosDBEmulator:$SkipCosmosDBEmulator
}

StopOnFailedExecution
119 changes: 79 additions & 40 deletions tools/start-emulators.ps1
Original file line number Diff line number Diff line change
@@ -1,63 +1,102 @@
param(
[Parameter(Mandatory=$false)]
[Switch]
$SkipStorageEmulator,
[Parameter(Mandatory=$false)]
[Switch]
$SkipCosmosDBEmulator,
[Parameter(Mandatory=$false)]
[Switch]
$NoWait
)

Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"
$storageEmulatorExe = "${Env:ProgramFiles(x86)}\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe"
Write-Host "Skip CosmosDB Emulator: $SkipCosmosDBEmulator"
Write-Host "Skip Storage Emulator: $SkipStorageEmulator"

if (!$SkipCosmosDBEmulator)
{
Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator"
}

$startedCosmos = $false
$startedStorage = $false

if (!$IsWindows -and !$IsLinux -and !$IsMacOs)
{
# For pre-PS6
Write-Host "Could not resolve OS. Assuming Windows."
$IsWindows = $true
}

function IsStorageEmulatorRunning()
{
$command = & $storageEmulatorExe "status"
foreach ($line in $command)
try
{
if ($line.StartsWith("IsRunning: "))
{
if ($line.Replace("IsRunning: ", "") -eq "True")
{
return $true
}
}
$response = Invoke-WebRequest -Uri "http://127.0.0.1:10000/"
$StatusCode = $Response.StatusCode
}
catch
{
$StatusCode = $_.Exception.Response.StatusCode.value__
}
return $false
}

Write-Host ""
Write-Host "---Starting CosmosDB emulator---"
$cosmosStatus = Get-CosmosDbEmulatorStatus
if ($StatusCode -eq 400)
{
return $true
}

if ($cosmosStatus -ne "Running")
{
Write-Host "CosmosDB emulator is not running. Starting emulator."
Start-CosmosDbEmulator -NoWait
$startedCosmos = $true
}
else
{
Write-Host "CosmosDB emulator is already running."
return $false
}

Write-Host "------"
Write-Host ""
Write-Host "---Starting Storage emulator---"
$storageEmulatorRunning = IsStorageEmulatorRunning

if ($storageEmulatorRunning -eq $false)
if (!$SkipCosmosDBEmulator)
{
Write-Host "Storage emulator is not running. Starting emulator."
Start-Process -FilePath $storageEmulatorExe -ArgumentList "start"
$startedStorage = $true
Write-Host ""
Write-Host "---Starting CosmosDB emulator---"
$cosmosStatus = Get-CosmosDbEmulatorStatus

if ($cosmosStatus -ne "Running")
{
Write-Host "CosmosDB emulator is not running. Starting emulator."
Start-CosmosDbEmulator -NoWait
$startedCosmos = $true
}
else
{
Write-Host "CosmosDB emulator is already running."
}
}
else

if (!$SkipStorageEmulator)
{
Write-Host "Storage emulator is already running."
Write-Host "------"
Write-Host ""
Write-Host "---Starting Storage emulator---"
$storageEmulatorRunning = IsStorageEmulatorRunning

if ($storageEmulatorRunning -eq $false)
{
if ($IsWindows)
{
npm install -g azurite
Start-Process azurite.cmd -ArgumentList "--silent"
}
else
{
sudo npm install -g azurite
sudo mkdir azurite
sudo azurite --silent --location azurite --debug azurite\debug.log &
}

$startedStorage = $true
}
else
{
Write-Host "Storage emulator is already running."
}

Write-Host "------"
Write-Host
}
Write-Host "------"
Write-Host

if ($NoWait -eq $true)
{
Expand All @@ -66,7 +105,7 @@ if ($NoWait -eq $true)
exit 0
}

if ($startedCosmos -eq $true)
if (!$SkipCosmosDBEmulator -and $startedCosmos -eq $true)
{
Write-Host "---Waiting for CosmosDB emulator to be running---"
while ($cosmosStatus -ne "Running")
Expand All @@ -80,7 +119,7 @@ if ($startedCosmos -eq $true)
Write-Host
}

if ($startedStorage -eq $true)
if (!$SkipStorageEmulator -and $startedStorage -eq $true)
{
Write-Host "---Waiting for Storage emulator to be running---"
$storageEmulatorRunning = IsStorageEmulatorRunning
Expand Down

0 comments on commit 5504943

Please sign in to comment.