diff --git a/.github/actions/test-summary/action.yml b/.github/actions/test-summary/action.yml new file mode 100644 index 000000000000..344bb472fb37 --- /dev/null +++ b/.github/actions/test-summary/action.yml @@ -0,0 +1,89 @@ +name: 'Test Summary' +description: 'Parse JUnit XML reports and write a failure summary to GITHUB_STEP_SUMMARY' + +inputs: + report-type: + description: 'Type of test report directory (test or integrationTest)' + required: true + default: 'test' + +runs: + using: 'composite' + steps: + - name: Generate test summary + if: always() + shell: bash + run: | + shopt -s globstar nullglob + + report_type="${{ inputs.report-type }}" + files=(**/build/test-results/${report_type}/TEST-*.xml) + + if [ ${#files[@]} -eq 0 ]; then + echo "No test result files found." + exit 0 + fi + + total=0 + failed=0 + errored=0 + skipped=0 + failure_details="" + + for f in "${files[@]}"; do + # Extract testsuite attributes + suite_line=$(head -5 "$f" | grep '/dev/null || true) + if [ -n "$details" ]; then + failure_details="${failure_details}${details}"$'\n' + fi + fi + done + + passed=$((total - failed - errored - skipped)) + + if [ "$failed" -eq 0 ] && [ "$errored" -eq 0 ]; then + summary="Tests passed: $passed, skipped: $skipped" + echo "$summary" + echo "### :white_check_mark: $summary" >> "$GITHUB_STEP_SUMMARY" + else + summary="Tests: $passed passed, $((failed + errored)) failed, $skipped skipped (total: $total)" + echo "::error::$summary" + echo "" + echo "$failure_details" + echo "### :x: $summary" >> "$GITHUB_STEP_SUMMARY" + echo "" >> "$GITHUB_STEP_SUMMARY" + echo "| Class | Test | Message |" >> "$GITHUB_STEP_SUMMARY" + echo "|-------|------|---------|" >> "$GITHUB_STEP_SUMMARY" + echo "$failure_details" >> "$GITHUB_STEP_SUMMARY" + fi diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000000..8f1a967085aa --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,45 @@ +name: Build + +on: + push: + branches: [ ignite-di-claude ] + pull_request: + branches: [ ignite-di-claude ] + workflow_dispatch: + +jobs: + build: + name: Build + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: false + + - name: Build (skip tests and checks) + run: ./gradlew clean build -x assembleDist -x distTar -x distZip -x check + + checks: + name: Checks + needs: build + uses: ./.github/workflows/checks.yml + + unit-tests: + name: Unit Tests + needs: checks + uses: ./.github/workflows/unit-tests.yml + + integration-tests: + name: Integration Tests + needs: unit-tests + uses: ./.github/workflows/integration-tests.yml diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 000000000000..49ec8d5a864c --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,167 @@ +name: Checks + +on: + workflow_call: + +jobs: + checkstyle: + name: Checkstyle + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run Checkstyle + run: ./gradlew --continue checkstyleMain checkstyleTest checkstyleIntegrationTest checkstyleTestFixtures + + - name: Summarize Checkstyle violations + if: always() + shell: bash + run: | + shopt -s globstar nullglob + files=(**/build/reports/checkstyle/*.xml) + if [ ${#files[@]} -eq 0 ]; then exit 0; fi + violations=$(grep -h '/dev/null || true) + if [ -z "$violations" ]; then + echo "Checkstyle: No violations" + echo "### :white_check_mark: Checkstyle: No violations" >> "$GITHUB_STEP_SUMMARY" + exit 0 + fi + echo "::error::Checkstyle violations found" + echo "### :x: Checkstyle Violations" >> "$GITHUB_STEP_SUMMARY" + echo "" >> "$GITHUB_STEP_SUMMARY" + echo "| File | Line | Message |" >> "$GITHUB_STEP_SUMMARY" + echo "|------|------|---------|" >> "$GITHUB_STEP_SUMMARY" + for f in "${files[@]}"; do + grep '/dev/null | sed -E 's/.*line="([0-9]+)".*message="([^"]+)".*/\1|\2/' | while IFS='|' read -r line msg; do + src=$(grep -oP 'name="\K[^"]+' "$f" | head -1) + short=$(echo "$src" | sed 's|.*/src/||') + echo "::error file=$short,line=$line::$msg" + echo "| \`$short\` | $line | $msg |" >> "$GITHUB_STEP_SUMMARY" + done + done + + pmd: + name: PMD + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run PMD + run: ./gradlew --continue pmdMain pmdTest pmdIntegrationTest pmdTestFixtures + + - name: Summarize PMD violations + if: always() + shell: bash + run: | + shopt -s globstar nullglob + files=(**/build/reports/pmd/*.xml) + if [ ${#files[@]} -eq 0 ]; then exit 0; fi + violations=$(grep -h '/dev/null || true) + if [ -z "$violations" ]; then + echo "PMD: No violations" + echo "### :white_check_mark: PMD: No violations" >> "$GITHUB_STEP_SUMMARY" + exit 0 + fi + echo "::error::PMD violations found" + echo "### :x: PMD Violations" >> "$GITHUB_STEP_SUMMARY" + echo "" >> "$GITHUB_STEP_SUMMARY" + echo "| File | Line | Rule | Message |" >> "$GITHUB_STEP_SUMMARY" + echo "|------|------|------|---------|" >> "$GITHUB_STEP_SUMMARY" + for f in "${files[@]}"; do + current_file="" + while IFS= read -r line; do + if echo "$line" | grep -qP '([^<]+)<\/violation>.*/\1/' | xargs) + echo "::error file=$current_file,line=$lineno::[$rule] $msg" + echo "| \`$current_file\` | $lineno | $rule | $msg |" >> "$GITHUB_STEP_SUMMARY" + fi + done < "$f" + done + + spotbugs: + name: SpotBugs + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run SpotBugs + run: ./gradlew --continue spotbugsMain spotbugsTest spotbugsIntegrationTest spotbugsTestFixtures + + - name: Summarize SpotBugs violations + if: always() + shell: bash + run: | + shopt -s globstar nullglob + files=(**/build/reports/spotbugs/*.xml) + if [ ${#files[@]} -eq 0 ]; then exit 0; fi + bugs=$(grep -h '/dev/null || true) + if [ -z "$bugs" ]; then + echo "SpotBugs: No bugs found" + echo "### :white_check_mark: SpotBugs: No bugs found" >> "$GITHUB_STEP_SUMMARY" + exit 0 + fi + echo "::error::SpotBugs issues found" + echo "### :x: SpotBugs Issues" >> "$GITHUB_STEP_SUMMARY" + echo "" >> "$GITHUB_STEP_SUMMARY" + echo "| Type | Category | Class | Line | Message |" >> "$GITHUB_STEP_SUMMARY" + echo "|------|----------|-------|------|---------|" >> "$GITHUB_STEP_SUMMARY" + for f in "${files[@]}"; do + python3 -c " + import xml.etree.ElementTree as ET, os + tree = ET.parse('$f') + summary = open(os.environ['GITHUB_STEP_SUMMARY'], 'a') + for bug in tree.findall('.//BugInstance'): + typ = bug.get('type', '') + cat = bug.get('category', '') + msg_el = bug.find('ShortMessage') + msg = msg_el.text if msg_el is not None else '' + cls_el = bug.find('Class') + cls = cls_el.get('classname', '') if cls_el is not None else '' + src_el = bug.find('.//SourceLine[@start]') + line = src_el.get('start', '') if src_el is not None else '' + print(f'::error::[{typ}] {cls}:{line} - {msg}') + summary.write(f'| \`{typ}\` | {cat} | \`{cls}\` | {line} | {msg} |\n') + summary.close() + " 2>/dev/null || true + done diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml new file mode 100644 index 000000000000..52c2fb19f33b --- /dev/null +++ b/.github/workflows/integration-tests.yml @@ -0,0 +1,417 @@ +name: Integration Tests + +on: + workflow_call: + +jobs: + core: + name: Core + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-eventlog:integrationTest + :ignite-failure-handler:integrationTest + :ignite-workers:integrationTest + :ignite-configuration-annotation-processor:integrationTest + :ignite-file-transfer:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-core + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + network: + name: Network + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-network:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-network + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + storage: + name: Storage + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-page-memory:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-storage + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + sql: + name: SQL + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-sql-engine:integrationTest + :ignite-catalog:integrationTest + :ignite-catalog-compaction:integrationTest + :ignite-catalog-dsl:integrationTest + :ignite-jdbc:integrationTest + :ignite-schema-sync:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-sql + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + raft-replication: + name: Raft & Replication + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-raft:integrationTest + :ignite-replicator:integrationTest + :ignite-partition-replicator:integrationTest + :ignite-metastorage:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-raft-replication + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + table-index: + name: Table & Index + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-table:integrationTest + :ignite-index:integrationTest + :ignite-distribution-zones:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-table-index + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + compute-deployment: + name: Compute & Deployment + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-compute:integrationTest + :ignite-code-deployment:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-compute-deployment + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + client: + name: Client + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-client-handler:integrationTest + :ignite-rest:integrationTest + :ignite-cli:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-client + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + runner: + name: Runner + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue + :ignite-runner:integrationTest + :ignite-cluster-management:integrationTest + :ignite-placement-driver:integrationTest + :ignite-security:integrationTest + :ignite-transactions:integrationTest + :ignite-system-disaster-recovery:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-runner + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' + + misc: + name: Misc + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run integration tests + run: >- + ./gradlew --continue integrationTest + -x :ignite-eventlog:integrationTest + -x :ignite-failure-handler:integrationTest + -x :ignite-workers:integrationTest + -x :ignite-configuration-annotation-processor:integrationTest + -x :ignite-file-transfer:integrationTest + -x :ignite-network:integrationTest + -x :ignite-page-memory:integrationTest + -x :ignite-sql-engine:integrationTest + -x :ignite-catalog:integrationTest + -x :ignite-catalog-compaction:integrationTest + -x :ignite-catalog-dsl:integrationTest + -x :ignite-jdbc:integrationTest + -x :ignite-schema-sync:integrationTest + -x :ignite-raft:integrationTest + -x :ignite-replicator:integrationTest + -x :ignite-partition-replicator:integrationTest + -x :ignite-metastorage:integrationTest + -x :ignite-table:integrationTest + -x :ignite-index:integrationTest + -x :ignite-distribution-zones:integrationTest + -x :ignite-compute:integrationTest + -x :ignite-code-deployment:integrationTest + -x :ignite-client-handler:integrationTest + -x :ignite-rest:integrationTest + -x :ignite-cli:integrationTest + -x :ignite-runner:integrationTest + -x :ignite-cluster-management:integrationTest + -x :ignite-placement-driver:integrationTest + -x :ignite-security:integrationTest + -x :ignite-transactions:integrationTest + -x :ignite-system-disaster-recovery:integrationTest + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: integrationTest + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: integration-test-reports-misc + retention-days: 7 + path: '**/build/reports/tests/integrationTest/' diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 000000000000..5ead382e6b1c --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,516 @@ +name: Unit Tests + +on: + workflow_call: + +jobs: + core: + name: Core + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-api:test + :ignite-arch-test:test + :ignite-binary-tuple:test + :ignite-bytecode:test + :ignite-core:test + :ignite-di:test + :ignite-failure-handler:test + :ignite-file-io:test + :ignite-marshaller-common:test + :ignite-workers:test + :ignite-vault:test + :ignite-eventlog:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-core + retention-days: 7 + path: '**/build/reports/tests/test/' + + configuration: + name: Configuration + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-configuration:test + :ignite-configuration-annotation-processor:test + :ignite-configuration-presentation:test + :ignite-configuration-storage:test + :ignite-configuration-system:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-configuration + retention-days: 7 + path: '**/build/reports/tests/test/' + + network: + name: Network + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-network:test + :ignite-network-annotation-processor:test + :ignite-network-api:test + :ignite-file-transfer:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-network + retention-days: 7 + path: '**/build/reports/tests/test/' + + storage: + name: Storage + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-storage-api:test + :ignite-storage-page-memory:test + :ignite-storage-rocksdb:test + :ignite-page-memory:test + :ignite-rocksdb-common:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-storage + retention-days: 7 + path: '**/build/reports/tests/test/' + + sql: + name: SQL + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-sql-engine:test + :ignite-catalog:test + :ignite-catalog-compaction:test + :ignite-catalog-dsl:test + :ignite-jdbc:test + :ignite-schema:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-sql + retention-days: 7 + path: '**/build/reports/tests/test/' + + raft-replication: + name: Raft & Replication + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-raft:test + :ignite-raft-api:test + :ignite-replicator:test + :ignite-partition-replicator:test + :ignite-metastorage:test + :ignite-metastorage-api:test + :ignite-metastorage-cache:test + :ignite-low-watermark:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-raft-replication + retention-days: 7 + path: '**/build/reports/tests/test/' + + table-index: + name: Table & Index + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-table:test + :ignite-index:test + :ignite-distribution-zones:test + :ignite-partition-distribution:test + :ignite-system-view:test + :ignite-system-view-api:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-table-index + retention-days: 7 + path: '**/build/reports/tests/test/' + + compute-deployment: + name: Compute & Deployment + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-compute:test + :ignite-code-deployment:test + :ignite-code-deployment-classloader:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-compute-deployment + retention-days: 7 + path: '**/build/reports/tests/test/' + + client: + name: Client + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-client:test + :ignite-client-common:test + :ignite-client-handler:test + :ignite-rest:test + :ignite-rest-api:test + :ignite-cli:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-client + retention-days: 7 + path: '**/build/reports/tests/test/' + + runner: + name: Runner + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue + :ignite-runner:test + :ignite-cluster-management:test + :ignite-placement-driver:test + :ignite-placement-driver-api:test + :ignite-security:test + :ignite-transactions:test + :ignite-system-disaster-recovery:test + :ignite-system-disaster-recovery-api:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-runner + retention-days: 7 + path: '**/build/reports/tests/test/' + + misc: + name: Misc + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: true + + - name: Run unit tests + run: >- + ./gradlew --continue test + -x :ignite-api:test + -x :ignite-arch-test:test + -x :ignite-binary-tuple:test + -x :ignite-bytecode:test + -x :ignite-core:test + -x :ignite-di:test + -x :ignite-failure-handler:test + -x :ignite-file-io:test + -x :ignite-marshaller-common:test + -x :ignite-workers:test + -x :ignite-vault:test + -x :ignite-eventlog:test + -x :ignite-configuration:test + -x :ignite-configuration-annotation-processor:test + -x :ignite-configuration-presentation:test + -x :ignite-configuration-storage:test + -x :ignite-configuration-system:test + -x :ignite-network:test + -x :ignite-network-annotation-processor:test + -x :ignite-network-api:test + -x :ignite-file-transfer:test + -x :ignite-storage-api:test + -x :ignite-storage-page-memory:test + -x :ignite-storage-rocksdb:test + -x :ignite-page-memory:test + -x :ignite-rocksdb-common:test + -x :ignite-sql-engine:test + -x :ignite-catalog:test + -x :ignite-catalog-compaction:test + -x :ignite-catalog-dsl:test + -x :ignite-jdbc:test + -x :ignite-schema:test + -x :ignite-raft:test + -x :ignite-raft-api:test + -x :ignite-replicator:test + -x :ignite-partition-replicator:test + -x :ignite-metastorage:test + -x :ignite-metastorage-api:test + -x :ignite-metastorage-cache:test + -x :ignite-low-watermark:test + -x :ignite-table:test + -x :ignite-index:test + -x :ignite-distribution-zones:test + -x :ignite-partition-distribution:test + -x :ignite-system-view:test + -x :ignite-system-view-api:test + -x :ignite-compute:test + -x :ignite-code-deployment:test + -x :ignite-code-deployment-classloader:test + -x :ignite-client:test + -x :ignite-client-common:test + -x :ignite-client-handler:test + -x :ignite-rest:test + -x :ignite-rest-api:test + -x :ignite-cli:test + -x :ignite-runner:test + -x :ignite-cluster-management:test + -x :ignite-placement-driver:test + -x :ignite-placement-driver-api:test + -x :ignite-security:test + -x :ignite-transactions:test + -x :ignite-system-disaster-recovery:test + -x :ignite-system-disaster-recovery-api:test + + - name: Summarize test failures + if: always() + uses: ./.github/actions/test-summary + with: + report-type: test + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: unit-test-reports-misc + retention-days: 7 + path: '**/build/reports/tests/test/' diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index bf6498d4532f..a20afe5b881d 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -42,7 +42,7 @@ - + @@ -112,7 +112,7 @@ - + @@ -200,7 +200,6 @@