diff --git a/.circleci.settings.xml b/.circleci.settings.xml
deleted file mode 100644
index b3e253ac..00000000
--- a/.circleci.settings.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- ossrh
- ${env.OSSH_USERNAME}
- ${env.OSSH_PASSWORD}
-
-
- gpg.passphrase
- ${env.GPG_PASSPHRASE}
-
-
-
diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 544ccacc..00000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,181 +0,0 @@
-version: 2.1
-
-commands:
-
- abort_for_docs:
- steps:
- - run:
- name: Avoid tests for docs
- command: |
- if [[ $CIRCLE_BRANCH == *docs ]]; then
- echo "Identifies as documents PR, no testing required"
- circleci step halt
- fi
-
- abort_for_noci:
- steps:
- - run:
- name: Ignore CI for specific branches
- command: |
- if [[ $CIRCLE_BRANCH == *noci ]]; then
- echo "Identifies as actively ignoring CI, no testing required."
- circleci step halt
- fi
-
- early_return_for_forked_pull_requests:
- description: >-
- If this build is from a fork, stop executing the current job and return success.
- This is useful to avoid steps that will fail due to missing credentials.
- steps:
- - run:
- name: Early return if this build is from a forked PR
- command: |
- if [ -n "$CIRCLE_PR_NUMBER" ]; then
- echo "Nothing to do for forked PRs, so marking this step successful"
- circleci step halt
- fi
-
-jobs:
-
- build:
- docker:
- - image: circleci/openjdk:8-jdk
-
- environment:
- JVM_OPTS: -Xmx3200m
- TERM: dumb
-
- steps:
- - abort_for_docs
- - abort_for_noci
- - checkout
-
- # Download and cache dependencies
- - restore_cache:
- keys:
- - spark-redis-{{ checksum "pom.xml" }}
-
- - run: mvn dependency:go-offline
-
- - run:
- name: install Redis
- command: |
- sudo apt-get -y update
- sudo apt-get install -y libssl-dev
- wget http://download.redis.io/releases/redis-6.0.10.tar.gz
- tar -xzvf redis-6.0.10.tar.gz
- make -C redis-6.0.10 -j`nproc` BUILD_TLS=yes
- export PATH=$PWD/redis-6.0.10/src:$PATH
-
- - run:
- name: Run Test
- command: |
- export PATH=$PWD/redis-6.0.10/src:$PATH
- make test
-
- - run:
- name: gracefully kill redis
- command: |
- sleep 5s # let redis exit gracefully (we use kill, not kill -9 in makefile)
- ps aux | grep redis
-
- - run:
- name: Run Test with scala 2.12
- command: |
- export PATH=$PWD/redis-6.0.10/src:$PATH
- make test
-
- - save_cache:
- paths:
- - ~/.m2
- key: spark-redis-{{ checksum "pom.xml" }}
-
- - early_return_for_forked_pull_requests
-
- - run: bash <(curl -s https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t ${CODECOV_TOKEN}
-
- build-and-publish:
- docker:
- - image: circleci/openjdk:8-jdk
-
- environment:
- JVM_OPTS: -Xmx3200m
- TERM: dumb
-
- steps:
- - abort_for_docs
- - abort_for_noci
- - checkout
-
- # Download and cache dependencies
- - restore_cache:
- keys:
- - spark-redis-{{ checksum "pom.xml" }}
-
- - run: mvn dependency:go-offline
-
- - run:
- name: install Redis
- command: |
- sudo apt-get -y update
- sudo apt-get install -y libssl-dev
- wget http://download.redis.io/releases/redis-6.0.10.tar.gz
- tar -xzvf redis-6.0.10.tar.gz
- make -C redis-6.0.10 -j`nproc` BUILD_TLS=yes
- export PATH=$PWD/redis-6.0.10/src:$PATH
-
- - run:
- name: Run Test
- command: |
- export PATH=$PWD/redis-6.0.10/src:$PATH
- make test
-
- - run:
- name: gracefully kill redis
- command: |
- sleep 5s # let redis exit gracefully (we use kill, not kill -9 in makefile)
- ps aux | grep redis
-
- - run:
- name: Run Test with scala 2.12
- command: |
- export PATH=$PWD/redis-6.0.10/src:$PATH
- make test
-
- - save_cache:
- paths:
- - ~/.m2
- key: spark-redis-{{ checksum "pom.xml" }}
-
- - early_return_for_forked_pull_requests
-
- - run: bash <(curl -s https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t ${CODECOV_TOKEN}
-
- - run: mvn -s .circleci.settings.xml -DskipTests deploy
-
-on-master: &on-master
- filters:
- branches:
- only: master
- tags:
- ignore: /.*/
-
-not-on-master: ¬-on-master
- filters:
- branches:
- ignore: master
- tags:
- ignore: /.*/
-
-workflows:
- commit:
- jobs:
- - build:
- <<: *not-on-master
- context:
- - common
- - build-and-publish:
- <<: *on-master
- context:
- - common
-
diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
new file mode 100644
index 00000000..151c47d0
--- /dev/null
+++ b/.github/workflows/integration.yml
@@ -0,0 +1,56 @@
+name: Continuous Integration
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**/*.md'
+ branches:
+ - master
+ - '[0-9].*'
+ pull_request:
+ branches:
+ - master
+ - '[0-9].*'
+ schedule:
+ - cron: '0 1 * * *' # nightly build
+ workflow_dispatch:
+
+jobs:
+
+ build:
+ name: Build and Test
+ runs-on: ubuntu-latest
+ steps:
+ - 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/setup-maven-action@v1.8.0
+ with:
+ java-version: 8
+ - name: Install missing dependencies to container
+ run: |
+ sudo apt update
+ sudo apt install -y libssl-dev
+ wget http://download.redis.io/releases/redis-6.0.10.tar.gz
+ tar -xzvf redis-6.0.10.tar.gz
+ make -C redis-6.0.10 -j`nproc` BUILD_TLS=yes
+ - name: Maven offline
+ run: |
+ mvn -q dependency:go-offline
+ - name: Run tests
+ run: |
+ export PATH=$PWD/redis-6.0.10/src:$PATH
+ make test
+ env:
+ JVM_OPTS: -Xmx3200m
+ TERM: dumb
+ - name: Upload coverage reports to Codecov
+ uses: codecov/codecov-action@v4.0.1
+ with:
+ token: ${{ secrets.CODECOV_TOKEN }}
diff --git a/.gitignore b/.gitignore
index d1366cd5..bd5b4ad5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@ src_managed/
project/boot/
project/plugins/project/
build/*.jar
+checkpoint-test/
# eclipse
.project
@@ -40,4 +41,5 @@ build/*.jar
/.settings/
# Redis
-dump.rdb
\ No newline at end of file
+dump.rdb
+.DS_Store
\ No newline at end of file
diff --git a/README.md b/README.md
index 7c1cda22..d0dd0c01 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,14 @@
+[](https://github.com/RedisLabs/spark-redis/actions/workflows/integration.yml)
[](https://github.com/RedisLabs/spark-redis)
[](https://github.com/RedisLabs/spark-redis/releases/latest)
-[](https://circleci.com/gh/RedisLabs/spark-redis/tree/master)
-[](https://maven-badges.herokuapp.com/maven-central/com.redislabs/spark-redis_2.12)
+[](https://maven-badges.herokuapp.com/maven-central/com.redislabs/spark-redis_2.12)
[](https://www.javadoc.io/doc/com.redislabs/spark-redis_2.12)
-[](https://discord.gg/Bjt6TcgV)
[](https://codecov.io/gh/RedisLabs/spark-redis)
+[](https://discord.gg/redis)
+[](https://www.twitch.tv/redisinc)
+[](https://www.youtube.com/redisinc)
+[](https://twitter.com/redisinc)
# Spark-Redis
A library for reading and writing data in [Redis](http://redis.io) using [Apache Spark](http://spark.apache.org/).
diff --git a/pom.xml b/pom.xml
index 80663f35..e777c734 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,10 +12,6 @@
RedisLabs
www.redislabs.com
-
- CircleCI
- https://circleci.com/gh/RedisLabs/spark-redis
-
https://github.com/RedisLabs/spark-redis/issues
Github