Skip to content

CI: Add Support for Valkey 6.2, 7.0 and 7.2 #1163

CI: Add Support for Valkey 6.2, 7.0 and 7.2

CI: Add Support for Valkey 6.2, 7.0 and 7.2 #1163

Workflow file for this run

name: Go CI
on:
push:
branches: [ "main" ]
paths:
- glide-core/src/**
- submodules/**
- go/**
- .github/workflows/go.yml
pull_request:
paths:
- glide-core/src/**
- submodules/**
- go/**
- .github/workflows/go.yml
concurrency:
group: go-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
load-engine-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.load-engine-matrix.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Load the engine matrix
id: load-engine-matrix
shell: bash
run: echo "matrix=$(jq -c . < .github/json_matrices/engine-matrix.json)" >> $GITHUB_OUTPUT
build-and-test-go-client:
needs: load-engine-matrix
timeout-minutes: 35
strategy:
# Run all jobs
fail-fast: false
matrix:
go:
- '1.18.10'
- '1.22.0'
engine: ${{ fromJson(needs.load-engine-matrix.outputs.matrix) }}
host:
- {
OS: ubuntu,
RUNNER: ubuntu-latest,
TARGET: x86_64-unknown-linux-gnu
}
- {
OS: macos,
RUNNER: macos-latest,
TARGET: aarch64-apple-darwin
}
runs-on: ${{ matrix.host.RUNNER }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Go ${{ matrix.go }}
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
cache-dependency-path: go/go.sum
- name: Install shared software dependencies
uses: ./.github/workflows/install-shared-dependencies
with:
os: ${{ matrix.host.OS }}
target: ${{ matrix.host.TARGET }}
github-token: ${{ secrets.GITHUB_TOKEN }}
engine-version: ${{ matrix.engine.version }}
- name: Install tools for Go ${{ matrix.go }}
working-directory: ./go
run: make install-tools-go${{ matrix.go }}
- name: Set LD_LIBRARY_PATH
if: ${{ matrix.os == 'ubuntu-latest' }}
run: echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GITHUB_WORKSPACE/go/target/release/deps/" >> $GITHUB_ENV
- name: Build client
working-directory: ./go
run: make build
- name: Run linters
working-directory: ./go
run: make lint-ci
- name: Run tests
working-directory: ./go
run: make test
build-amazonlinux-latest:
if: github.repository_owner == 'aws'
strategy:
# Run all jobs
fail-fast: false
matrix:
go:
- 1.18.10
- 1.22.0
runs-on: ubuntu-latest
container: amazonlinux:latest
timeout-minutes: 15
steps:
- name: Install git
run: |
yum -y remove git
yum -y remove git-*
yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
yum update
yum install -y git
git --version
- uses: actions/checkout@v4
- name: Checkout submodules
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git submodule update --init --recursive
- name: Install shared software dependencies
uses: ./.github/workflows/install-shared-dependencies
with:
os: "amazon-linux"
target: "x86_64-unknown-linux-gnu"
github-token: ${{ secrets.GITHUB_TOKEN }}
engine-version: "7.2.5"
- name: Install Go
run: |
yum -y install wget
yum -y install tar
wget https://go.dev/dl/go${{ matrix.go }}.linux-amd64.tar.gz
tar -C /usr/local -xzf go${{ matrix.go }}.linux-amd64.tar.gz
echo "/usr/local/go/bin" >> $GITHUB_PATH
echo "$HOME/go/bin" >> $GITHUB_PATH
- name: Install tools for Go ${{ matrix.go }}
working-directory: ./go
run: make install-tools-go${{ matrix.go }}
- name: Build client
working-directory: ./go
run: make build
- name: Run linters
working-directory: ./go
run: make lint-ci
- name: Run tests
working-directory: ./go
run: make test
lint-rust:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: ./.github/workflows/lint-rust
with:
cargo-toml-folder: ./go
name: lint go rust