Skip to content

Enabling github checks #282

Enabling github checks

Enabling github checks #282

Workflow file for this run

#
# 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
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}}