11name : CI
22
33on :
4+ workflow_dispatch :
45 pull_request :
56 push :
67 branches :
78 - main
9+ - ali/redis_container_on_wind_runner
810 paths :
911 - ' *'
1012 - ' !/docs/*' # Don't run workflow when files are only in the /docs directory
1820 TERM : xterm # Enable color output in GitHub Actions
1921 steps :
2022 - name : Checkout code
21- uses : actions/checkout@v1
23+ uses : actions/checkout@v4
24+ with :
25+ fetch-depth : 0 # Fetch the full history
26+ - name : Start Redis Services (docker-compose)
27+ working-directory : ./tests/RedisConfigs
28+ run : docker compose -f docker-compose.yml up -d --wait
2229 - name : Install .NET SDK
2330 uses : actions/setup-dotnet@v3
2431 with :
2734 8.0.x
2835 - name : .NET Build
2936 run : dotnet build Build.csproj -c Release /p:CI=true
30- - name : Start Redis Services (docker-compose)
31- working-directory : ./tests/RedisConfigs
32- run : docker compose -f docker-compose.yml up -d --wait
3337 - name : StackExchange.Redis.Tests
3438 run : dotnet test tests/StackExchange.Redis.Tests/StackExchange.Redis.Tests.csproj -c Release --logger trx --logger GitHubActions --results-directory ./test-results/ /p:CI=true
3539 - uses : dorny/test-reporter@v1
@@ -52,39 +56,85 @@ jobs:
5256 DOCKER_BUILDKIT : 1
5357 steps :
5458 - name : Checkout code
55- uses : actions/checkout@v1
56- # - name: Install .NET SDK
57- # uses: actions/setup-dotnet@v3
58- # with:
59- # dotnet-version: |
60- # 6.0.x
61- # 8.0.x
59+ uses : actions/checkout@v4
60+ with :
61+ fetch-depth : 0 # Fetch the full history
62+ - uses : Vampire/setup-wsl@v2
63+ with :
64+ distribution : Ubuntu-22.04
65+ - name : Install Redis
66+ shell : wsl-bash {0}
67+ working-directory : ./tests/RedisConfigs
68+ run : |
69+ apt-get update
70+ apt-get install curl gpg lsb-release libgomp1 jq -y
71+ curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
72+ chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
73+ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
74+ apt-get update
75+ apt-get install -y redis
76+ mkdir redis
77+ - name : Run redis-server
78+ shell : wsl-bash {0}
79+ working-directory : ./tests/RedisConfigs/redis
80+ run : |
81+ pwd
82+ ls .
83+ # Run each server instance in order
84+ redis-server ../Basic/primary-6379.conf &
85+ redis-server ../Basic/replica-6380.conf &
86+ redis-server ../Basic/secure-6381.conf &
87+ redis-server ../Failover/primary-6382.conf &
88+ redis-server ../Failover/replica-6383.conf &
89+ redis-server ../Cluster/cluster-7000.conf --dir ../Cluster &
90+ redis-server ../Cluster/cluster-7001.conf --dir ../Cluster &
91+ redis-server ../Cluster/cluster-7002.conf --dir ../Cluster &
92+ redis-server ../Cluster/cluster-7003.conf --dir ../Cluster &
93+ redis-server ../Cluster/cluster-7004.conf --dir ../Cluster &
94+ redis-server ../Cluster/cluster-7005.conf --dir ../Cluster &
95+ redis-server ../Sentinel/redis-7010.conf &
96+ redis-server ../Sentinel/redis-7011.conf &
97+ redis-server ../Sentinel/sentinel-26379.conf --sentinel &
98+ redis-server ../Sentinel/sentinel-26380.conf --sentinel &
99+ redis-server ../Sentinel/sentinel-26381.conf --sentinel &
100+ # Wait for server instances to get ready
101+ sleep 5
102+ echo "Checking redis-server version with port 6379"
103+ redis-cli -p 6379 INFO SERVER | grep redis_version || echo "Failed to get version for port 6379"
104+ echo "Checking redis-server version with port 6380"
105+ redis-cli -p 6380 INFO SERVER | grep redis_version || echo "Failed to get version for port 6380"
106+ echo "Checking redis-server version with port 6381"
107+ redis-cli -p 6381 INFO SERVER | grep redis_version || echo "Failed to get version for port 6381"
108+ echo "Checking redis-server version with port 6382"
109+ redis-cli -p 6382 INFO SERVER | grep redis_version || echo "Failed to get version for port 6382"
110+ echo "Checking redis-server version with port 6383"
111+ redis-cli -p 6383 INFO SERVER | grep redis_version || echo "Failed to get version for port 6383"
112+ echo "Checking redis-server version with port 7000"
113+ redis-cli -p 7000 INFO SERVER | grep redis_version || echo "Failed to get version for port 7000"
114+ echo "Checking redis-server version with port 7001"
115+ redis-cli -p 7001 INFO SERVER | grep redis_version || echo "Failed to get version for port 7001"
116+ echo "Checking redis-server version with port 7002"
117+ redis-cli -p 7002 INFO SERVER | grep redis_version || echo "Failed to get version for port 7002"
118+ echo "Checking redis-server version with port 7003"
119+ redis-cli -p 7003 INFO SERVER | grep redis_version || echo "Failed to get version for port 7003"
120+ echo "Checking redis-server version with port 7004"
121+ redis-cli -p 7004 INFO SERVER | grep redis_version || echo "Failed to get version for port 7004"
122+ echo "Checking redis-server version with port 7005"
123+ redis-cli -p 7005 INFO SERVER | grep redis_version || echo "Failed to get version for port 7005"
124+ echo "Checking redis-server version with port 7010"
125+ redis-cli -p 7010 INFO SERVER | grep redis_version || echo "Failed to get version for port 7010"
126+ echo "Checking redis-server version with port 7011"
127+ redis-cli -p 7011 INFO SERVER | grep redis_version || echo "Failed to get version for port 7011"
128+ echo "Checking redis-server version with port 26379"
129+ redis-cli -p 26379 INFO SERVER | grep redis_version || echo "Failed to get version for port 26379"
130+ echo "Checking redis-server version with port 26380"
131+ redis-cli -p 26380 INFO SERVER | grep redis_version || echo "Failed to get version for port 26380"
132+ echo "Checking redis-server version with port 26381"
133+ redis-cli -p 26381 INFO SERVER | grep redis_version || echo "Failed to get version for port 26381"
134+ continue-on-error : true
135+
62136 - name : .NET Build
63137 run : dotnet build Build.csproj -c Release /p:CI=true
64- # We can't do this combination - see https://github.com/actions/runner/issues/904
65- # - name: Start Redis Services (docker-compose)
66- # working-directory: .\tests\RedisConfigs
67- # run: docker compose -f docker-compose.yml up -d --wait
68- - name : Start Redis Services (v3.0.503)
69- working-directory : .\tests\RedisConfigs\3.0.503
70- run : |
71- .\redis-server.exe --service-install --service-name "redis-6379" "..\Basic\primary-6379-3.0.conf"
72- .\redis-server.exe --service-install --service-name "redis-6380" "..\Basic\replica-6380.conf"
73- .\redis-server.exe --service-install --service-name "redis-6381" "..\Basic\secure-6381.conf"
74- .\redis-server.exe --service-install --service-name "redis-6382" "..\Failover\primary-6382.conf"
75- .\redis-server.exe --service-install --service-name "redis-6383" "..\Failover\replica-6383.conf"
76- .\redis-server.exe --service-install --service-name "redis-7000" "..\Cluster\cluster-7000.conf" --dir "..\Cluster"
77- .\redis-server.exe --service-install --service-name "redis-7001" "..\Cluster\cluster-7001.conf" --dir "..\Cluster"
78- .\redis-server.exe --service-install --service-name "redis-7002" "..\Cluster\cluster-7002.conf" --dir "..\Cluster"
79- .\redis-server.exe --service-install --service-name "redis-7003" "..\Cluster\cluster-7003.conf" --dir "..\Cluster"
80- .\redis-server.exe --service-install --service-name "redis-7004" "..\Cluster\cluster-7004.conf" --dir "..\Cluster"
81- .\redis-server.exe --service-install --service-name "redis-7005" "..\Cluster\cluster-7005.conf" --dir "..\Cluster"
82- .\redis-server.exe --service-install --service-name "redis-7010" "..\Sentinel\redis-7010.conf"
83- .\redis-server.exe --service-install --service-name "redis-7011" "..\Sentinel\redis-7011.conf"
84- .\redis-server.exe --service-install --service-name "redis-26379" "..\Sentinel\sentinel-26379.conf" --sentinel
85- .\redis-server.exe --service-install --service-name "redis-26380" "..\Sentinel\sentinel-26380.conf" --sentinel
86- .\redis-server.exe --service-install --service-name "redis-26381" "..\Sentinel\sentinel-26381.conf" --sentinel
87- Start-Service redis-*
88138 - name : StackExchange.Redis.Tests
89139 run : dotnet test tests/StackExchange.Redis.Tests/StackExchange.Redis.Tests.csproj -c Release --logger trx --logger GitHubActions --results-directory ./test-results/ /p:CI=true
90140 - uses : dorny/test-reporter@v1
0 commit comments