Skip to content

Commit a9bf083

Browse files
Merge upstream
Signed-off-by: Michael Tinker <[email protected]>
2 parents c3e84ed + 881222a commit a9bf083

File tree

414 files changed

+12003
-5307
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

414 files changed

+12003
-5307
lines changed

.github/ISSUE_TEMPLATE/good-first-issue-candidate.yaml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
# SPDX-License-Identifier: Apache-2.0
12
name: Good First Issue Candidate
23
description: Suggest an idea for this project
3-
labels: [ "Good First Issue Candidate" ]
4+
labels: ["Good First Issue Candidate"]
45
type: Feature
56
body:
67
- type: markdown
78
attributes:
89
value: |
910
## Thanks for submitting a Good First Issue!
10-
11+
1112
This issue targets first time contributors to [Hiero](https://hiero.org).
1213
We know that creating a pull request (PR) is a major barrier for new contributors.
1314
The goal of this issue (and all other issues labeled with) [**'Good First Issue'**](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3Ahiero-ledger+archived%3Afalse+label%3A%22good+first+issue%22+) is to help you make your first contribution to Hiero.
@@ -53,13 +54,13 @@ body:
5354
attributes:
5455
value: |
5556
------
56-
57+
5758
## Making Contributions
58-
59+
5960
If you have never contributed to an open source project at GitHub, the following step-by-step guide will introduce you to the workflow.
6061
More information and concrete samples for shell commands for each step can be found in our [CONTRIBUTING.md](https://github.com/hiero-ledger/.github/blob/main/CONTRIBUTING.md) file.
6162
A more detailed general documentation of the GitHub PR workflow can be found [here](https://github.com/firstcontributions/first-contributions/blob/master/README.md).
62-
63+
6364
- [ ] **Claim this issue:** Comment below that you are interested in working on the issue
6465
- [ ] **Wait for assignment:** A community member with the given rights will add you as an assignee of the issue
6566
- [ ] **Work on the issue:** Follow the detailed description in our [CONTRIBUTING.md](https://github.com/hiero-ledger/.github/blob/main/CONTRIBUTING.md) file.
@@ -70,17 +71,17 @@ body:
7071
attributes:
7172
value: |
7273
## :jack_o_lantern: Hacktoberfest :jack_o_lantern:
73-
74+
7475
At the time of the [Hacktoberfest](https://hacktoberfest.digitalocean.com) event we try to mark all PRs that solve any good first issue with the `hacktoberfest-accepted` label.
7576
If you want to resolve this issue as part of Hacktoberfest and we missed adding the label, simply add a comment to the issue or PR, and we will add it.
76-
77+
7778
------
7879
- type: markdown
7980
attributes:
8081
value: |
8182
## Additional Questions
82-
83+
8384
If you have any questions about the topic of this issue, please ask us directly by adding a comment below.
8485
Additionally, we invite you to join our community on our [Discord](https://discord.gg/kEnnmB9A) server or attend our [public community calls](https://zoom-lfx.platform.linuxfoundation.org/meetings/hiero?view=week).
85-
86+
8687
A general manual about open-source contributions can be found [here](https://github.com/firstcontributions/first-contributions/blob/master/README.md).

.github/workflows/node-flow-build-application.yaml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,24 @@ jobs:
128128
codacy-project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
129129
codecov-token: ${{ secrets.CODECOV_TOKEN }}
130130

131+
mats-integration-tests:
132+
name: MATS - Integration Tests
133+
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
134+
needs:
135+
- dependency-check
136+
- spotless
137+
with:
138+
custom-job-label: "MATS Integration Tests"
139+
java-version: ${{ github.event.inputs.java-version || '21.0.6' }}
140+
java-distribution: ${{ github.event.inputs.java-distribution || 'temurin' }}
141+
enable-unit-tests: false
142+
enable-integration-tests: ${{ github.event_name == 'push' || github.event.inputs.enable-unit-tests == 'true' }}
143+
enable-network-log-capture: true
144+
secrets:
145+
access-token: ${{ secrets.GITHUB_TOKEN }}
146+
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
147+
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
148+
131149
mats-hapi-tests-misc:
132150
name: MATS - HAPI Tests (Misc)
133151
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
@@ -364,6 +382,7 @@ jobs:
364382
runs-on: hiero-citr-linux-medium
365383
needs:
366384
- mats-unit-tests
385+
- mats-integration-tests
367386
- mats-hapi-tests-misc
368387
- mats-hapi-tests-misc-records
369388
- mats-hapi-tests-crypto
@@ -379,6 +398,7 @@ jobs:
379398
- mats-docker-determinism
380399
if: ${{ (github.event_name == 'push') &&
381400
needs.mats-unit-tests.result == 'success' &&
401+
needs.mats-integration-tests.result == 'success' &&
382402
needs.mats-hapi-tests-misc.result == 'success' &&
383403
needs.mats-hapi-tests-misc-records.result == 'success' &&
384404
needs.mats-hapi-tests-crypto.result == 'success' &&
@@ -419,6 +439,7 @@ jobs:
419439
- dependency-check
420440
- spotless
421441
- mats-unit-tests
442+
- mats-integration-tests
422443
- mats-hapi-tests-misc
423444
- mats-hapi-tests-misc-records
424445
- mats-hapi-tests-crypto
@@ -437,6 +458,7 @@ jobs:
437458
needs.dependency-check.result != 'success' ||
438459
needs.spotless.result != 'success' ||
439460
needs.mats-unit-tests.result != 'success' ||
461+
needs.mats-integration-tests.result != 'success' ||
440462
needs.mats-hapi-tests-misc.result != 'success' ||
441463
needs.mats-hapi-tests-misc-records.result != 'success' ||
442464
needs.mats-hapi-tests-crypto.result != 'success' ||
@@ -522,6 +544,7 @@ jobs:
522544
- name: Calculate MATS Unit Test Result
523545
id: mats-unit-test-result
524546
if: ${{ needs.mats-unit-tests.result != 'success' ||
547+
needs.mats-integration-tests.result != 'success' ||
525548
needs.mats-hapi-tests-misc.result != 'success' ||
526549
needs.mats-hapi-tests-misc-records.result != 'success' ||
527550
needs.mats-hapi-tests-crypto.result != 'success' ||
@@ -588,7 +611,7 @@ jobs:
588611
details: "${{ steps.rootly-summary.outputs.summary }}"
589612
notification_target_type: "Service"
590613
notification_target: ${{ steps.set-rootly-parameters.outputs.service }}
591-
set_as_noise: "true"
614+
set_as_noise: "false"
592615
alert_urgency: "High"
593616
external_id: ${{ github.run_id }}
594617
external_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"

.github/workflows/node-flow-deploy-release-artifact.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ jobs:
381381
details: "${{ steps.rootly-summary.outputs.summary }}"
382382
notification_target_type: "Service"
383383
notification_target: "CI/CD Workflows"
384-
set_as_noise: "true"
384+
set_as_noise: "false"
385385
alert_urgency: "High"
386386
external_id: ${{ github.run_id }}
387387
external_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"

.github/workflows/node-flow-pull-request-checks.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,22 @@ jobs:
7878
codacy-project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
7979
codecov-token: ${{ secrets.CODECOV_TOKEN }}
8080

81+
integration-tests:
82+
name: Integration Tests
83+
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
84+
needs:
85+
- dependency-check
86+
- spotless
87+
with:
88+
custom-job-label: Standard
89+
enable-unit-tests: false
90+
enable-integration-tests: true
91+
enable-network-log-capture: true
92+
secrets:
93+
access-token: ${{ secrets.GITHUB_TOKEN }}
94+
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
95+
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
96+
8197
hapi-tests-misc:
8298
name: HAPI Tests (Misc)
8399
uses: ./.github/workflows/node-zxc-compile-application-code.yaml

.github/workflows/node-zxc-compile-application-code.yaml

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ on:
2323
type: boolean
2424
required: false
2525
default: false
26+
enable-integration-tests:
27+
description: "Integration Testing Enabled"
28+
type: boolean
29+
required: false
30+
default: false
2631
enable-hapi-tests-misc:
2732
description: "HAPI Testing (misc) Enabled"
2833
type: boolean
@@ -316,6 +321,28 @@ jobs:
316321
path: "**/build/test-results/hammer/TEST-*.xml"
317322
retention-days: 7
318323

324+
- name: Integration Tests
325+
id: gradle-integration-tests
326+
if: ${{ inputs.enable-integration-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
327+
run: ${GRADLE_EXEC} testIntegration --continue
328+
329+
- name: Publish Integration Test Report
330+
uses: step-security/publish-unit-test-result-action@5d195d4dec0b9fa7b51a3dbc4298362a021247c7 # v2.20.4
331+
if: ${{ inputs.enable-integration-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
332+
with:
333+
check_name: "Node: Integration Test Results"
334+
json_thousands_separator: ","
335+
junit_files: "**/build/test-results/testIntegration/TEST-*.xml"
336+
comment_mode: errors # only comment if we could not find or parse the JUnit XML files
337+
338+
- name: Upload Integration Test Report Artifacts
339+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
340+
if: ${{ inputs.enable-integration-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
341+
with:
342+
name: Integration Test Report
343+
path: "**/build/test-results/testIntegration/TEST-*.xml"
344+
retention-days: 7
345+
319346
- name: HAPI Testing (Misc)
320347
id: gradle-hapi-misc
321348
if: ${{ inputs.enable-hapi-tests-misc && steps.gradle-build.conclusion == 'success' && !cancelled() }}
@@ -675,32 +702,50 @@ jobs:
675702
hedera-node/test-clients/build/*-test/**/output/**
676703
retention-days: 7
677704

705+
- name: Upload Otter Integration Tests Turtle Logs
706+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
707+
if: ${{ inputs.enable-integration-tests && inputs.enable-network-log-capture && steps.gradle-integration-tests.conclusion == 'failure' && !cancelled() }}
708+
with:
709+
name: Otter Integration Tests Turtle Logs
710+
path: |
711+
platform-sdk/consensus-otter-tests/build/turtle/**
712+
retention-days: 7
713+
714+
- name: Upload Otter Integration Tests Container Logs
715+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
716+
if: ${{ inputs.enable-integration-tests && inputs.enable-network-log-capture && steps.gradle-integration-tests.conclusion == 'failure' && !cancelled() }}
717+
with:
718+
name: Otter Integration Tests Container Logs
719+
path: |
720+
platform-sdk/consensus-otter-tests/build/container/**
721+
retention-days: 7
722+
678723
- name: Otter Testing
679724
id: gradle-otter-tests
680725
if: ${{ inputs.enable-otter-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
681726
env:
682727
LC_ALL: en.UTF-8
683728
LANG: en_US.UTF-8
684-
run: ${GRADLE_EXEC} :consensus-otter-tests:testIntegration
729+
run: ${GRADLE_EXEC} :consensus-otter-tests:testOtter
685730

686731
- name: Publish Otter Testing Report
687732
uses: step-security/publish-unit-test-result-action@5d195d4dec0b9fa7b51a3dbc4298362a021247c7 # v2.20.4
688733
if: ${{ inputs.enable-otter-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
689734
with:
690735
check_name: "Node: Otter Tests Results"
691736
json_thousands_separator: ","
692-
junit_files: "**/consensus-otter-tests/build/test-results/testIntegration/TEST-*.xml"
737+
junit_files: "**/consensus-otter-tests/build/test-results/testOtter/TEST-*.xml"
693738
comment_mode: errors # only comment if we could not find or parse the JUnit XML files
694739

695740
- name: Upload Otter Tests Report Artifacts
696741
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
697742
if: ${{ inputs.enable-otter-tests && steps.gradle-build.conclusion == 'success' && !cancelled() }}
698743
with:
699744
name: Otter Tests Report
700-
path: "**/consensus-otter-tests/build/test-results/testIntegration/TEST-*.xml"
745+
path: "**/consensus-otter-tests/build/test-results/testOtter/TEST-*.xml"
701746
retention-days: 7
702747

703-
- name: Upload Otter Turtle Logs
748+
- name: Upload Otter Tests Turtle Logs
704749
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
705750
if: ${{ inputs.enable-otter-tests && inputs.enable-network-log-capture && steps.gradle-otter-tests.conclusion == 'failure' && !cancelled() }}
706751
with:
@@ -709,7 +754,7 @@ jobs:
709754
platform-sdk/consensus-otter-tests/build/turtle/**
710755
retention-days: 7
711756

712-
- name: Upload Otter Container Logs
757+
- name: Upload Otter Tests Container Logs
713758
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
714759
if: ${{ inputs.enable-otter-tests && inputs.enable-network-log-capture && steps.gradle-otter-tests.conclusion == 'failure' && !cancelled() }}
715760
with:
@@ -864,6 +909,7 @@ jobs:
864909
"${{ steps.gradle-timing-sensitive.outcome || 'skipped' }}"
865910
"${{ steps.gradle-time-consuming.outcome || 'skipped' }}"
866911
"${{ steps.gradle-hammer-tests.outcome || 'skipped' }}"
912+
"${{ steps.gradle-integration-tests.outcome || 'skipped' }}"
867913
"${{ steps.gradle-hapi-misc.outcome || 'skipped' }}"
868914
"${{ steps.gradle-hapi-misc-records.outcome || 'skipped' }}"
869915
"${{ steps.gradle-hapi-crypto.outcome || 'skipped' }}"

.github/workflows/zxc-single-day-longevity-test.yaml

Lines changed: 22 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,6 @@ on:
4848
slack-report-webhook:
4949
required: true
5050
description: "Slack webhook for SDLT outputs notifications"
51-
rootly-api-token:
52-
required: true
53-
description: "Rootly API Token for creating alerts/incidents"
5451
outputs:
5552
result:
5653
description: "Result of the SDLT Run"
@@ -761,15 +758,23 @@ jobs:
761758
RESULT="success"
762759
fi
763760
764-
echo "### Single Day Longevity Result" >> "${GITHUB_STEP_SUMMARY}"
765-
echo "result=${RESULT}" >> "${GITHUB_STEP_SUMMARY}"
761+
echo "## Single Day Longevity Result" | tee -a "${GITHUB_STEP_SUMMARY}"
762+
echo "result=${RESULT}" | tee -a "${GITHUB_STEP_SUMMARY}"
766763
echo "result=${RESULT}" >> "${GITHUB_OUTPUT}"
767764
768-
longevity-report-to-rootly:
769-
name: Report Failures to Rootly
765+
echo "## Individual Results" | tee -a "${GITHUB_STEP_SUMMARY}"
766+
echo "- NftTransferLoadTest TPS: ${NFT}" | tee -a "${GITHUB_STEP_SUMMARY}"
767+
echo "- HeliSwapLoadTest TPS: ${HELI}" | tee -a "${GITHUB_STEP_SUMMARY}"
768+
echo "- CryptoTransferLoadTest TPS: ${CRYPTO}" | tee -a "${GITHUB_STEP_SUMMARY}"
769+
echo "- HCSLoadTest TPS: ${HCS}" | tee -a "${GITHUB_STEP_SUMMARY}"
770+
echo "- SmartContractLoadTest TPS: ${SMART}" | tee -a "${GITHUB_STEP_SUMMARY}"
771+
772+
longevity-report-failures:
773+
name: Report Failures
770774
runs-on: hiero-citr-linux-medium
771775
needs:
772776
- longevity-tests-start
777+
- longevity-tests-wait
773778
- longevity-tests-finish
774779
- single-day-longevity-test-result
775780
if: ${{ (needs.longevity-tests-finish.result != 'success' ||
@@ -781,31 +786,18 @@ jobs:
781786
with:
782787
egress-policy: audit
783788

784-
- name: Check Test Asset
785-
id: check-test-asset
786-
run: |
787-
ADHOC="false"
788-
if [[ "${{ inputs.test-asset }}" =~ ^AdHoc(SD)?[0-9]+$ ]]; then
789-
ADHOC="true"
790-
fi
791-
echo "is-adhoc=${ADHOC}" >> "${GITHUB_OUTPUT}"
792-
793-
- name: Set Rootly Service Name
794-
id: set-rootly-service
795-
run: |
796-
ROOTLY_SERVICE_NAME="CITR SDLT"
797-
echo "service=${ROOTLY_SERVICE_NAME}" >> "${GITHUB_OUTPUT}"
798-
799-
- name: Build Rootly Summary
800-
id: rootly-summary
789+
- name: Build Summary Details
790+
id: summary
801791
run: |
802792
title="The Single Day Longevity Test workflow failed (SDLT ${{ inputs.test-asset }} - ${{ inputs.ref }})"
803793
echo "title=${title}" >> "${GITHUB_OUTPUT}"
804794
{
805795
echo 'summary<<EOF'
806796
echo "------------------------------------"
807797
echo "Status of each jobs:"
808-
echo "- Longevity Tests Start: ${{ needs.longevity-tests-finish.result }}"
798+
echo "- Longevity Tests Start: ${{ needs.longevity-tests-start.result }}"
799+
echo "- Longevity Tests Wait: ${{ needs.longevity-tests-wait.result }}"
800+
echo "- Longevity Tests Finish: ${{ needs.longevity-tests-finish.result }}"
809801
echo "- Single Day Longevity Test Result: ${{ needs.single-day-longevity-test-result.result }}"
810802
echo "------------------------------------"
811803
echo "Commit information:"
@@ -814,32 +806,11 @@ jobs:
814806
echo EOF
815807
} >> "${GITHUB_OUTPUT}"
816808
817-
- name: Log Rootly Summary
818-
run: |
819-
echo "## Rootly Summary" >> "${GITHUB_STEP_SUMMARY}"
820-
echo "### Title: ${{ steps.rootly-summary.outputs.title }}" >> "${GITHUB_STEP_SUMMARY}"
821-
echo "${{ steps.rootly-summary.outputs.summary }}" >> "${GITHUB_STEP_SUMMARY}"
822-
echo "### Rootly Service" >> "${GITHUB_STEP_SUMMARY}"
823-
echo "${{ steps.set-rootly-service.outputs.service }}" >> "${GITHUB_STEP_SUMMARY}"
824-
echo "### AdHoc Run?" >> "${GITHUB_STEP_SUMMARY}"
825-
echo "${{ steps.check-test-asset.outputs.is-adhoc }}" >> "${GITHUB_STEP_SUMMARY}"
826-
827-
- name: Create Rootly Alert
828-
id: rootly-alert
829-
if: ${{ steps.check-test-asset.outputs.is-adhoc == 'false' }}
830-
uses: pandaswhocode/rootly-alert-action@fdae1529e5aed62040016accf719a0ceb7dae57f # v1.0.0
831-
continue-on-error: true
832-
with:
833-
api_key: ${{ secrets.rootly-api-token }}
834-
summary: ${{ steps.rootly-summary.outputs.title }}
835-
details: ${{ steps.rootly-summary.outputs.summary }}
836-
notification_target_type: "Service"
837-
notification_target: ${{ steps.set-rootly-service.outputs.service }}
838-
set_as_noise: "true"
839-
alert_urgency: "High"
840-
external_id: ${{ github.run_id }}
841-
external_url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
842-
environments: "CITR"
809+
- name: Log Job Summary
810+
run: |
811+
echo "## Rootly Summary" | tee -a "${GITHUB_STEP_SUMMARY}"
812+
echo "### Title: ${{ steps.summary.outputs.title }}" | tee -a "${GITHUB_STEP_SUMMARY}"
813+
echo "${{ steps.summary.outputs.summary }}" | tee -a "${GITHUB_STEP_SUMMARY}"
843814
844815
longevity-report-to-Slack:
845816
runs-on: hiero-citr-linux-medium

0 commit comments

Comments
 (0)