Skip to content

Commit

Permalink
test(java): Add Java integration tests (#160)
Browse files Browse the repository at this point in the history
Adds integration tests for the Java SDK

For intermediate commit details, see #160

---------

Co-authored-by: Raghd Hamzeh <[email protected]>
  • Loading branch information
booniepepper and rhamzeh authored Aug 2, 2023
1 parent 73563af commit 849f2a2
Show file tree
Hide file tree
Showing 10 changed files with 455 additions and 94 deletions.
53 changes: 53 additions & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -168,3 +168,56 @@ jobs:
GITHUB_ORG_ID: ${{ secrets.PYTHON_SDK_GITHUB_ORG_ID }}
GITHUB_REPO_ID: ${{ secrets.PYTHON_SDK_GITHUB_REPO_ID }}
SSH_KEY: ${{ secrets.PYTHON_SDK_SSH_KEY }}

build-and-test-java-sdk:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: 11
distribution: 'temurin'
cache: 'gradle'

- name: Setup git
run: ./scripts/setup_git.sh
env:
GIT_USER_NAME: ${{ secrets.GIT_USER_NAME }}
GIT_USER_EMAIL: ${{ secrets.GIT_USER_EMAIL }}

# - name: Clone the existing SDK
# run: ./scripts/clone_sdk.sh
# env:
# GITHUB_ORG_ID: ${{ secrets.JAVA_SDK_GITHUB_ORG_ID }}
# GITHUB_REPO_ID: ${{ secrets.JAVA_SDK_GITHUB_REPO_ID }}
# SSH_KEY: ${{ secrets.JAVA_SDK_SSH_KEY }}
# SDK_PATH: clients/fga-java-sdk
# KNOWN_HOSTS: ${{secrets.KNOWN_HOSTS}}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

# TODO: Don't run this twice. For some reason, the initial run of
# `make build-client-java` doesn't work, but subsequent runs do.
- name: Build Java SDK
continue-on-error: true
run: |-
mkdir -p clients/fga-java-sdk
make build-client-java
- name: Run All Tests
run: |-
make test-integration-client-java
# - name: Check for SDK changes
# run: ./scripts/commit_push_changes.sh
# env:
# SDK_PATH: clients/fga-java-sdk
# DRY_RUN: 1
# TAGGING_DISABLE: 1
# GITHUB_ORG_ID: ${{ secrets.JAVA_SDK_GITHUB_ORG_ID }}
# GITHUB_REPO_ID: ${{ secrets.JAVA_SDK_GITHUB_REPO_ID }}
# SSH_KEY: ${{ secrets.JAVA_SDK_SSH_KEY }}
15 changes: 12 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ pull-docker-images:
docker pull golangci/golangci-lint:${GOLINT_DOCKER_TAG}
docker pull mcr.microsoft.com/dotnet/sdk:${DOTNET_DOCKER_TAG}
docker pull busybox:${BUSYBOX_DOCKER_TAG}
docker pull gradle:${GRADLE_DOCKER_TAG}

## Publishing
publish-client-dotnet: build-client-dotnet
Expand All @@ -43,10 +44,10 @@ test: test-all-clients
build: build-all-clients

.PHONY: test-all-clients
test-all-clients: test-client-js test-client-go test-client-dotnet test-client-python
test-all-clients: test-client-js test-client-go test-client-dotnet test-client-python test-client-java

.PHONY: build-all-clients
build-all-clients: build-client-js build-client-go build-client-dotnet build-client-python
build-all-clients: build-client-js build-client-go build-client-dotnet build-client-python build-client-java

### JavaScript
.PHONY: tag-client-js
Expand Down Expand Up @@ -130,6 +131,7 @@ run-in-docker:
-v "${CLIENTS_OUTPUT_DIR}/fga-${sdk_language}-sdk":/module \
-v ${CONFIG_DIR}:/config \
-w /module \
--net="host" \
${image} \
${command}

Expand Down Expand Up @@ -207,7 +209,14 @@ setup-new-sdk:
.PHONY: build-client-java
build-client-java:
make build-client sdk_language=java tmpdir=${TMP_DIR}
make run-in-docker sdk_language=java image=gradle:${GRADLE_DOCKER_TAG} command="/bin/sh -c 'gradle fmt'"
make run-in-docker sdk_language=java image=gradle:${GRADLE_DOCKER_TAG} command="/bin/sh -c 'chmod +x ./gradlew && gradle fmt build'"

.PHONY: test-integration-client-java
test-integration-client-java: build-client-java
docker container rm --force openfga-for-java-client || true
docker run --detach --name openfga-for-java-client -p 8080:8080 openfga/openfga run
make run-in-docker sdk_language=java image=gradle:${GRADLE_DOCKER_TAG} command="/bin/sh -c './gradlew test-integration'"
docker container rm --force openfga-for-java-client

.PHONY: test-client-java
test-client-java: build-client-java
Expand Down
9 changes: 9 additions & 0 deletions config/clients/java/config.overrides.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"artifactId": "openfga-sdk",
"groupId": "dev.openfga",
"apiPackage": "dev.openfga.api",
"invokerPackage": "dev.openfga.api.invoker",
"modelPackage": "dev.openfga.api.model",
"packageVersion": "0.0.1",
"snapshotVersion": false,
Expand All @@ -29,6 +30,14 @@
"build.gradle.mustache" : {
"destinationFilename": "build.gradle",
"templateType": "SupportingFiles"
},
"OpenFgaApiIntegrationTest.java" : {
"destinationFilename": "src/test-integration/java/dev/openfga/api/OpenFgaApiIntegrationTest.java",
"templateType": "SupportingFiles"
},
"gradle-wrapper.properties.mustache" : {
"destinationFilename": "gradle/wrapper/gradle-wrapper.properties",
"templateType": "SupportingFiles"
}
}
}
Empty file.
27 changes: 27 additions & 0 deletions config/clients/java/template/.github/workflows/main.yml.mustache
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Java CI with Gradle

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
name: Build {{{appName}}}
runs-on: ubuntu-latest
strategy:
matrix:
java: [ '11', '17' ]
steps:
- uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v2
with:
{{=< >=}}
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: gradle
- name: Build with Gradle
run: |
./gradlew build
Loading

0 comments on commit 849f2a2

Please sign in to comment.