name: pre-review on: pull_request: workflow_dispatch: permissions: statuses: write checks: write jobs: repolint: name: "Repository Linting" runs-on: ubuntu-22.04 container: ghcr.io/todogroup/repolinter:v0.11.2 steps: - name: Checkout Code uses: actions/checkout@v4.1.1 - name: Lint Repo run: bundle exec /app/bin/repolinter.js --rulesetUrl https://raw.githubusercontent.com/hyperledger-labs/hyperledger-community-management-tools/main/repo_structure/repolint.json --format markdown gradle-wrapper: name: "Gradle Wrapper Validation" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4.1.1 - uses: gradle/wrapper-validation-action@v1.1.0 spotless: runs-on: ubuntu-22.04 if: ${{ github.actor != 'dependabot[bot]' }} steps: - name: Checkout Repo uses: actions/checkout@v4.1.1 - name: Set up Java uses: actions/setup-java@v4.0.0 with: distribution: temurin java-version: 17 - name: Setup Gradle uses: gradle/gradle-build-action@v2.12.0 - name: run spotless run: ./gradlew spotlessCheck -Dorg.gradle.parallel=true -Dorg.gradle.caching=true compile: runs-on: ubuntu-22.04 timeout-minutes: 30 needs: [spotless, gradle-wrapper, repolint] steps: - name: Checkout Repo uses: actions/checkout@v4.1.1 - name: Set up Java uses: actions/setup-java@v4.0.0 with: distribution: temurin java-version: 17 - name: Setup Gradle uses: gradle/gradle-build-action@v2.12.0 - name: Gradle Compile run: ./gradlew build -x test -x spotlessCheck -Dorg.gradle.parallel=true -Dorg.gradle.caching=true unitTests: env: GRADLEW_UNIT_TEST_ARGS: ${{matrix.gradle_args}} runs-on: ubuntu-22.04 needs: [ compile ] permissions: checks: write statuses: write strategy: fail-fast: true matrix: gradle_args: - "test -x besu:test -x consensus:test -x crypto:test -x ethereum:eth:test -x ethereum:api:test -x ethereum:core:test" - "besu:test consensus:test crypto:test" - "ethereum:api:testBonsai" - "ethereum:api:testForest" - "ethereum:api:testRemainder" - "ethereum:core:test" steps: - name: Checkout Repo uses: actions/checkout@v4.1.1 - name: Set up Java uses: actions/setup-java@v4.0.0 with: distribution: temurin java-version: 17 - name: Setup Gradle uses: gradle/gradle-build-action@v2.12.0 - name: run unit tests id: unitTest run: ./gradlew $GRADLEW_UNIT_TEST_ARGS -Dorg.gradle.parallel=true -Dorg.gradle.caching=true - name: Publish Test Report uses: mikepenz/action-junit-report@v4 if: success() || failure() # always run even if the build step fails with: report_paths: '**/test-results/**/TEST-*.xml' annotate_only: true pre-review: runs-on: ubuntu-22.04 needs: [unitTests] permissions: checks: write statuses: write steps: - name: consolidation run: echo "consolidating statuses"