Get rid of reflection in FakerService #524
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 | |
env: | |
GRAALCE_JDK_VERSION: '17.0.9' | |
# concatenation of env variables isn't currently supported | |
# so need to specify version explicitly | |
GRAALVM_HOME: /opt/hostedtoolcache/Java_graalce_jdk/17.0.9/x64 | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
jobs: | |
libs: | |
name: test and build libs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# we need both because graal plugin in cli-bot requires jdk version >= 11 | |
# more details in CONTRIBUTING | |
- name: Set up JDK 8 and 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: | | |
8 | |
17 | |
distribution: 'temurin' | |
- name: Gradle Wrapper Validation | |
uses: gradle/wrapper-validation-action@v2 | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
- name: Build with Gradle | |
run: ./gradlew clean test integrationTest build shadowJar | |
cli: | |
name: build and test native image | |
runs-on: ubuntu-latest | |
needs: libs | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# loosely based on https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#installing-java-from-local-file | |
- name: Fetch latest graalce JDK | |
id: fetch_latest_jdk | |
run: | | |
jdk_version=${{ env.GRAALCE_JDK_VERSION }} | |
cd $RUNNER_TEMP | |
latest_jdk_download_url="https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${jdk_version}/graalvm-community-jdk-${jdk_version}_linux-x64_bin.tar.gz" | |
echo "$latest_jdk_download_url" | |
curl -Ls "$latest_jdk_download_url" -o java_package.tar.gz | |
echo "java_version=$jdk_version" >> "$GITHUB_OUTPUT" | |
- name: Set up GraalCE JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'jdkfile' | |
jdkFile: ${{ runner.temp }}/java_package.tar.gz | |
java-version: ${{ steps.fetch_latest_jdk.outputs.java_version }} | |
architecture: x64 | |
mvn-toolchain-vendor: GraalVM | |
mvn-toolchain-id: graalce-${{ env.GRAALCE_JDK_VERSION }} | |
- name: Gradle Wrapper Validation | |
uses: gradle/wrapper-validation-action@v2 | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
- name: Compile native image | |
run: ./gradlew nativeCompile -x test -x integrationTest | |
- name: Test native image | |
run: | | |
_app_path=$(find ./cli-bot/build/native/nativeCompile/ -type f -name faker-bot\* -not -name \*.txt) | |
mv "$_app_path" $RUNNER_TEMP/faker-bot | |
# run several iterations to test various pathways when generating data | |
for i in {0..10}; do | |
${{ runner.temp }}/faker-bot list --verbose >/dev/null || false | |
${{ runner.temp }}/faker-bot lookup a --verbose >/dev/null || false | |
done | |