Build a way to test the examples work with each mainnet release and new SDK release #2349
Workflow file for this run
This file contains 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
name: Build | |
on: | |
push: | |
branches: | |
- main | |
- develop | |
- release/* | |
pull_request: | |
branches: | |
- main | |
- develop | |
- release/* | |
jobs: | |
compile: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
- name: Cache Gradle packages | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Compile SDK | |
run: ./gradlew compileJava | |
- name: Compile Tests | |
run: ./gradlew compileTestJava | |
- name: Compile Integration Tests | |
run: ./gradlew compileIntegrationTestJava | |
- name: Compile Examples | |
run: ./gradlew :examples:compileJava | |
- name: Generate Javadoc | |
run: ./gradlew sdk:javadoc | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
- name: Cache Gradle packages | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Start the local node | |
run: npx @hashgraph/[email protected] start -d --network local | |
- name: Run Tests | |
env: | |
OPERATOR_KEY: '0xa608e2130a0a3cb34f86e757303c862bee353d9ab77ba4387ec084f881d420d4' | |
OPERATOR_ID: '0.0.1022' | |
HEDERA_NETWORK: 'localhost' | |
run: | | |
./gradlew -POPERATOR_ID=$OPERATOR_ID -POPERATOR_KEY=$OPERATOR_KEY -PHEDERA_NETWORK=$HEDERA_NETWORK jacocoTestReport | |
- name: Build with Sonar | |
if: github.event_name == 'push' || (github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
run: ./gradlew sonarqube --info | |
- name: Publish To Codecov | |
if: always() | |
uses: codecov/codecov-action@v3 | |
- name: Stop the local node | |
run: npx @hashgraph/hedera-local stop | |
examples: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v2 | |
with: | |
java-version: '17' | |
distribution: 'adopt' | |
- name: Cache Gradle packages | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Compile SDK | |
run: ./gradlew :sdk:assemble | |
- name: Compile Examples | |
run: ./gradlew :examples:assemble | |
- name: Start the local node | |
run: npx @hashgraph/[email protected] start -d --network local | |
- name: Prepare .env for Examples | |
run: | | |
echo "OPERATOR_KEY=0xa608e2130a0a3cb34f86e757303c862bee353d9ab77ba4387ec084f881d420d4" > examples/.env | |
echo "OPERATOR_ID=0.0.1022" >> examples/.env | |
echo "HEDERA_NETWORK=localhost" >> examples/.env | |
- name: Run Examples | |
run: | | |
./gradlew :examples:runAllExamples |