2015-02-23 30 views
5

Kullanılabilir bir redis örneğine ihtiyaç duyan AppVeyor'da bazı xUnit testlerini çalıştırmak istiyorum. Eğerredis-server'ı uygulayıcıda başlat

version: 1.0.{build} 
before_build: 
- nuget restore .\Hangfire.Redis.StackExchange.sln 
- START .\packages\Redis-32.2.6.12.1\tools\redis-server.exe ".\packages\Redis-32.2.6.12.1\tools\redis.conf" 
- '@ECHO Redis Started' 
build: 
    publish_nuget: true 
    publish_nuget_symbols: true 
    verbosity: minimal 

maalesef inşa süreci START .\packages\Redis-32.2.6.12.1\tools\redis-server.exe ".\packages\Redis-32.2.6.12.1\tools\redis.conf"

sıkışmış appveyor.yml de görebileceğiniz gibi ben, bu yüzden özel bir çözüm ile sona AppVeyor ait "Hizmet" içinde REDIS bulundu vermedi herhangi bir fikir veya olası bir geçici çözüm? Bir Windows hizmeti olarak REDIS çalışan

cevap

3

, bu numarayı yaptı appveyor.yml bu. Temelde, github doğrudan sürümü indirmek halletmek bir klasörde, yüklemek ve bir hizmet Şahsen

version: 1.0.{build} 
before_build: 
- ps: >- 
    Invoke-WebRequest "https://github.com/MSOpenTech/redis/releases/download/win-2.8.17.4/redis-2.8.17.zip" -OutFile .\redis-2.8.17.zip; 

    $destFolder = "redis-2.8.17"; 

    $shell = new-object -com shell.application; 


    $zip = $shell.NameSpace("$pwd\redis-2.8.17.zip"); 

    if (Test-Path $pwd\$destFolder) 

    { 
     del $pwd\$destFolder -Force -Recurse 
    } 

    md ".\redis-2.8.17"; 

    foreach($item in $zip.items()) 

    { 
     $shell.Namespace("$pwd\redis-2.8.17").copyhere($item); 
    it kind of worked 

    cd $destFolder 

    .\redis-server.exe --service-install 

    .\redis-server.exe --service-start 

    cd .. 
- nuget restore Hangfire.Redis.StackExchange.sln 
build: 
    publish_nuget: true 
    publish_nuget_symbols: true 
    verbosity: minimal 
4

Dene: ilgilenen herkes için

before_build: 
- nuget restore .\Hangfire.Redis.StackExchange.sln 
- packages\Redis-32.2.6.12.1\tools\redis-server.exe --service-install 
- packages\Redis-32.2.6.12.1\tools\redis-server.exe --service-start 
- '@ECHO Redis Started' 
+0

iyi fikir! Ne yazık ki redis’in 2.6.12 sürümü, bir hizmet olarak yüklenmeyi desteklemiyor, ancak aynı fikri çikolatayı kullanarak deneyeceğim. – mCasamento

+1

It Worked! ;) Cevabını buraya yazacağım – mCasamento

+2

Harika! Gelecekte referans için - yapıyı engellemeden bir işlemi başlatmanın başka bir yolu 'Start-Process' PowerShell cmdlet'ini kullanmaktır. Genellikle, işlemin başlaması için 'Start-Sleep' cmdlet'i ile sonraki satırda bir miktar gecikme eklemelisiniz. –

2

Hep AppVeyor üzerine gerekli herhangi altyapı Worker kurmak yüklemek için chocolatey kullandığınız gibi REDIS başlatın. Yani burada ben kullanırım appveyor.yml (ve hangi REDIS gerek kendi projede benim için çalışıyor):

İşte
version: 1.0.{build} 
before_build: 
- choco install redis-64 
- redis-server --service-install 
- redis-server --service-start 
- nuget restore .\Hangfire.Redis.StackExchange.sln 
build: 
    publish_nuget: true 
    publish_nuget_symbols: true 
    verbosity: minimal 
0

ile çalışan bir powershell komut dosyası ile appveyor.yml bir örnektir Redis-3.2.100 hangi chocolately şu anda kullanılamaz:

appveyor.yml

install: 
    - cmd: cd c:\ && mkdir c:\redis-3.2.100 
    - ps: c:\Users\root\repos\<YOUR_REPO>\deploy\redis.ps1 

redis.ps1

Add-Type -assembly "system.io.compression.filesystem" 
$source="https://github.com/MicrosoftArchive/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.zip" 
$destination="c:\redisarchive" 
Invoke-WebRequest $source -OutFile $destination 
[IO.Compression.ZipFile]::ExtractToDirectory('c:\redisarchive', 'c:\redis-3.2.100') 

cd c:\redis-3.2.100 
.\redis-server.exe --service-install 
.\redis-server.exe --service-start 
cd ..