Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Migrate from CircleCI to GitHub Actions #94

Merged
merged 3 commits into from
Dec 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 0 additions & 129 deletions .circleci/config.yml

This file was deleted.

92 changes: 92 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Quality control checks

on:
push:
branches: [ main, 'feat/**' ]
paths-ignore:
- '**.md' # Do not need to run CI for markdown changes.
pull_request:
branches: [ main, 'feat/**' ]
paths-ignore:
- '**.md'

jobs:
linux:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
java-version: ["8", "11", "17"]

steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: ${{ matrix.java-version }}

- run: ./gradlew dependencies
- run: ./gradlew jar
- run: ./gradlew checkstyleMain

- run: make test

- name: Generate test coverage report
run: |
./gradlew jacocoTestReport
mkdir -p coverage/
cp -r build/reports/jacoco/test/* ./coverage
- name: Enforce test coverage
run: ./gradlew jacocoTestCoverageVerification

- name: Save test results
run: |
mkdir -p ~/junit/;
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/junit/ \;

- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.java-version }} junit results
path: ~/junit

- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.java-version }} code coverage
path: ./coverage

- name: run contract tests
run: make contract-tests

windows:
runs-on: windows-latest

defaults:
run:
shell: powershell

strategy:
fail-fast: false
matrix:
java-version: ["11.0.2.01", "17.0.1"]

steps:
- uses: actions/checkout@v4

- name: install OpenJDK
run: choco install openjdk --version ${{ matrix.java-version }}

- run: java -version

- name: build and test
run: .\gradlew.bat --no-daemon test

- name: save test results
run: |
mkdir .\junit
cp build/test-results/test/*.xml junit

- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.java-version }} junit results
path: .\junit
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ This version of the library is used by the LaunchDarkly server-side Java SDK, wh

It is important to keep unit test coverage as close to 100% as possible in this project.

You can view the latest code coverage report in CircleCI, as `coverage/html/index.html` in the artifacts for the "Java 11 - Linux - OpenJDK" job. You can also run the report locally with `./gradlew jacocoTestCoverage` and view `./build/reports/jacoco/test`.
You can view the latest code coverage report through GitHub actions. You can also run the report locally with `./gradlew jacocoTestCoverage` and view `./build/reports/jacoco/test`.

Sometimes a gap in coverage is unavoidable, usually because the compiler requires us to provide a code path for some condition that in practice can't happen and can't be tested, or because of a known issue with the code coverage tool. Please handle all such cases as follows:

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# okhttp-eventsource

[![Circle CI](https://circleci.com/gh/launchdarkly/okhttp-eventsource.svg?style=shield)](https://circleci.com/gh/launchdarkly/okhttp-eventsource)
[![Actions Status](https://github.com/launchdarkly/okhttp-eventsource/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/launchdarkly/okhttp-eventsource/actions/workflows/ci.yml)
[![Javadocs](http://javadoc.io/badge/com.launchdarkly/okhttp-eventsource.svg)](http://javadoc.io/doc/com.launchdarkly/okhttp-eventsource)

## Overview
Expand Down
Loading