Enabling github checks (#57) #284
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# 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 | |
env: | |
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 build-installer.sh | |
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 pravega-sensor-collector:test --parallel ${{env.GRADLE_OPTS}} | |
- 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 | |