chore: upgrade project to Go 1.26 (#1054) #696
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |