Skip to content

Commit

Permalink
Fix gh workflows
Browse files Browse the repository at this point in the history
Use temurin distribution in actions/setup-java as recommended by the
action docs.

Split build.yml jobs into two since native image requires a custom java
setup step.

Update actions versions
  • Loading branch information
serpro69 committed Mar 10, 2024
1 parent 7e1da53 commit f28ec68
Show file tree
Hide file tree
Showing 5 changed files with 100 additions and 20 deletions.
71 changes: 61 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,87 @@
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:
build:
libs:
name: test and build libs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 8
uses: actions/setup-java@v2

- name: Set up JDK 8 and 17 # we need both because graal plugin in cli-bot requires jdk version >= 11
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'adopt'
java-version: |
8
17
distribution: 'temurin'

- name: Gradle Wrapper Validation
uses: gradle/[email protected]

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew clean test integrationTest build nativeCompile
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: 'graalce'
jdkFile: ${{ runner.temp }}/java_package.tar.gz
java-version: ${{ steps.fetch_latest_jdk.outputs.java_version }}
architecture: x64
mvn-toolchain-vendor: 'GraalVM'

- name: Gradle Wrapper Validation
uses: gradle/[email protected]

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Compile native image
run: ./gradlew nativeCompile
- name: Test native image
run: |
# run several iterations to test various pathways when generating data
for i in {0..10}; do
./cli-bot/build/native/nativeCompile/faker-bot list --verbose >/dev/null || false
./cli-bot/build/native/nativeCompile/faker-bot lookup a --verbose >/dev/null || false
./cli-bot/build/native/nativeCompile/faker-bot list --verbose >/dev/null || false
./cli-bot/build/native/nativeCompile/faker-bot lookup a --verbose >/dev/null || false
done
6 changes: 3 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 8
uses: actions/setup-java@v2
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'adopt'
distribution: 'temurin'
- name: Deploy Docs
run: make deploy-docs
env:
Expand Down
35 changes: 31 additions & 4 deletions .github/workflows/publish_snapshot.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
name: Publish Snapshot

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:
Expand All @@ -19,6 +25,7 @@ jobs:
core:
- '.github/workflows/**'
- 'core/**'
- 'faker/**'
- '*gradle*'
- 'set-version.sh'
Expand All @@ -28,14 +35,34 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 8
uses: actions/setup-java@v2
uses: actions/setup-java@v4
with:
java-version: |
8
17
distribution: 'temurin'
# 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:
java-version: '8'
distribution: 'adopt'
distribution: 'graalce'
jdkFile: ${{ runner.temp }}/java_package.tar.gz
java-version: ${{ steps.fetch_latest_jdk.outputs.java_version }}
architecture: x64
mvn-toolchain-vendor: 'GraalVM'
- name: Gradle Wrapper Validation
uses: gradle/[email protected]
- name: Grant execute permission to scripts
Expand Down
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ __check_defined = \
$(if $(value $1),, \
$(error Undefined $1$(if $2, ($2))))

__java_version_ok := $(shell java -version 2>&1|grep 1.8.0 >/dev/null; printf $$?)
# use java 17 to build because 'org.graalvm.buildtools.native' in cli-bot requires java version >= 11
# both the libs and the cli app use java toolchains and will be built with java compatibility of version 8
__java_version_ok := $(shell java -version 2>&1|grep '17.0' >/dev/null; printf $$?)

.PHONY: check_java
check_java: ## check current java version (mostly used in other targets)
ifneq ($(__java_version_ok),$(shell echo 0))
$(error "Expected java 1.8")
$(error "Expected java 17")
endif

.PHONY: deploy-docs
Expand Down
2 changes: 1 addition & 1 deletion cli-bot/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import com.adarshr.gradle.testlogger.theme.ThemeType
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

plugins {
application
Expand Down

0 comments on commit f28ec68

Please sign in to comment.