Skip to content

Commit

Permalink
ci: test check - and pr checks consolidation into single workflow (#51)
Browse files Browse the repository at this point in the history
Signed-off-by: Alfredo Gutierrez <[email protected]>
  • Loading branch information
AlfredoG87 authored Jul 29, 2024
1 parent bc4368f commit b5bebc5
Show file tree
Hide file tree
Showing 4 changed files with 163 additions and 57 deletions.
44 changes: 0 additions & 44 deletions .github/workflows/build-application.yaml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
##
name: "PR Gradle Checks"
on:
push:
branches:
- main
- release/*
pull_request:
branches:
- "*"

name: Spotless Check
defaults:
run:
shell: bash

on: [pull_request]
env:
GRADLE_EXEC: ./gradlew

jobs:
spotless:
runs-on: ubuntu-latest

compile:
name: "Gradle Checks"
runs-on: [ self-hosted, Linux, medium, ephemeral ]
steps:
- name: Harden Runner
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
Expand Down Expand Up @@ -57,11 +69,19 @@ jobs:
restore-keys: |
${{ runner.os }}-gradle-
- name: Run Spotless Check
run: |
./gradlew spotlessCheck
if [ $? -ne 0 ]; then
echo "Spotless found formatting issues. Please run './gradlew spotlessApply' to fix them."
exit 1
fi
continue-on-error: false
- name: Build
id: gradle-build
run: ${GRADLE_EXEC} build

- name: Style Check
id: spotless-check
run: ${GRADLE_EXEC} spotlessCheck

- name: Unit Tests
id: unit-tests
run: ${GRADLE_EXEC} check

- name: Upload coverage report
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
126 changes: 126 additions & 0 deletions .github/workflows/pr-formatting.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
##
# Copyright (C) 2023-2024 Hedera Hashgraph, LLC
#
# 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.
##
name: "PR Formatting Checks"
on:
pull_request:
types:
- assigned
- unassigned
- labeled
- unlabeled
- opened
- reopened
- edited
- converted_to_draft
- ready_for_review
- review_requested
- review_request_removed
- locked
- unlocked
- synchronize

defaults:
run:
shell: bash

permissions:
statuses: write

jobs:
pr-formatting-checks:
name: PR Formatting Checks
runs-on: [self-hosted, Linux, medium, ephemeral]
steps:
- name: Check PR Title
id: title-check
uses: step-security/conventional-pr-title-action@0eae74515f5a79f8773fa04142dd746df76666ac # v1.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
continue-on-error: true

- name: Check Milestone
id: milestone-check
run: |
if [[ "${{ github.event.pull_request.milestone }}" == "null" ]]; then
echo "Milestone is not set. Failing the workflow."
exit 1
fi
continue-on-error: true

- name: Check Assignee
id: assignee-check
run: |
if [[ "${{ github.event.pull_request.assignees }}" == "[]" ]]; then
echo "Assignee is not set. Failing the workflow."
exit 1
fi
continue-on-error: true

- name: Check Labels
id: label-check
run: |
if [[ "${{ github.event.pull_request.labels }}" == "[]" ]]; then
echo "No labels are set. Failing the workflow."
exit 1
fi
continue-on-error: true

- name: Set Result for Title Check
if: steps.title-check.outcome == 'failure'
run: echo "TITLE_CHECK_FAILED=true" >> $GITHUB_ENV

- name: Set Result for Milestone Check
if: steps.milestone-check.outcome == 'failure'
run: echo "MILESTONE_CHECK_FAILED=true" >> $GITHUB_ENV

- name: Set Result for Assignee Check
if: steps.assignee-check.outcome == 'failure'
run: echo "ASSIGNEE_CHECK_FAILED=true" >> $GITHUB_ENV

- name: Set Result for Label Check
if: steps.label-check.outcome == 'failure'
run: echo "LABEL_CHECK_FAILED=true" >> $GITHUB_ENV

- name: Aggregate Results
run: |
failed=false
if [ "${{ env.TITLE_CHECK_FAILED }}" == "true" ]; then
echo "::error title=Title Check::❌ Title Check failed"
failed=true
else
echo "::notice title=Title Check::✅ Title Check passed"
fi
if [ "${{ env.MILESTONE_CHECK_FAILED }}" == "true" ]; then
echo "::error title=Milestone Check::❌ Milestone Check failed"
failed=true
else
echo "::notice title=Milestone Check::✅ Milestone Check passed"
fi
if [ "${{ env.ASSIGNEE_CHECK_FAILED }}" == "true" ]; then
echo "::error title=Assignee Check::❌ Assignee Check failed"
failed=true
else
echo "::notice title=Assignee Check::✅ Assignee Check passed"
fi
if [ "${{ env.LABEL_CHECK_FAILED }}" == "true" ]; then
echo "::error title=Label Check::❌ Label Check failed"
failed=true
else
echo "::notice title=Label Check::✅ Label Check passed"
fi
if [ "$failed" == "true" ]; then
exit 1
fi
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,7 @@ export BLOCKNODE_SERVER_CONSUMER_TIMEOUT_THRESHOLD="<NumberInMiliseconds>" #Defa

# Running Tests
1) ./gradlew build


### Code Coverage
[![codecov](https://codecov.io/github/hashgraph/hedera-block-node/graph/badge.svg?token=OF6T6E8V7U)](https://codecov.io/github/hashgraph/hedera-block-node)

0 comments on commit b5bebc5

Please sign in to comment.