Skip to content

Commit

Permalink
Split main Java CI build into gradle.yml workflow from Snapshot GPC d…
Browse files Browse the repository at this point in the history
…eploy in snapshot.yml

adjust Java versions, the snapshot workflow is now run manually so the desired branch or tag can be deployed
  • Loading branch information
jamesfredley committed Dec 10, 2024
1 parent 3231e32 commit 692cff0
Show file tree
Hide file tree
Showing 2 changed files with 226 additions and 205 deletions.
220 changes: 220 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
name: "Java CI"
on:
push:
branches:
- '[6-9]+.[0-9]+.x'
pull_request:
branches:
- '[6-9]+.[0-9]+.x'
workflow_dispatch:
jobs:
build:
name: "Build Project"
runs-on: ubuntu-latest
strategy:
matrix:
java: ['11', '17']
steps:
- name: "📥 Checkout repository"
uses: actions/checkout@v4
- name: "☕️ Setup JDK"
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: ${{ matrix.java }}
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
- name: "🔨 Run Build"
id: build
env:
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
run: ./gradlew build
- name: "✅ Verify CLI"
if: success()
run: |
cp grails-cli/build/distributions/grails-cli-*.zip cli.zip
unzip cli -d tmp
mv tmp/grails-cli-* tmp/cli
./tmp/cli/bin/grails --version
- name: "📤 Publish to Sonatype OSSRH"
id: publish
if: success() && github.event_name == 'push' && matrix.java == '11'
env:
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
run: ./gradlew publishToSonatype
linux:
name: "Build Linux Native CLI"
runs-on: ubuntu-latest
needs: build
steps:
- name: "📥 Checkout the repository"
uses: actions/checkout@v4
- name: "☕️ Setup GraalVM CE"
uses: graalvm/setup-graalvm@v1
with:
java-version: '17'
distribution: 'graalvm-community'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
- name: "📸 Build the Native Image"
env:
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
run: ./gradlew grails-cli:nativeCompile --no-daemon
- name: "✅ Verify Build"
run: ./grails-cli/build/native/nativeCompile/grails --version
- name: "✅ Verify Create App"
run: ./grails-cli/build/native/nativeCompile/grails create-app test
- name: "📦 Package Build"
env:
VERSION: ${{ github.event.release.tag_name }}
run: |
mkdir -p grails-linux-amd64-snapshot/bin
mv ./grails-cli/build/native/nativeCompile/grails grails-linux-amd64-snapshot/bin
cp ./LICENSE grails-linux-amd64-snapshot/
zip -r grails-linux-amd64-snapshot.zip ./grails-linux-amd64-snapshot
- name: "📤 Upload Artifact to Workflow Summary Page"
if: success() && github.event_name == 'push' && github.ref == 'refs/heads/6.0.x'
uses: actions/upload-artifact@v4
with:
name: grails-linux-amd64-snapshot
path: grails-linux-amd64-snapshot.zip
macos:
name: "Build OS X Intel Native CLI"
runs-on: macos-13
needs: build
steps:
- name: "📥 Checkout the repository"
uses: actions/checkout@v4
- name: "☕️ Setup GraalVM CE"
uses: graalvm/setup-graalvm@v1
with:
java-version: '17'
distribution: 'graalvm-community'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
- name: "📸 Build the Native Image"
env:
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
run: ./gradlew grails-cli:nativeCompile --no-daemon
- name: "✅ Verify Build"
run: ./grails-cli/build/native/nativeCompile/grails --version
- name: "✅ Verify Create App"
run: ./grails-cli/build/native/nativeCompile/grails create-app test
- name: "📦 Package Build"
env:
VERSION: ${{ github.event.release.tag_name }}
run: |
mkdir -p grails-darwin-amd64-snapshot/bin
mv ./grails-cli/build/native/nativeCompile/grails grails-darwin-amd64-snapshot/bin
cp ./LICENSE grails-darwin-amd64-snapshot/
zip -r grails-darwin-amd64-snapshot.zip ./grails-darwin-amd64-snapshot -x '*.DS_Store*' -x '__MAC_OSX'
- name: "📤 Upload Artifact to Workflow Summary Page"
if: success() && github.event_name == 'push' && github.ref == 'refs/heads/6.0.x'
uses: actions/upload-artifact@v4
with:
name: grails-darwin-amd64-snapshot
path: grails-darwin-amd64-snapshot.zip
macos-arm:
name: "Build OS X Arm Native CLI"
runs-on: macos-latest
needs: [build]
steps:
- name: "📥 Checkout repository"
uses: actions/checkout@v4
- name: "☕️ Setup GraalVM CE"
uses: graalvm/setup-graalvm@v1
with:
java-version: '17'
distribution: 'graalvm-community'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
- name: "📸 Build the Native Image"
env:
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
run: ./gradlew grails-cli:nativeCompile --no-daemon
- name: "✅ Verify Build"
run: ./grails-cli/build/native/nativeCompile/grails --version
- name: "✅ Verify Create App"
run: ./grails-cli/build/native/nativeCompile/grails create-app test
- name: "📦 Package Build"
env:
VERSION: ${{ github.event.release.tag_name }}
run: |
mkdir -p grails-darwin-aarch64-snapshot/bin
mv ./grails-cli/build/native/nativeCompile/grails grails-darwin-aarch64-snapshot/bin
cp ./LICENSE grails-darwin-aarch64-snapshot/
zip -r grails-darwin-aarch64-snapshot.zip grails-darwin-aarch64-snapshot/ -x '*.DS_Store*' -x '__MAC_OSX'
- name: "📤 Upload Artifact to Workflow Summary Page"
if: success() && github.event_name == 'push' && github.ref == 'refs/heads/6.0.x'
uses: actions/upload-artifact@v4
with:
name: grails-darwin-aarch64-snapshot
path: grails-darwin-aarch64-snapshot.zip
windows:
name: "Build Windows Native CLI"
runs-on: windows-latest
needs: build
steps:
- name: "📥 Checkout the repository"
uses: actions/checkout@v4
- name: "☕️ Setup GraalVM CE"
uses: graalvm/setup-graalvm@v1
with:
java-version: '17'
distribution: 'graalvm-community'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
- name: "📸 Build the Native Image"
env:
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
run: ./gradlew grails-cli:nativeCompile --no-daemon
- name: "✅ Verify Build (Powershell)"
shell: powershell
run: ./grails-cli/build/native/nativeCompile/grails.exe --version
- name: "✅ Verify Create App (Powershell)"
shell: powershell
run: ./grails-cli/build/native/nativeCompile/grails.exe create-app test
- name: "✅ Verify Build (CMD)"
shell: cmd
run: grails-cli\\build\\native\\nativeCompile\\grails --version
- name: "✅ Verify Create App (CMD)"
shell: cmd
run: grails-cli\\build\\native\\nativeCompile\\grails create-app test2
- name: "📦 ZIP Archive"
run: |
New-Item "./grails-win-amd64-snapshot/bin" -ItemType Directory -ea 0
Move-Item -Path ./grails-cli/build/native/nativeCompile/grails.exe -Destination "./grails-win-amd64-snapshot/bin"
Copy-Item "./LICENSE" -Destination "./grails-win-amd64-snapshot"
Compress-Archive -Path "./grails-win-amd64-snapshot" -Update -DestinationPath ./grails-win-amd64-snapshot.zip
- name: "📤 Upload Artifact to Workflow Summary Page"
if: success() && github.event_name == 'push' && github.ref == 'refs/heads/6.0.x'
uses: actions/upload-artifact@v4
with:
name: grails-win-amd64-snapshot
path: ./grails-win-amd64-snapshot.zip
Loading

0 comments on commit 692cff0

Please sign in to comment.