Create releases #450
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: Create releases | |
on: | |
schedule: | |
- cron: '0 5 * * *' # every day at 5am UTC | |
push: | |
branches: | |
- main | |
jobs: | |
release: | |
name: release | |
if: github.ref == 'refs/heads/main' && github.repository == 'openai/openai-java' | |
runs-on: ubuntu-latest | |
environment: publish | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: stainless-api/trigger-release-please@v1 | |
id: release | |
with: | |
repo: ${{ github.event.repository.full_name }} | |
stainless-api-key: ${{ secrets.STAINLESS_API_KEY }} | |
- name: Set up Java | |
if: ${{ steps.release.outputs.releases_created }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: | | |
8 | |
21 | |
cache: gradle | |
- name: Set up Gradle | |
if: ${{ steps.release.outputs.releases_created }} | |
uses: gradle/gradle-build-action@v2 | |
- name: Compile the openai-java-core project | |
run: | | |
./gradlew :openai-java-core:compileJava :openai-java-core:compileTestJava -x test | |
- name: Run the Prism server | |
run: | | |
./scripts/mock --daemon | |
- name: Setup GraalVM | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: 21 | |
distribution: 'graalvm-community' | |
cache: gradle | |
- name: Run tests on the openai-java-core project with the GraalVM native-image agent | |
run: | | |
./gradlew :openai-java-core:test -x compileJava -x compileTestJava -x compileKotlin -x compileTestKotlin -PgraalvmAgent | |
- name: Check generated GraalVM file | |
run: | | |
echo "Checking for GraalVM agent metadata files..." | |
DIRECTORY=openai-java-core/src/main/resources/META-INF/native-image | |
if [ -d "$DIRECTORY" ] && [ "$(ls -A $DIRECTORY)" ]; then | |
echo "Files found in $DIRECTORY:" | |
ls -l $DIRECTORY | |
else | |
echo "No files found in $DIRECTORY" | |
exit 1 | |
fi | |
- name: Publish to Sonatype | |
if: ${{ steps.release.outputs.releases_created }} | |
run: |- | |
export -- GPG_SIGNING_KEY_ID | |
printenv -- GPG_SIGNING_KEY | gpg --batch --passphrase-fd 3 --import 3<<< "$GPG_SIGNING_PASSWORD" | |
GPG_SIGNING_KEY_ID="$(gpg --with-colons --list-keys | awk -F : -- '/^pub:/ { getline; print "0x" substr($10, length($10) - 7) }')" | |
./gradlew publishAndReleaseToMavenCentral --stacktrace -PmavenCentralUsername="$SONATYPE_USERNAME" -PmavenCentralPassword="$SONATYPE_PASSWORD" --no-configuration-cache | |
env: | |
SONATYPE_USERNAME: ${{ secrets.OPENAI_SONATYPE_USERNAME || secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.OPENAI_SONATYPE_PASSWORD || secrets.SONATYPE_PASSWORD }} | |
GPG_SIGNING_KEY: ${{ secrets.OPENAI_SONATYPE_GPG_SIGNING_KEY || secrets.GPG_SIGNING_KEY }} | |
GPG_SIGNING_PASSWORD: ${{ secrets.OPENAI_SONATYPE_GPG_SIGNING_PASSWORD || secrets.GPG_SIGNING_PASSWORD }} |