feat: Create and use contract service interface #41885
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SPDX-License-Identifier: Apache-2.0 | |
| name: "Node: PR Checks" | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| types: | |
| - opened | |
| - reopened | |
| - synchronize | |
| defaults: | |
| run: | |
| shell: bash | |
| permissions: | |
| id-token: write | |
| actions: read | |
| pull-requests: write | |
| statuses: write | |
| checks: write | |
| contents: read | |
| concurrency: | |
| group: pr-checks-${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: Code | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| with: | |
| enable-spotless-check: false | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| dependency-check: | |
| name: Dependency (Module Info) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - build | |
| with: | |
| custom-job-label: "Check" | |
| enable-dependency-check: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| spotless: | |
| name: Spotless | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - build | |
| with: | |
| custom-job-label: "Check" | |
| enable-unit-tests: false | |
| enable-spotless-check: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| unit-tests: | |
| name: Unit Tests | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| codacy-project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
| codecov-token: ${{ secrets.CODECOV_TOKEN }} | |
| integration-tests: | |
| name: Integration Tests | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-integration-tests: true | |
| enable-network-log-capture: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| hapi-tests-misc: | |
| name: HAPI Tests (Misc) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-hapi-tests-misc: true | |
| enable-network-log-capture: true | |
| mats-suffix: MATS | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| hapi-tests-misc-records: | |
| name: HAPI Tests (Misc Records) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-hapi-tests-misc-records: true | |
| enable-network-log-capture: true | |
| mats-suffix: MATS | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| hapi-tests-crypto: | |
| name: HAPI Tests (Crypto) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-hapi-tests-crypto: true | |
| enable-network-log-capture: true | |
| mats-suffix: MATS | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| hapi-tests-iss: | |
| name: HAPI Tests (ISS) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-hapi-tests-iss: true | |
| enable-network-log-capture: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| hapi-tests-token: | |
| name: HAPI Tests (Token) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-hapi-tests-token: true | |
| enable-network-log-capture: true | |
| mats-suffix: MATS | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| hapi-tests-smart-contract: | |
| name: HAPI Tests (Smart Contract) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-hapi-tests-smart-contract: true | |
| enable-network-log-capture: true | |
| mats-suffix: MATS | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| hapi-tests-restart: | |
| name: HAPI Tests (Restart) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-hapi-tests-restart: true | |
| enable-network-log-capture: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| hapi-tests-nd-reconnect: | |
| name: HAPI Tests (Node Death Reconnect) | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-hapi-tests-nd-reconnect: true | |
| enable-network-log-capture: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| otter-tests: | |
| name: Otter Tests | |
| uses: ./.github/workflows/zxc-execute-otter-tests.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| with: | |
| custom-job-label: Standard | |
| enable-fast-otter-tests: true | |
| enable-network-log-capture: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| snyk-scan: | |
| name: Snyk Scan | |
| uses: ./.github/workflows/node-zxc-compile-application-code.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| if: ${{ github.event_name != 'pull_request' || (github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) }} | |
| with: | |
| custom-job-label: Standard | |
| enable-unit-tests: false | |
| enable-snyk-scan: true | |
| secrets: | |
| access-token: ${{ secrets.GITHUB_TOKEN }} | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| snyk-token: ${{ secrets.SNYK_TOKEN }} | |
| gradle-determinism: | |
| name: Gradle Determinism | |
| uses: ./.github/workflows/zxc-verify-gradle-build-determinism.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| if: ${{ github.event_name != 'pull_request' || (github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) }} | |
| with: | |
| ref: ${{ github.event.inputs.ref || '' }} | |
| java-distribution: temurin | |
| java-version: 21.0.6 | |
| secrets: | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} | |
| docker-determinism: | |
| name: Docker Determinism | |
| uses: ./.github/workflows/zxc-verify-docker-build-determinism.yaml | |
| needs: | |
| - dependency-check | |
| - spotless | |
| if: ${{ github.event_name != 'pull_request' || (github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) }} | |
| with: | |
| ref: ${{ github.event.inputs.ref || '' }} | |
| java-distribution: temurin | |
| java-version: 21.0.6 | |
| secrets: | |
| gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }} | |
| gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }} |