Skip to content

Continuous Integration #84

Continuous Integration

Continuous Integration #84

Workflow file for this run

name: Continuous Integration
on:
push:
paths-ignore:
- 'docs/**'
- '**/*.md'
- '**/*.rst'
branches:
- main
- '[0-9].*'
pull_request:
branches:
- main
- '[0-9].*'
schedule:
- cron: '0 1 * * *' # nightly build
workflow_dispatch:
jobs:
build:
name: Build and Test
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
redis_version:
- "unstable"
- "8.0"
- "7.4"
- "7.2"
steps:
- name: Test Redis Server Version
id: map-tags
run: |
# Map requested version to github or tag
case "${{ matrix.redis_version }}" in
"unstable") redis_branch="unstable" stack_version="8.0-M03-pre" ;;
"8.0") redis_branch="8.0" stack_version="8.0-M02" ;;
"7.4") redis_branch="7.4" stack_version="rs-7.4.0-v1" ;;
"7.2") redis_branch="7.2" stack_version="rs-7.2.0-v13" ;;
*) echo "Unsupported version: ${{ matrix.redis_version }}" && exit 1 ;;
esac
# Save them as outputs for later use
echo "redis_branch=$redis_branch" >> $GITHUB_OUTPUT
echo "redis_stack_version=$stack_version" >> $GITHUB_OUTPUT
- name: Checkout project
uses: actions/checkout@v4
- name: Set Java up in the runner
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin'
cache: 'maven'
- name: Setup Maven
uses: s4u/[email protected]
with:
java-version: 8
- name: Install missing dependencies to container
run: |
sudo apt update
sudo apt install -y stunnel make git gcc
- name: Maven offline
run: |
mvn -q dependency:go-offline
- name: Clean environment
run: |
make cleanup
env:
JVM_OPTS: -Xmx3200m
TERM: dumb
- name: Run tests
run: |
make test-coverage
env:
REDIS: ${{ steps.map-tags.outputs.redis_branch }}
REDIS_STACK_VERSION: ${{ steps.map-tags.outputs.redis_stack_version }}
JVM_OPTS: -Xmx3200m
TERM: dumb
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload test failure reports to Codecov
uses: codecov/test-results-action@v1
if: always() # always upload test results to include test failures
with:
fail_ci_if_error: false
files: ./target/surefire-reports/TEST*,./target/failsafe-reports/TEST*
verbose: ${{ runner.debug }}
token: ${{ secrets.CODECOV_TOKEN }}