Add generic contract for select functionality #117
Workflow file for this run
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
name: CI | |
on: | |
push: | |
branches: | |
- master | |
- "[0-9]+" | |
- "[0-9]+.[0-9]+" | |
workflow_dispatch: | |
pull_request: | |
jobs: | |
check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 1.8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '8' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Prepare | |
run: sudo mkdir -m 777 /var/log/scalar | |
- name: Lint Dockerfile | |
run: | | |
./gradlew \ | |
client:dockerfileLint \ | |
ledger:dockerfileLint \ | |
- name: Run unit tests | |
run: ./gradlew check | |
- name: Package artifacts | |
if: always() | |
run: | | |
rm -rf artifacts | |
mkdir artifacts | |
for x in ./*/build/reports/tests; do cp -a --parents $x ./artifacts/${x%%/*}; done | |
zip -r artifacts.zip artifacts | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: artifacts | |
path: artifacts.zip | |
integration-test-with-mysql: | |
name: Integration test with Consensus Commit transaction manager on MySQL | |
runs-on: ubuntu-latest | |
services: | |
mysql: | |
image: mysql:8.1 | |
env: | |
MYSQL_ROOT_PASSWORD: mysql | |
ports: | |
- 3306:3306 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 1.8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '8' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Build | |
run: | | |
./gradlew assemble | |
./gradlew testJar | |
# due to a gradle bug we must run the integration test separately | |
- name: Run integration tests | |
run: | | |
cd ledger | |
java -cp "build/test-libs/*:build/libs/*:build/classes/java/integrationTest" org.junit.platform.console.ConsoleLauncher execute -c=com.scalar.dl.ledger.service.LedgerServiceIntegrationTest | |
java -cp "build/test-libs/*:build/libs/*:build/classes/java/integrationTest" -Dscalardb.storage=jdbc -Dscalardb.contact_points=jdbc:mysql://localhost/ -Dscalardb.username=root -Dscalardb.password=mysql org.junit.platform.console.ConsoleLauncher execute -c=com.scalar.dl.ledger.service.LedgerServiceEndToEndTest | |
integration-test-with-mysql-jdbc-transaction: | |
name: Integration test with JDBC transaction manager on MySQL | |
runs-on: ubuntu-latest | |
services: | |
mysql: | |
image: mysql:8.1 | |
env: | |
MYSQL_ROOT_PASSWORD: mysql | |
ports: | |
- 3306:3306 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 1.8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '8' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Build | |
run: | | |
./gradlew assemble | |
./gradlew testJar | |
# due to a gradle bug we must run the integration test separately | |
- name: Run integration tests | |
run: | | |
cd ledger | |
java -cp "build/test-libs/*:build/libs/*:build/classes/java/integrationTest" -Dscalardb.storage=jdbc -Dscalardb.contact_points=jdbc:mysql://localhost/ -Dscalardb.username=root -Dscalardb.password=mysql -Dscalardb.transaction_manager=jdbc org.junit.platform.console.ConsoleLauncher execute -c=com.scalar.dl.ledger.service.LedgerServiceEndToEndTest | |
integration-test-for-generic-contracts: | |
name: Integration test for generic contracts | |
runs-on: ubuntu-latest | |
services: | |
mysql: | |
image: mysql:8.1 | |
env: | |
MYSQL_ROOT_PASSWORD: mysql | |
ports: | |
- 3306:3306 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 1.8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '8' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run integration tests | |
run: ./gradlew :generic-contracts:integrationTest | |
- name: Upload Gradle test reports | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: integration_test_reports_for_generic_contracts | |
path: generic-contracts/build/reports/tests/integrationTest | |
permission-test: | |
name: Permission test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 1.8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '8' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Prepare | |
run: sudo mkdir -m 777 /var/log/scalar | |
- name: Build | |
run: | | |
./gradlew assemble | |
./gradlew testJar | |
# due to a gradle bug we must run the permission test separately | |
- name: Run permission tests | |
run: | | |
cd ledger | |
java -cp "build/test-libs/*:build/libs/*:build/classes/java/permissionTest" org.junit.platform.console.ConsoleLauncher execute -c=com.scalar.dl.ledger.service.LedgerServicePermissionTest |