Publish jitexecutor-native #86
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: "Publish jitexecutor-native" | |
on: | |
pull_request: | |
branches: ["**"] | |
paths: | |
- ".github/workflows/publish-jitexecutor-native.yml" | |
- "jitexecutor-native/**" | |
workflow_dispatch: | |
inputs: | |
kogito_runtime_version: | |
description: "Kogito Runtime version" | |
required: true | |
jobs: | |
build_jitexecutor_native: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
steps: | |
- name: Get current date | |
id: date | |
run: echo "CURRENT_DATE=$(date +'%Y%m%d')" >> "$GITHUB_OUTPUT" | |
shell: bash | |
- name: Set version | |
id: version | |
run: | | |
if [ ${{ github.event_name }} == "pull_request" ]; then | |
echo "REPOSITORY=${{github.event.pull_request.head.repo.full_name}}" >> "$GITHUB_OUTPUT" | |
echo "REF=${{github.event.pull_request.head.ref}}" >> "$GITHUB_OUTPUT" | |
echo "PROJECT_VERSION=999-SNAPSHOT" >> "$GITHUB_OUTPUT" | |
else | |
VERSION="${{ github.event.inputs.kogito_runtime_version }}" | |
echo "REPOSITORY=apache/incubator-kie-kogito-apps" >> "$GITHUB_OUTPUT" | |
echo "REF=${VERSION//-SNAPSHOT/}" >> "$GITHUB_OUTPUT" | |
echo "PROJECT_VERSION=$VERSION" >> "$GITHUB_OUTPUT" | |
fi | |
shell: bash | |
- name: "Set long paths for Windows" | |
if: runner.os == 'Windows' | |
run: git config --system core.longpaths true | |
- name: "Checkout kie-kogito-apps" | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ steps.version.outputs.REPOSITORY }} | |
ref: ${{ steps.version.outputs.REF }} | |
- name: "Set up Maven" | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.6 | |
- name: "Set up JDK 17" | |
uses: actions/setup-java@v4 | |
with: | |
java-version: "17" | |
distribution: "zulu" | |
server-id: apache.snapshots.https | |
server-username: NEXUS_USER | |
server-password: NEXUS_PW | |
- name: "Setup Linux" | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt update && \ | |
sudo apt install -y \ | |
build-essential \ | |
libgtk-3-dev \ | |
libappindicator3-dev \ | |
gir1.2-appindicator3-0.1 | |
- name: "Setup macOS" | |
if: runner.os == 'macOS' | |
run: | | |
brew install make && \ | |
wget https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-17.0.9/graalvm-community-jdk-17.0.9_macos-x64_bin.tar.gz && \ | |
tar -xzf graalvm-community-jdk-17.0.9_macos-x64_bin.tar.gz && \ | |
sudo mv graalvm-community-openjdk-17.0.9+9.1 /Library/Java/JavaVirtualMachines/graalvm-community-openjdk-17.0.9+9.1 | |
export GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-community-openjdk-17.0.9+9.1/Contents/Home | |
export PATH=${GRAALVM_HOME}/bin:$PATH | |
echo "${GRAALVM_HOME}/bin" >> $GITHUB_PATH && \ | |
echo "GRAALVM_HOME=${GRAALVM_HOME}" >> $GITHUB_ENV && \ | |
gu install native-image | |
- name: "Setup MSCV" | |
if: runner.os == 'Windows' | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: "Setup MSBUILD" | |
if: runner.os == 'Windows' | |
uses: microsoft/setup-msbuild@v2 | |
- name: "Setup GraalVM" | |
if: runner.os == 'Windows' | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: "17" | |
components: "native-image" | |
- name: "Configure Pagefile" | |
if: runner.os == 'Windows' | |
uses: al-cheb/configure-pagefile-action@a3b6ebd6b634da88790d9c58d4b37a7f4a7b8708 #v1.4 | |
with: | |
minimum-size: 16GB | |
maximum-size: 16GB | |
disk-root: "C:" | |
- name: "Update versions (Linux and macOS)" | |
if: (runner.os == 'Linux' || runner.os == 'macOS') && github.event_name != 'pull_request' | |
shell: bash | |
run: | | |
mvn -B -fae -ntp -N -e versions:update-parent -DparentVersion="[${{ steps.version.outputs.PROJECT_VERSION }}]" -DallowSnapshots=true -DgenerateBackupPoms=false | |
mvn -B -fae -ntp -N -e versions:update-child-modules -DallowSnapshots=true -DgenerateBackupPoms=false | |
- name: "Update versions Windows" | |
if: runner.os == 'Windows' && github.event_name != 'pull_request' | |
shell: pwsh | |
run: | | |
mvn -B -fae -ntp -N -e versions:update-parent -DparentVersion="[${{ steps.version.outputs.PROJECT_VERSION }}]" -DallowSnapshots=true -DgenerateBackupPoms=false | |
mvn -B -fae -ntp -N -e versions:update-child-modules -DallowSnapshots=true -DgenerateBackupPoms=false | |
- name: "Build macOS" | |
if: runner.os == 'macOS' && github.event_name == 'pull_request' | |
shell: bash | |
run: | | |
mvn clean install -B -ntp -DskipTests -pl jitexecutor-native/jitexecutor-native-darwin -am -Pjitexecutor-native | |
- name: "Build and publish macOS" | |
if: runner.os == 'macOS' && github.event_name != 'pull_request' | |
shell: bash | |
env: | |
NEXUS_USER: ${{ secrets.NEXUS_USER }} | |
NEXUS_PW: ${{ secrets.NEXUS_PW }} | |
run: | | |
mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-darwin -am -Pjitexecutor-native | |
- name: "Build Linux" | |
if: runner.os == 'Linux' && github.event_name == 'pull_request' | |
shell: bash | |
run: | | |
mvn clean install -B -ntp -DskipTests -pl jitexecutor-native/jitexecutor-native-linux -am -Pjitexecutor-native | |
- name: "Build and Publish Linux" | |
if: runner.os == 'Linux' && github.event_name != 'pull_request' | |
shell: bash | |
env: | |
NEXUS_USER: ${{ secrets.NEXUS_USER }} | |
NEXUS_PW: ${{ secrets.NEXUS_PW }} | |
run: | | |
mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-linux -am -Pjitexecutor-native | |
- name: "Build Windows" | |
if: runner.os == 'Windows' && github.event_name == 'pull_request' | |
shell: pwsh | |
run: | | |
mvn clean install -B -ntp -DskipTests -pl jitexecutor-native/jitexecutor-native-win32 -am -Pjitexecutor-native | |
- name: "Build and Publish Windows" | |
if: runner.os == 'Windows' && github.event_name != 'pull_request' | |
shell: pwsh | |
env: | |
NEXUS_USER: ${{ secrets.NEXUS_USER }} | |
NEXUS_PW: ${{ secrets.NEXUS_PW }} | |
run: | | |
mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-win32 -am -Pjitexecutor-native | |
- name: "Upload JIT Executor binary" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: jitexecutor_${{ runner.os }} | |
path: ./jitexecutor-native/jitexecutor-native-*/target/jitexecutor-native-*-${{ steps.version.outputs.PROJECT_VERSION }}-run* |