Skip to content

chore: upgrade project to Go 1.26 (#1054) #696

chore: upgrade project to Go 1.26 (#1054)

chore: upgrade project to Go 1.26 (#1054) #696

Workflow file for this run

name: CI
on:
push:
branches: [ v4 ]
pull_request:
branches: [ v4 ]
workflow_dispatch:
jobs:
redis-test:
runs-on: ubuntu-latest
strategy:
max-parallel: 10
matrix:
redis-version: [ "2.8", "3.0", "4.0", "5.0", "6.0", "7.0", "8.0" ]
fail-fast: false
steps:
- name: Git checkout
uses: actions/checkout@v6
- name: Setup Golang with cache
uses: actions/setup-go@v6
with:
go-version-file: go.mod
- name: Cache Redis binary
id: cache-redis
uses: actions/cache@v5
with:
path: redis/bin
key: redis-${{ matrix.redis-version }}-${{ runner.os }}-v1
- name: Build Redis
if: steps.cache-redis.outputs.cache-hit != 'true'
run: |
git clone --depth 1 --branch ${{ matrix.redis-version }} https://github.com/redis/redis
cd redis
make -j$(nproc)
mkdir -p bin
cp src/redis-server bin/
- name: Add Redis to PATH
run: echo "$GITHUB_WORKSPACE/redis/bin" >> $GITHUB_PATH
- name: Cache Tair Modules
id: cache-tair
if: contains('5.0, 6.0, 7.0, 8.0', matrix.redis-version)
uses: actions/cache@v5
with:
path: tair-modules
key: tair-modules-${{ runner.os }}-v1
- name: Build Tair Modules
if: contains('5.0, 6.0, 7.0, 8.0', matrix.redis-version) && steps.cache-tair.outputs.cache-hit != 'true'
run: |
mkdir -p tair-modules
for repo in TairString TairHash TairZset; do
git clone --depth 1 https://github.com/tair-opensource/${repo}.git
cd ${repo} && mkdir build && cd build
cmake .. && make -j$(nproc)
cp ../lib/*.so $GITHUB_WORKSPACE/tair-modules/
cd $GITHUB_WORKSPACE
done
- name: Install Tair Modules
if: contains('5.0, 6.0, 7.0, 8.0', matrix.redis-version)
run: sudo cp tair-modules/*.so /lib/
- name: Setup Python with cache
uses: actions/setup-python@v6
with:
python-version: '3.11'
cache: 'pip'
cache-dependency-path: tests/requirements.txt
- name: Install Python dependencies
run: pip install -r tests/requirements.txt
- name: Build redis-shake
run: sh build.sh
- name: Run tests
run: sh test.sh
valkey-test:
runs-on: ubuntu-latest
strategy:
max-parallel: 10
matrix:
valkey-version: [ "8.0", "9.0" ]
fail-fast: false
steps:
- name: Git checkout
uses: actions/checkout@v6
- name: Setup Golang with cache
uses: actions/setup-go@v6
with:
go-version-file: go.mod
- name: Cache Valkey binary
id: cache-valkey
uses: actions/cache@v5
with:
path: valkey/bin
key: valkey-${{ matrix.valkey-version }}-${{ runner.os }}-v1
- name: Build Valkey
if: steps.cache-valkey.outputs.cache-hit != 'true'
run: |
git clone --depth 1 --branch ${{ matrix.valkey-version }} https://github.com/valkey-io/valkey
cd valkey
make -j$(nproc)
mkdir -p bin
cp src/valkey-server bin/redis-server
- name: Add Valkey to PATH
run: echo "$GITHUB_WORKSPACE/valkey/bin" >> $GITHUB_PATH
- name: Setup Python with cache
uses: actions/setup-python@v6
with:
python-version: '3.11'
cache: 'pip'
cache-dependency-path: tests/requirements.txt
- name: Install Python dependencies
run: pip install -r tests/requirements.txt
- name: Build redis-shake
run: sh build.sh
- name: Run tests
run: |
go test ./... -v
cd tests/ && export PYTHONPATH="$(pwd):$PYTHONPATH" && python -m pybbt cases --verbose