Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
407 commits
Select commit Hold shift + click to select a range
de66f58
Install java with chocolatey
jduo Oct 30, 2025
f1c6448
Avoid Windows Store alias for python
jduo Oct 30, 2025
2ad5282
Python and java installation fixes
jduo Oct 30, 2025
0e6e1a8
Remove outdated Python step
jduo Oct 30, 2025
ed27f73
Try to fix python again
jduo Oct 30, 2025
2d2185d
Explicitly install chocolatey earlier
jduo Oct 30, 2025
903d3c7
Try putting chocolatey on the PATH
jduo Oct 30, 2025
76a0288
Diagnosing python errors
jduo Oct 30, 2025
74feeba
Remove corrupt chocolatey installs
jduo Oct 30, 2025
e70abde
Remove corrupt chocolatey
jduo Oct 30, 2025
98491d2
Update PATH after chocolatey install
jduo Oct 30, 2025
0cb3be3
Install C++ MSVC components
jduo Oct 30, 2025
657caa3
Install the C++ build tools specifically
jduo Oct 30, 2025
86b9eda
Install 2022 build tools
jduo Oct 30, 2025
edbbf6a
Powershell syntax error
jduo Oct 30, 2025
4252e05
Debugging VS install
jduo Oct 31, 2025
eae6661
Try manual install of VS instead of chocolatey
jduo Oct 31, 2025
40d376f
Cmd.exe lookup
jduo Oct 31, 2025
7f663eb
Prettier
jduo Oct 31, 2025
73c2420
Skip MSVC validation
jduo Oct 31, 2025
915fc5a
Rust installation
jduo Oct 31, 2025
db219b2
Use shell conditionally
jduo Oct 31, 2025
c0b3b5f
Install Rust through chocolatey
jduo Oct 31, 2025
eedb21d
Add missing rust commands and explicitly get protoc 29.1
jduo Oct 31, 2025
004421f
Install rust-ms to use the MSVC toolchain
jduo Oct 31, 2025
d4565b3
Add rustfmt and clippy to the PATH
jduo Oct 31, 2025
640bb4e
Try finding link.exe and adding it to the PATH
jduo Oct 31, 2025
c1c56ca
Remove non-ascii symbols
jduo Oct 31, 2025
d998493
Add Windows SDK to library PATH
jduo Oct 31, 2025
bb760a2
Install the Windows SDK
jduo Oct 31, 2025
9ec7185
Use vcvars.bat
jduo Oct 31, 2025
24075ab
Install Windows SDK with Chocolatey
jduo Oct 31, 2025
178abb6
Caching build tools
jduo Oct 31, 2025
53817a4
Use remote valkey for Jedis integration tests
jduo Oct 31, 2025
e1d7d48
Don't look for windows store versions of dependencies
jduo Oct 31, 2025
e36d404
Use proper protoc path
jduo Oct 31, 2025
91d2312
Various build tool issues
jduo Oct 31, 2025
dc8ee75
Update the GITHUB_PATH
jduo Oct 31, 2025
76301b0
Remote clusters in gradle
jduo Oct 31, 2025
b2b176c
Logging variables
jduo Oct 31, 2025
d0a7491
Make pubsub consistent with non-pubsub tests workflows
jduo Oct 31, 2025
f0daa53
debugging variables
jduo Oct 31, 2025
c502386
More diagnostics
jduo Oct 31, 2025
f9c9429
Test renaming some files to see if they are used
jduo Oct 31, 2025
59cd739
Correctly log environment
jduo Oct 31, 2025
1e5e0ab
Avoid reinstalling chocolatey
jduo Oct 31, 2025
dd6d324
Consistency between pubsub and non-pubsub
jduo Oct 31, 2025
05b178a
Dummy test of an existing, working repository variable
jduo Oct 31, 2025
fc0d210
Fix dangling quote
jduo Oct 31, 2025
91767c3
Typo
jduo Oct 31, 2025
e108ccc
More debugging gradle
jduo Oct 31, 2025
6af2371
Add logging to remote_cluster_manager
jduo Oct 31, 2025
ab3916d
hardcode the logfile
jduo Oct 31, 2025
a1f0109
log files
jduo Oct 31, 2025
434e6de
More logging
jduo Oct 31, 2025
8fdcd3c
Start the remote cluster on its localhost rather than 0.0.0.0
jduo Oct 31, 2025
5683351
Add installation of valkey to remote_cluster_manager.py
jduo Nov 1, 2025
6ebce10
Remove dead code
jduo Nov 1, 2025
42cb8e8
Remove VPC-specific behavior
jduo Nov 1, 2025
34d6395
Make the manager type an enum
jduo Nov 1, 2025
37703a3
Spotless
jduo Nov 1, 2025
57ff687
Quote the engine version when passing to gradle
jduo Nov 1, 2025
ec23f22
Support TLS clusters in remote_cluster_manager.py
jduo Nov 1, 2025
2a777f2
Correct the output from remote_cluster_manager.py
jduo Nov 1, 2025
d17e9f0
Rework integration tests to fail fast if the clusters failed to start
jduo Nov 1, 2025
2165538
Do not run Redis 6.2 against Windows
jduo Nov 1, 2025
edf5e1c
Correct issues reading TLS parameters
jduo Nov 1, 2025
b917123
Have remote_cluster_manager.py generate default certs
jduo Nov 1, 2025
679aa90
Generate certs on the Linux server and copy them back to WIndows with…
jduo Nov 1, 2025
40fc238
Speed up builds on Windows
jduo Nov 1, 2025
714fe06
Remove use of stale --tls flag
jduo Nov 1, 2025
55109ab
TLS fixes
jduo Nov 1, 2025
bf4927f
Explicitly copy the current branch's cluster_manager.py to the remote…
jduo Nov 1, 2025
c65bac8
Correct and standardize the endpoint listing
jduo Nov 1, 2025
55b0c3d
Fix incorrect skipping of redis 6.2 on Linux/Mac
jduo Nov 1, 2025
58d9ac3
Fix linting issue due to rust update
jduo Nov 1, 2025
6e2f75e
Fixes for allowing remote connections to the started external valkey …
jduo Nov 1, 2025
c0cca68
Fix cargo formatting
jduo Nov 1, 2025
4f4706f
Don't use non-ASCII characters in source code
jduo Nov 1, 2025
2050d20
Fix trailing whitespace in endpoint output
jduo Nov 1, 2025
0e36d8e
Handle line feeds on different OSes
jduo Nov 1, 2025
1b40c15
Handle line endings correctly in gradle
jduo Nov 2, 2025
a26b9f1
Try to restore Redis 6.2 runs
jduo Nov 2, 2025
a5101d6
More logging for TLS certs
jduo Nov 2, 2025
d1021e6
Allow specifying IPs on generated certs
jduo Nov 2, 2025
c0c6e3d
Temporarily disable some tests for debugging
jduo Nov 2, 2025
95452fd
Add more logging during certificate generation
jduo Nov 2, 2025
d9b2ca5
Add logging for debugging TLS cluster issues
jduo Nov 3, 2025
cec169a
Disable TLS across nodes, only encrypt client/server
jduo Nov 3, 2025
db98ebf
Fix incorrect cluster manager being used for cleanup tasks
jduo Nov 3, 2025
f36f4a4
Use TLS for the client port but not internally
jduo Nov 3, 2025
b4fd871
Turn internal cluster TLS back on
jduo Nov 3, 2025
d9d22e1
Fix failure to shutdown remote servers
jduo Nov 3, 2025
b50e230
Skip tests other than TLS failures
jduo Nov 3, 2025
8bf90fe
Fix gradle syntax error
jduo Nov 3, 2025
a457a79
Test using --tls-port and setting --port to 0
jduo Nov 3, 2025
df5a6d5
Python syntax error
jduo Nov 3, 2025
5c9edb3
Re-enable tls-cluster and add more logging
jduo Nov 3, 2025
49731db
More logging for investigating the appearance of surprise ports
jduo Nov 3, 2025
533c4a8
Test all endpoints
jduo Nov 3, 2025
775dc02
Check that insecure TLS works with remote clusters
jduo Nov 3, 2025
3dd25ac
TLS issue debugging
jduo Nov 3, 2025
c140241
Increase number of replicas to see if the problem is always the last …
jduo Nov 3, 2025
35f543f
Spotless
jduo Nov 3, 2025
4a2cec1
Remove invalid test
jduo Nov 3, 2025
595cd86
Try 0 replicas and 6 masters to determine if the issue is on the last…
jduo Nov 4, 2025
b99da65
Try sequential connections
jduo Nov 4, 2025
744ffb1
Test to skip the last address
jduo Nov 5, 2025
82601f1
Fix issue with only the last error in a cluster connection is reported
jduo Nov 5, 2025
ca89fb4
Add TLS diagnostics
jduo Nov 5, 2025
b738f7e
Add more diagnostics and test the core alone
jduo Nov 5, 2025
283bd52
Update rustls
jduo Nov 5, 2025
a6add4e
Update connection + TLS-related libraries
jduo Nov 5, 2025
ebfb9c6
Fix rust core test
jduo Nov 5, 2025
dc44fc7
Diagnostics for verifying the certificate content
jduo Nov 5, 2025
fa6b49b
Add newlines when concatenating certs
jduo Nov 6, 2025
a078488
Just execute one test
jduo Nov 6, 2025
6bcf7b1
Log more debugging info about certs in Rust
jduo Nov 6, 2025
5a2178b
Explicitly copy the TLS cert rather than using clone()
jduo Nov 6, 2025
85daa35
Call retrieve_tls_certificates on the copied data
jduo Nov 6, 2025
d172fd6
Test valkey-cli using cluster mode
jduo Nov 6, 2025
ecfe048
Log if the copied cert has line endings
jduo Nov 6, 2025
2766a71
Switch to WSL-based testing for Windows
jduo Nov 6, 2025
306899f
Integrate WSL support in Gradle and Java cluster management
jduo Nov 6, 2025
6e2eaaf
Update test matrix to include GitHub-hosted Windows runners
jduo Nov 6, 2025
8f21477
Skip installing MSVC, rust, etc
jduo Nov 6, 2025
9cba1a0
FIx gradle build error
jduo Nov 6, 2025
428e31b
Use WSL for more gradle tasks
jduo Nov 6, 2025
409e6df
Add Valkey and WSL setup to pubsub workflow
jduo Nov 6, 2025
f61aaf8
Use vampire WSL to setup WSL faster
jduo Nov 6, 2025
f3d0c73
Go back to older WSL setup
jduo Nov 6, 2025
dc11020
Fix missing Valkey/WSL setup
jduo Nov 6, 2025
1cf5e37
Fixing WSL/Valkey setup
jduo Nov 6, 2025
63cb8fb
Enable Windows ARM to make sure this design works
jduo Nov 6, 2025
6d58c9e
Fix extraneous python3 invocation
jduo Nov 7, 2025
13856c6
Add more logging and add don't use hardcoded paths
jduo Nov 7, 2025
bc3a113
Explicitly install protoc 29.1
jduo Nov 7, 2025
72340c7
Use 0 replicas for testing purposes
jduo Nov 7, 2025
b38ffaa
Remove invalid --log arg to cluster_manager.py calls
jduo Nov 7, 2025
dd72504
Attempt to fix valkey server parallel build
jduo Nov 7, 2025
c0060e0
Turn off replicas
jduo Nov 7, 2025
9b576fa
Debugging missing cert errors
jduo Nov 7, 2025
b3533f5
Remove TLS debugging
jduo Nov 7, 2025
74b93f6
Correct --tls flag to be after the subcommand
jduo Nov 7, 2025
6464003
Add more logging to debug cluster replica issue
jduo Nov 7, 2025
14defea
Re-enable replicas
jduo Nov 7, 2025
a5f12b3
Logging fixes
jduo Nov 7, 2025
7bb8b28
Don't use replicas for standalone
jduo Nov 7, 2025
98e0eff
Logging fixes
jduo Nov 7, 2025
8df44f2
Fix debugging info
jduo Nov 7, 2025
f596e76
Don't wait for the logs when using replicas. Instead sleep
jduo Nov 7, 2025
be4db6e
Remove waits and use sleeps for cluster tasks
jduo Nov 7, 2025
bdaa3c3
Move WSL diagnostic to workflow instead of gradle
jduo Nov 7, 2025
66124d5
Use Docker instead of WSL to host Valkey
jduo Nov 8, 2025
bb69595
Add waits back to cluster_manager.py instead of sleeps
jduo Nov 8, 2025
9ba34d5
Explicitly use Linux images
jduo Nov 8, 2025
43b2066
Fix malformed gradle
jduo Nov 8, 2025
91292ae
More fixes to use Linux mode for Docker
jduo Nov 8, 2025
bc60c74
Try buildx
jduo Nov 8, 2025
9571532
Install buildx using a Github action
jduo Nov 8, 2025
8e156a6
Enable Docker experimental mode
jduo Nov 8, 2025
cf97036
Try using an alpine image
jduo Nov 8, 2025
81ff169
Attempt to use WSL + Docker
jduo Nov 8, 2025
563dc92
Docker-in-WSL fixes
jduo Nov 8, 2025
d46c37c
Remove Valkey build and switch to ubuntu for docker
jduo Nov 8, 2025
797d0f1
Try to fix inability to get packages
jduo Nov 8, 2025
6c9535c
Add back missing valkey install on non-windows
jduo Nov 8, 2025
9de446c
Rework port binding
jduo Nov 8, 2025
92cda88
valkey startup cleanup
jduo Nov 8, 2025
6e84ded
Docker valkey-server install fixes
jduo Nov 8, 2025
c34db89
Fix quoting issue
jduo Nov 8, 2025
3cb731f
Remove sudo use
jduo Nov 8, 2025
e5ea65e
Docker fixing
jduo Nov 8, 2025
d630aff
Use powershell for setting up WSL/Docker
jduo Nov 8, 2025
b6d4a15
Rollback to working valkey build
jduo Nov 8, 2025
c93b18a
Remove powershell commands
jduo Nov 8, 2025
6a8cea8
Docker debugging
jduo Nov 8, 2025
922082e
Reverting to an earlier version which had valkey compiling
jduo Nov 8, 2025
8460b33
Debugging the docker build
jduo Nov 8, 2025
8caaa63
Use git to get the valkey code instead of downloading a tarball
jduo Nov 8, 2025
6bd46c4
Container debugging
jduo Nov 8, 2025
5d53790
Fix quoting issue
jduo Nov 8, 2025
4c6a3df
Avoid special chars in echos
jduo Nov 8, 2025
b203662
Simplify commands
jduo Nov 8, 2025
dd712a8
Fix dangling quote
jduo Nov 8, 2025
1acd329
Add privileged networking
jduo Nov 8, 2025
be55eb3
Fix quoting
jduo Nov 8, 2025
224627b
Add some networking tests
jduo Nov 8, 2025
29baa5d
logging
jduo Nov 12, 2025
86c93f5
Try starting cluster with replicas without using cluster_manager.py
jduo Nov 12, 2025
6f465c8
Revert "Try starting cluster with replicas without using cluster_mana…
jduo Nov 14, 2025
ab276bd
Add more logging about the current state of the log files
jduo Nov 14, 2025
b73d0e6
Increase WSL memory
jduo Nov 14, 2025
77afaed
Remove docker, revert to WSL
jduo Nov 14, 2025
5a69ce5
Remove more docker references
jduo Nov 14, 2025
1d28ce5
Fix use of hard-coded path to cluster_manager.py
jduo Nov 14, 2025
e994179
Debugging valkey server process execution for replicas
jduo Nov 14, 2025
f05e34b
Logging server startup
jduo Nov 14, 2025
da78ad3
Replace print with logging calls
jduo Nov 14, 2025
22ebe64
Increase the replica sync timeout and add more logging
jduo Nov 15, 2025
d5d4d56
More investigation on what we are waiting for in each server log
jduo Nov 15, 2025
e2b4cc0
wait_for_topology logging
jduo Nov 15, 2025
e27b215
Wait for full slot availibility instead of replica sync
jduo Nov 15, 2025
a830efe
Restore skipped setup tasks
jduo Nov 15, 2025
dcfeee8
Debugging standalone startup
jduo Nov 15, 2025
4a0207d
Make windows checks consistent
jduo Nov 15, 2025
d7f5936
Gradle 9 changes
jduo Nov 15, 2025
cb80e9c
Don't execute startup tasks in parallel
jduo Nov 15, 2025
81da393
Spoless
jduo Nov 15, 2025
5856f3e
Checking why standalone start tasks fail
jduo Nov 15, 2025
345d2ef
More debugging around startStandalone
jduo Nov 15, 2025
19c12fa
Reverting changes for cleanup
jduo Nov 15, 2025
c7c88a0
Reverting unnecessary changes
jduo Nov 15, 2025
690edd6
Prettier and semgrep
jduo Nov 15, 2025
883192d
Spotless
jduo Nov 15, 2025
fb7e7b4
Fix startClusterForAz task
jduo Nov 15, 2025
7385ce9
Search for redis and valkey processes
jduo Nov 15, 2025
1d67688
Try manually syncing topology
jduo Nov 15, 2025
6e06d57
When using Windows + WSL, use a bash script to start clusters instead…
jduo Nov 17, 2025
3609c66
WSL script changes
jduo Nov 17, 2025
193d5c2
Enable unix line endings on .py and .sh files
jduo Nov 17, 2025
1f042fe
Fix line endings for shell scripts and Python files
jduo Nov 17, 2025
4ef3629
Attempt to fix directory creation issues
jduo Nov 17, 2025
fd7017a
Better error reporting
jduo Nov 17, 2025
1f88b92
Fix logging
jduo Nov 17, 2025
a173ce4
Tracking errors creating files/directories
jduo Nov 18, 2025
0759d44
Fix TLS configuraiton
jduo Nov 18, 2025
c222925
More debugging info
jduo Nov 18, 2025
355a54b
Check port liveliness
jduo Nov 19, 2025
b1f2fee
PID file issues
jduo Nov 19, 2025
16078ad
Script fixes
jduo Nov 19, 2025
705e85c
Debugging info
jduo Nov 19, 2025
135459b
Turn off replicas
jduo Nov 19, 2025
065c069
Restore replicas and add more debug info
jduo Nov 19, 2025
80e504c
Flush output on exit
jduo Nov 19, 2025
a342b99
use separate ports
jduo Nov 19, 2025
4b58a1f
Fix dangling catch clause
jduo Nov 19, 2025
3892063
Greatly increase timeouts for WSL tests
jduo Nov 19, 2025
1131f22
Initialize with databases for integration tests
jduo Nov 19, 2025
a2e55ae
Clean up cluster directories
jduo Nov 19, 2025
408b700
Fix adding databases
jduo Nov 19, 2025
abe3e36
Incorrect spot for cluster-databases param
jduo Nov 19, 2025
57d8551
Revert 16 cluster-databases
jduo Nov 19, 2025
ba759d8
Add cert generation
jduo Nov 19, 2025
c92bf7c
Revert "Add cert generation"
jduo Nov 20, 2025
42b8029
Increase timeouts to 10x
jduo Nov 25, 2025
4eed1cd
Reset timeouts
jduo Nov 25, 2025
62f40ba
Scripts to run tests through WSL one-by-one and monitor resource usage
jduo Nov 25, 2025
b95f005
Run all tests within one JVM but with monitoring
jduo Nov 25, 2025
8977c41
Fix syntax errors in monitoring
jduo Nov 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Ensure shell scripts and Python files always use Unix line endings (LF)
*.sh text eol=lf
*.py text eol=lf

# Ensure these specific files use Unix line endings
utils/cluster_manager.py text eol=lf
utils/*.sh text eol=lf
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: 🚀 Feature Request
name: Feature Request
description: Suggest an idea for this project
title: "(topic): (short issue description)"
labels: [feature-request, needs-triage]
Expand Down
22 changes: 22 additions & 0 deletions .github/json_matrices/build-matrix.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,5 +81,27 @@
"IMAGE": "amazonlinux:latest",
"PACKAGE_MANAGERS": [],
"languages": ["python", "node", "java", "go"]
},
{
"OS": "windows",
"NAMED_OS": "windows",
"RUNNER": "windows-latest",
"ARCH": "x64",
"TARGET": "x86_64-pc-windows-msvc",
"PACKAGE_MANAGERS": ["maven"],
"languages": ["java"],
"run": "always",
"comment": "GitHub-hosted Windows runner with WSL for local Valkey testing"
},
{
"OS": "windows",
"NAMED_OS": "windows",
"RUNNER": "windows-latest-arm64",
"ARCH": "arm64",
"TARGET": "aarch64-pc-windows-msvc",
"PACKAGE_MANAGERS": ["maven"],
"languages": ["java"],
"run": "always",
"comment": "GitHub-hosted Windows ARM64 runner with WSL for local Valkey testing"
}
]
22 changes: 20 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,21 @@ jobs:
- name: Install protoc compiler
if: matrix.language == 'go'
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Check if protoc is already installed with correct version
if ! command -v protoc &> /dev/null || ! protoc --version | grep -q "29.1"; then
echo "Installing protoc 29.1..."
PB_REL="https://github.com/protocolbuffers/protobuf/releases"
curl -LO $PB_REL/download/v29.1/protoc-29.1-linux-x86_64.zip

# Add authentication header if token is available
if [ -n "$GITHUB_TOKEN" ]; then
curl -H "Authorization: Bearer $GITHUB_TOKEN" -LO $PB_REL/download/v29.1/protoc-29.1-linux-x86_64.zip
else
curl -LO $PB_REL/download/v29.1/protoc-29.1-linux-x86_64.zip
fi

sudo unzip protoc-29.1-linux-x86_64.zip -d /usr/local
sudo chmod +x /usr/local/bin/protoc
else
Expand Down Expand Up @@ -125,12 +134,21 @@ jobs:
- name: Build Java/Kotlin components
if: matrix.language == 'java-kotlin'
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Check if protoc is already installed with correct version
if ! command -v protoc &> /dev/null || ! protoc --version | grep -q "29.1"; then
echo "Installing protoc 29.1..."
PB_REL="https://github.com/protocolbuffers/protobuf/releases"
curl -LO $PB_REL/download/v29.1/protoc-29.1-linux-x86_64.zip

# Add authentication header if token is available
if [ -n "$GITHUB_TOKEN" ]; then
curl -H "Authorization: Bearer $GITHUB_TOKEN" -LO $PB_REL/download/v29.1/protoc-29.1-linux-x86_64.zip
else
curl -LO $PB_REL/download/v29.1/protoc-29.1-linux-x86_64.zip
fi

sudo unzip protoc-29.1-linux-x86_64.zip -d /usr/local
sudo chmod +x /usr/local/bin/protoc
else
Expand Down
29 changes: 25 additions & 4 deletions .github/workflows/create-test-matrices/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ inputs:
- use-self-hosted
- use-github
default: false
run-with-windows-self-hosted:
description: "Include self-hosted Windows runners"
type: boolean
default: false
containers:
description: "Run in containers"
required: true
Expand All @@ -46,12 +50,14 @@ runs:
EVENT_NAME: ${{ github.event_name }}
RUN_FULL_MATRIX: ${{ inputs.run-full-matrix }}
RUN_WITH_MACOS: ${{ inputs.run-with-macos }}
RUN_WITH_WINDOWS_SELF_HOSTED: ${{ inputs.run-with-windows-self-hosted }}
CONTAINERS: ${{ inputs.containers }}
LANGUAGE_NAME: ${{ inputs.language-name }}
run: |
echo "EVENT_NAME=$EVENT_NAME" >> $GITHUB_ENV
echo "RUN_FULL_MATRIX=$RUN_FULL_MATRIX" >> $GITHUB_ENV
echo "RUN_WITH_MACOS=$RUN_WITH_MACOS" >> $GITHUB_ENV
echo "RUN_WITH_WINDOWS_SELF_HOSTED=$RUN_WITH_WINDOWS_SELF_HOSTED" >> $GITHUB_ENV
echo "CONTAINERS=$CONTAINERS" >> $GITHUB_ENV
echo "LANGUAGE_NAME=$LANGUAGE_NAME" >> $GITHUB_ENV

Expand All @@ -63,12 +69,16 @@ runs:
echo 'Select server engines to run tests against'
if [[ "$EVENT_NAME" == "pull_request" || "$EVENT_NAME" == "push" || "$RUN_FULL_MATRIX" == "false" ]]; then
echo 'Pick engines marked as `"run": "always"` only - on PR, push or manually triggered job which does not require full matrix'
jq -c '[.[] | select(.run == "always")]' < .github/json_matrices/engine-matrix.json | awk '{ printf "engine-matrix=%s\n", $0 }' | tee -a $GITHUB_OUTPUT
ENGINES=$(jq -c '[.[] | select(.run == "always")]' < .github/json_matrices/engine-matrix.json)
else
echo 'Pick all engines - on cron (schedule) or if manually triggered job requires a full matrix'
jq -c . < .github/json_matrices/engine-matrix.json | awk '{ printf "engine-matrix=%s\n", $0 }' | tee -a $GITHUB_OUTPUT
ENGINES=$(jq -c . < .github/json_matrices/engine-matrix.json)
fi

# Note: Redis 6.2 exclusion for Windows is handled in the host matrix filtering
# rather than globally excluding it from all platforms
echo "engine-matrix=$ENGINES" >> $GITHUB_OUTPUT

- name: Load host matrix
id: load-host-matrix
shell: bash
Expand All @@ -78,8 +88,8 @@ runs:
echo 'Select runners (VMs) to run tests on'

if [[ "$EVENT_NAME" == "pull_request" || "$EVENT_NAME" == "push" || "$RUN_FULL_MATRIX" == "false" ]]; then
echo 'Getting "always run" runners'
BASE_MATRIX=$(jq -c '[.[] | select(.run == "always")]' < .github/json_matrices/build-matrix.json)
echo 'Getting "always run" runners for this language'
BASE_MATRIX=$(jq --arg lang "$LANGUAGE_NAME" -c '[.[] | select(.run == "always" and .languages? and any(.languages[] == $lang; .) and '"$CONDITION"')]' < .github/json_matrices/build-matrix.json)
else
echo 'Getting full matrix for language excluding macOS'
BASE_MATRIX=$(jq --arg lang "$LANGUAGE_NAME" -c '[.[] | select(.languages? and any(.languages[] == $lang; .) and '"$CONDITION"' and .TARGET != "aarch64-apple-darwin")]' < .github/json_matrices/build-matrix.json)
Expand All @@ -97,6 +107,17 @@ runs:
else
FINAL_MATRIX="$BASE_MATRIX"
fi

# Add Windows self-hosted runners if specified
if [[ "$RUN_WITH_WINDOWS_SELF_HOSTED" == "true" ]]; then
echo "Including self-hosted Windows runners"
WIN_RUNNERS=$(jq --arg lang "$LANGUAGE_NAME" -c '[.[] | select(.languages? and any(.languages[] == $lang; .) and '"$CONDITION"' and .TARGET == "x86_64-pc-windows-msvc" and (.RUNNER == ["self-hosted","windows","x64"]))]' < .github/json_matrices/build-matrix.json)
FINAL_MATRIX=$(echo "$FINAL_MATRIX" "$WIN_RUNNERS" | jq -sc 'add')
else
echo "Including GitHub-hosted Windows runners (WSL-enabled)"
WIN_RUNNERS=$(jq --arg lang "$LANGUAGE_NAME" -c '[.[] | select(.languages? and any(.languages[] == $lang; .) and '"$CONDITION"' and .TARGET == "x86_64-pc-windows-msvc" and .RUNNER == "windows-latest")]' < .github/json_matrices/build-matrix.json)
FINAL_MATRIX=$(echo "$FINAL_MATRIX" "$WIN_RUNNERS" | jq -sc 'add')
fi

echo "host-matrix=$(echo $FINAL_MATRIX | tr -d '\n')" >> $GITHUB_OUTPUT

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependabot-management.yml
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ jobs:
}

// Add basic changelog information
const changelog = `## Changelog\n\nUpdated ${depName} from ${fromVersion} to ${toVersion}\n\n📋 To view detailed changes, visit the package repository or release notes.`;
const changelog = `## Changelog\n\nUpdated ${depName} from ${fromVersion} to ${toVersion}\n\n[INFO] To view detailed changes, visit the package repository or release notes.`;

const newBody = `${body}\n\n${changelog}`;

Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,10 @@ jobs:

- name: Install & build & test
working-directory: go
shell: bash
env:
RC_VERSION: ${{ github.event.inputs.rc-version }}
CARGO_BUILD_JOBS: 1
run: |
if [[ -n "$RC_VERSION" ]]; then
make install-tools
Expand Down Expand Up @@ -223,6 +225,8 @@ jobs:

- name: Install and run linters
working-directory: go
env:
CARGO_BUILD_JOBS: 1
run: |
make install-dev-tools install-build-tools gen-c-bindings generate-protobuf lint-ci

Expand Down Expand Up @@ -384,6 +388,7 @@ jobs:

- name: Build and test
working-directory: ./go
shell: bash
env:
RC_VERSION: ${{ github.event.inputs.rc-version }}
run: |
Expand Down Expand Up @@ -457,6 +462,7 @@ jobs:

- name: Install & build & test
working-directory: go
shell: bash
env:
RC_VERSION: ${{ github.event.inputs.rc-version }}
run: |
Expand Down
64 changes: 42 additions & 22 deletions .github/workflows/install-rust-and-protoc/action.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,52 @@
name: Install Rust tool chain and protoc

inputs:
target:
description: "Specified target for rust toolchain, ex. x86_64-apple-darwin"
type: string
required: false
default: "x86_64-unknown-linux-gnu"
options:
- x86_64-unknown-linux-gnu
- aarch64-unknown-linux-gnu
- x86_64-apple-darwin
- aarch64-apple-darwin
github-token:
description: "GitHub token"
type: string
required: true
name: Install Rust and protoc
description: Install Rust toolchain and protobuf compiler

runs:
using: "composite"
steps:
- name: Install Rust toolchain
- name: Install Rust toolchain (Windows)
if: runner.os == 'Windows'
shell: powershell
run: |
Write-Host "Using pre-installed Rust and MSVC on GitHub-hosted runner"

# Verify Rust is available
if (Get-Command rustc -ErrorAction SilentlyContinue) {
$version = rustc --version
Write-Host "Rust available: $version"

# Install rustfmt and clippy components
Write-Host "Installing rustfmt and clippy..."
rustup component add rustfmt clippy

Write-Host "Rust toolchain ready"
} else {
Write-Host "ERROR: Rust not found"
exit 1
}

- name: Install Rust toolchain (Unix)
if: runner.os != 'Windows'
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ inputs.target }}
components: rustfmt, clippy

- name: Install protoc (protobuf)
- name: Install protoc (Windows)
if: runner.os == 'Windows'
shell: powershell
run: |
Write-Host "Installing protoc version 29.1..."
if (Get-Command choco -ErrorAction SilentlyContinue) {
choco install protoc --version=29.1 -y
Write-Host "protoc 29.1 installed successfully"
} else {
Write-Host "ERROR: Chocolatey not available"
exit 1
}

- name: Install protoc (Unix)
if: runner.os != 'Windows'
uses: arduino/setup-protoc@v3
with:
version: "25.1"
repo-token: ${{ inputs.github-token }}
version: "29.1"
repo-token: ${{ github.token }}
Loading
Loading