Skip to content

Added GraalVM native support to Apache FreeMarker #140

Added GraalVM native support to Apache FreeMarker

Added GraalVM native support to Apache FreeMarker #140

Workflow file for this run

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: CI
permissions:
contents: read
on:
workflow_dispatch: { }
push:
branches: [ '2.3-gae' ]
pull_request:
branches: [ '2.3-gae' ]
jobs:
build:
strategy:
matrix:
os: [windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
concurrency: main_tests_${{ github.ref }}
steps:
- name: Welcome Message
run: 'echo "Started with parameters: ${{ matrix.os }} because ${{ github.event_name }} on ${{ github.ref }}"'
- uses: actions/checkout@v4
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: 8
distribution: temurin
- name: Set up JDK 16
uses: actions/setup-java@v4
with:
java-version: 16
distribution: zulu
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: oracle
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Run Build
id: build_step
run: './gradlew "-Pfreemarker.signMethod=none" "-Pfreemarker.allowUnsignedReleaseBuild=true" --continue clean build'
- name: Set up GraalVM 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: graalvm
# test pipeline to check native support
#
# - GraalVM is added to the runner
# - A simple native project is build and run
#
# At the something like that should be found in the log :
#
# INFO: name : FreeMarker Native Demo, version : 2.3.35-nightly
# Jan 15, 2025 4:28:19 PM freemarker.log._JULLoggerFactory$JULLogger info
# INFO: result :
# <html>
# <head>
# <title>Hello : FreeMarker GraalVM Native Demo</title>
# </head>
# <body>
# <h1>Hello : FreeMarker GraalVM Native Demo</h1>
# <p>Test template for Apache FreeMarker GraalVM native support (2.3.35-nightly)</p>
# </body>
# </html>
- name: Test GraalVM native support (build and run)
id: native_test
run: './gradlew :freemarker-test-graalvm-native:nativeCompile;./freemarker-test-graalvm-native/build/native/nativeCompile/freemarker-test-graalvm-native'
- name: Upload Failed Report
uses: actions/upload-artifact@v4
if: failure() && steps.build_step.outcome == 'failure'
with:
name: test-reports-${{ matrix.os }}
path: build/reports/**
retention-days: 30