Files
athens/.github/workflows/ci.yml
Alexandr Hacicheant ab1775afee Redis Sentinel SingeFlight: support of Redis master node username and password (#2039)
* Add support for Redis Username and Password configuration

Introduced Redis master authentication parameters (username and password) to the Redis Sentinel setup. This enhances compatibility with Redis environments that require authentication for both sentinel and master nodes.

* Add support for protected Redis Sentinel configuration and related unit tests
2025-04-01 07:34:13 +02:00

100 lines
2.6 KiB
YAML

---
name: continuous-integration
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint:
runs-on: ubuntu-latest
env:
GOLANGCI_LINT_VERSION: v1.61.0
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- name: Lint code
uses: golangci/golangci-lint-action@v6
with:
version: ${{ env.GOLANGCI_LINT_VERSION }}
build:
env:
ATHENS_MONGO_STORAGE_URL: mongodb://localhost:27017
ATHENS_MINIO_ENDPOINT: http://localhost:9000
REDIS_TEST_ENDPOINT: localhost:6379
REDIS_SENTINEL_TEST_ENDPOINT: localhost:26379
REDIS_SENTINEL_TEST_MASTER_NAME: redis-1
REDIS_SENTINEL_TEST_PASSWORD: sekret
PROTECTED_REDIS_TEST_ENDPOINT: localhost:6380
PROTECTED_REDIS_TEST_USERNAME: default
REDIS_SENTINEL_TEST_PROTECTED_ENDPOINT: localhost:26380
REDIS_SENTINEL_TEST_PROTECTED_MASTER_NAME: protectedredis-1
ATHENS_PROTECTED_REDIS_PASSWORD: AthensPass1
GA_PULL_REQUEST: ${{github.event.number}}
runs-on: ubuntu-latest
services:
mongo:
image: mongo
ports:
- 27017:27017
minio:
image: minio/minio:edge-cicd
ports:
- 9000:9000
env:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
redis:
image: redis
ports:
- 6379:6379
redis-sentinel:
image: bitnami/redis-sentinel
env:
REDIS_MASTER_HOST: redis
REDIS_MASTER_SET: redis-1
REDIS_SENTINEL_PASSWORD: sekret
REDIS_SENTINEL_QUORUM: "1"
ports:
- 26379:26379
protectedredis:
image: bitnami/redis
ports:
- 6380:6380
env:
REDIS_PORT_NUMBER: 6380
REDIS_PASSWORD: AthensPass1
redis-sentinel-protected-redis:
image: bitnami/redis-sentinel
env:
REDIS_MASTER_HOST: protectedredis
REDIS_MASTER_PORT_NUMBER: 6380
REDIS_MASTER_SET: protectedredis-1
REDIS_SENTINEL_PASSWORD: sekret
REDIS_SENTINEL_QUORUM: "1"
REDIS_SENTINEL_PORT_NUMBER: 26380
ports:
- 26380:26380
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
cache: true
- name: Verify changes
run: make verify
- name: Unit tests
run: go test -v -race ./...
- name: End to end tests
if: success() || failure()
run: make test-e2e