mirror of
https://github.com/gomods/athens
synced 2026-02-03 07:30:32 +00:00
* 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
100 lines
2.6 KiB
YAML
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
|