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

Enable GitHub checks #52

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
efb6f0a
Adding checkstyle
Amit-Singh40 Feb 7, 2024
74bf4e9
Updating gradle.yml
Amit-Singh40 Feb 7, 2024
5601e0b
Test
Amit-Singh40 Feb 7, 2024
0dc11fd
test
Amit-Singh40 Feb 7, 2024
f0acf47
test
Amit-Singh40 Feb 7, 2024
ff44e3d
test
Amit-Singh40 Feb 7, 2024
a144456
test
Amit-Singh40 Feb 7, 2024
755d6ef
test
Amit-Singh40 Feb 7, 2024
80a679d
test
Amit-Singh40 Feb 7, 2024
93d0c61
test1
Amit-Singh40 Feb 7, 2024
b5c0cff
test
Amit-Singh40 Feb 8, 2024
3200b31
test
Amit-Singh40 Feb 8, 2024
6512c68
test
Amit-Singh40 Feb 8, 2024
d391c9c
test
Amit-Singh40 Feb 8, 2024
f816433
test
Amit-Singh40 Feb 8, 2024
f06309d
test
Amit-Singh40 Feb 8, 2024
b401d55
test
Amit-Singh40 Feb 8, 2024
4ae7744
test
Amit-Singh40 Feb 8, 2024
46bb46b
test
Amit-Singh40 Feb 8, 2024
764408d
test
Amit-Singh40 Feb 8, 2024
bf18934
test
Amit-Singh40 Feb 8, 2024
a363736
test
Amit-Singh40 Feb 8, 2024
afa2ec1
test
Amit-Singh40 Feb 8, 2024
3472ab4
test
Amit-Singh40 Feb 8, 2024
40bfb0e
test
Amit-Singh40 Feb 8, 2024
455d028
test
Amit-Singh40 Feb 8, 2024
44be06f
test
Amit-Singh40 Feb 8, 2024
45684ae
test
Amit-Singh40 Feb 9, 2024
349ca28
test
Amit-Singh40 Feb 9, 2024
05271b9
test
Amit-Singh40 Feb 9, 2024
946ab63
test
Amit-Singh40 Feb 9, 2024
6a40dad
test
Amit-Singh40 Feb 9, 2024
b87b02a
test
Amit-Singh40 Feb 9, 2024
a4635fd
test
Amit-Singh40 Feb 9, 2024
5582398
test
Amit-Singh40 Feb 12, 2024
cde2972
test
Amit-Singh40 Feb 12, 2024
4d234a4
test
Amit-Singh40 Feb 12, 2024
a1130fe
test
Amit-Singh40 Feb 12, 2024
09e5f64
test
Amit-Singh40 Feb 12, 2024
066c96b
test
Amit-Singh40 Feb 12, 2024
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
33 changes: 33 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#
# Copyright Pravega Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
codecov:
require_ci_to_pass: yes
max_report_age: off
notify:
wait_for_ci: yes

coverage:
status:
project:
default:
threshold: 0.5%
patch:
default:
target: 80%
ignore:
- "**/generated/**"
- "standalone"
- "test"
154 changes: 154 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
#
# Copyright (c) Dell Inc., or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
name: build

on: [push, pull_request, workflow_dispatch]
# workflow_dispatch should make manually triggered ci/cd possible
# workflow file (like this) with `workflow_dispatch` after on should exist on the **master** or default branch,
# or there will be no ui for a manual trigger. https://github.community/t/workflow-dispatch-event-not-working/128856/2

#
# Set 'GRADLE_OPTS' to pass additional custom parameters to each ./gradlew invocation in this workflow.
# Example '--info' or '--debug'.
#GRADLE_OPTS: --info

# The workflow begins with a compilation and static analysis job that also caches the build output and source code,
# followed by a number of parallel test jobs (which make use of that cached artifacts).
#
# Once the build job and all the test jobs complete successfully, a final (no-op) job ("build_and_test_complete") will
# automatically complete. This job must NOT be renamed as the GitHub Pravega Repository gates merges into master on
# this step passing.
#
# Finally, a "snapshot" job is triggered only for pushes (commits) to master and release branches, which publishes all
# artifacts to a public repository.

env:
GLOBAL_CACHE_PATH: |
~/.gradle
~/.m2
GLOBAL_CACHE_KEY: gradle-m2-java-11
GLOBAL_CACHE_RESTORE_KEYS: |
gradle-m2-java-
gradle-m2
# We cache the class files, resources and build output. This is generated on the build job and reused in dependent jobs.
# If there are subsequent builds this includes test execution.
BUILD_CACHE_PATH: |
.gradle
./bin
**/bin
**/build

REPORTS_LOCATIONS: |
pravega-sensor-collector/build/reports


jobs:
build:
name: Build
runs-on: ubuntu-20.04
steps:
- name: Build Information
run: echo Building a '${{ github.event_name }}' for target '${{ github.ref }}'.
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: '11'
- name: Test script
run: ./scripts/build-installer.sh
- name: Clean
if: ${{ startsWith(github.ref, 'refs/heads/') }}
run: ./gradlew clean ${{env.GRADLE_OPTS}}
- name: Compile & Checkstyle
run: ./gradlew jar compileTest checkstyleMain checkstyleTest --parallel ${{env.GRADLE_OPTS}}
- name: Spotbugs
run: ./gradlew spotbugsMain spotbugsTest
- name: Tar Reports
run: tar --use-compress-program zstd -cf reports-${{github.job}}.tzst `echo ${{env.REPORTS_LOCATIONS}}`
- name: Upload Reports
uses: actions/upload-artifact@v2
with:
name: ${{github.job}}-reports
retention-days: 4
path: reports-${{github.job}}.tzst
# Uncomment these two lines if you need ssh access to debug a build.
# - name: Setup upterm session
# uses: lhotari/action-upterm@v1


unit_test:
name: PSC Unit Tests
needs: build
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: '11'
- name: Unit tests
run: ./gradlew build --parallel ${{env.GRADLE_OPTS}}
- name: PWD
run: pwd
- name: LS
run: ls
- name: LS PSC/build
run: ls pravega-sensor-collector/build
- name: Tar Reports
run: tar --use-compress-program zstd -cf reports-${{github.job}}.tzst `echo ${{env.REPORTS_LOCATIONS}}`
- name: Upload Reports
if: always()
uses: actions/upload-artifact@v2
with:
name: ${{github.job}}-reports
retention-days: 4
path: reports-${{github.job}}.tzst


# DO NOT RENAME THIS JOB. Mergers to master branch are gated on this completing successfully.
build_and_test_complete:
name: CI Complete
needs: [build, unit_test]
runs-on: ubuntu-20.04
steps:
- name: Check Build Status
run: echo Build, static analysis, unit and integration tests successful.
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 2
- name: Download code coverage reports
uses: actions/download-artifact@v2
- name: Untar reports
run: ( ls */reports-*.tzst | xargs -n1 tar --use-compress-program zstd --keep-newer-files -xf )
- name: Upload to Codecov
uses: codecov/codecov-action@v1

snapshot:
name: Publish snapshot packages
needs: [build_and_test_complete]
# Only run this on PUSH (no pull requests) and only on the master branch and release branches.
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/r0.') || startsWith(github.ref, 'refs/heads/r1.')) }}
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: '11'
- name: Assemble
run: ./gradlew assemble --parallel ${{env.GRADLE_OPTS}}
- name: Publish to GitHub Packages
run: ./gradlew publish -PpublishUrl=https://maven.pkg.github.com/${{github.repository}} -PpublishUsername=${{github.actor}} -PpublishPassword=${{secrets.GITHUB_TOKEN}} ${{env.GRADLE_OPTS}}
33 changes: 33 additions & 0 deletions pravega-sensor-collector/.codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#
# Copyright Pravega Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
codecov:
require_ci_to_pass: yes
max_report_age: off
notify:
wait_for_ci: yes

coverage:
status:
project:
default:
threshold: 0.5%
patch:
default:
target: 80%
ignore:
- "**/generated/**"
- "standalone"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this relevant?
Also does this open up possibility of concentrating on specific subdirectories?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sachin, This not final PR. just created PR for testing purpose.

- "test"
31 changes: 12 additions & 19 deletions pravega-sensor-collector/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -158,23 +158,16 @@ checkstyle {
}


test {
finalizedBy jacocoTestReport // report is always generated after tests run
}

jacocoTestReport {
dependsOn test // tests are required to run before generating the report
}

jacoco {
toolVersion = "0.8.9"
reportsDirectory = layout.buildDirectory.dir('customJacocoReportDir')
}

jacocoTestReport {
reports {
xml.required = false
csv.required = false
html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
plugins.withId('jacoco') {
jacoco {
toolVersion = "0.8.5"
}
}
jacocoTestReport {
reports {
xml.enabled true
html.enabled false
}
}

test { finalizedBy jacocoTestReport }
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public void testCreateAccelerometerDriverWithNullConfig() {

@Test
public void testCreateLeapDriverWithNullConfig() {
Exception exception = Assert.assertThrows(NullPointerException.class, () -> new LeapDriver(null));
Exception exception = Assert.assertThrows(NullPointerException.class, () -> new LeapDriver(null));
Assert.assertTrue("config".equals(exception.getMessage()));
}

Expand Down
Loading