j3.27.0.0 working

This commit is contained in:
Mann Patel
2025-10-11 02:02:27 -06:00
parent 6c591bbf37
commit d80c25c5d7
2973 changed files with 383519 additions and 51603 deletions

View File

@@ -0,0 +1,36 @@
on:
push:
# Sequence of patterns matched against refs/tags
tags:
# - 'v[0-9]+.[0-9]+.[0-9]+' # Push events to matching pattern -- updated to use regex for a semantic versioning version number
- 'javaparser-parent-[0-9].*' # Push events to matching pattern -- loosened pattern to be v followed by at least one number, then anything else after (this allows for e.g. "-DRAFT" and "-SNAPSHOT" as a suffix, and shorter version numbers such as "v2")
name: Create Release from semantic versioning tag push
jobs:
build:
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4.2.2
- name: Create Release
id: create_release
uses: actions/create-release@v1.1.4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
## Body content doesn't yet seem to appear in the Github UI
# body: |
# Bug Fixes:
# - TODO: Describe any bug fixes
#
# Enhancements:
# - TODO: Describe any new features or enhancements
## Option -- trigger as a draft release, followed by the addition of any key release notes and manual approval?
## Alternative -- replace the above body with a link to the changelog? We can always edit release after the fact to add in e.g. notes about breaking changes.
draft: true
prerelease: false

View File

@@ -0,0 +1,63 @@
name: Check codegen and formatting
#on: [push, pull_request]
#on: [pull_request]
on:
# Trigger the workflow on push to master (ignoring .md only changes)
push:
branches:
- master
paths-ignore:
- '**.md'
# Trigger the workflow on any pull_request (ignoring .md only changes)
pull_request:
paths-ignore:
- '**.md'
# Enable manual triggering (important for contributors to enable a check on their fork)
workflow_dispatch:
# If a build is running in the current branch, and the branch is updated, we cancel the previous build and start
# a new one with the updated changes.
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
# Run checkstyle validations for pipeline
checkstyle_check:
name: Validate checkstyle
runs-on: ubuntu-latest
steps:
- name: Checkout latest code
uses: actions/checkout@v4.2.2
with:
fetch-depth: "0"
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'zulu'
- name: Validate Project Checkstyle
run: ./mvnw -B checkstyle:check
spotless_check:
name: Spotless check
runs-on: ubuntu-latest
steps:
- name: Checkout latest code
uses: actions/checkout@v4.2.2
with:
fetch-depth: "0"
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'zulu'
- name: Generate code and format
run: |
./run_core_metamodel_generator.sh
# ./run_core_generators.sh automatically runs ./mvnw spotless:apply
./run_core_generators.sh
git diff --exit-code

View File

@@ -0,0 +1,116 @@
name: Build and test (using maven)
#on: [push, pull_request]
#on: [pull_request]
on:
# Trigger the workflow on push to master (ignoring .md only changes)
push:
branches:
- master
paths-ignore:
- '**.md'
# Trigger the workflow on any pull_request (ignoring .md only changes)
pull_request:
paths-ignore:
- '**.md'
# Enable manual triggering (important for contributors to enable a check on their fork)
workflow_dispatch:
# If a build is running in the current branch, and the branch is updated, we cancel the previous build and start
# a new one with the updated changes.
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
maven_test:
strategy:
## Optionally cancel all other combinations if one fails
fail-fast: false
matrix:
## Different OSs have different default line-endings -- test on all combinations.
os: [ ubuntu-latest, macos-latest, windows-latest ]
## Different JDK versions have different implementations etc. -- test on all combinations (ideally 8 to latest).
### exclude pre-8 (min development version jdk8)
jdk: [ 8,9,10,11,12,13,14,15,16,17,18 ]
# The below configurations are no longer available on github runners and is not supported by the
# setup-java action, nor are they available from the supported distributions.
# See https://github.com/actions/setup-java for details
exclude:
- os: macos-latest
jdk: 9
- os: macos-latest
jdk: 10
- os: macos-latest
jdk: 12
- os: macos-latest
jdk: 14
env:
OS: ${{ matrix.os }}
JDK: ${{ matrix.jdk }}
runs-on: ${{ matrix.os }}
steps:
## Checkout the current version of the code from the repo.
- name: Checkout latest code
uses: actions/checkout@v4.2.2
with:
fetch-depth: "0"
## Setup the specified version of Java (includes maven/gradle).
- name: Set up JDK ${{ matrix.jdk }}
uses: actions/setup-java@v4
with:
distribution: 'zulu' # v2 requires explicitly stating the distribution - `zulu` and `adopt` supported at time of writing
java-version: ${{ matrix.jdk }} # Use matrix to select which JDK level to use
java-package: jdk # optional (jdk or jre) - defaults to jdk
## Given that the build matrix only specifies the major version (configurable), output the precise version used.
- name: Echo exact java version being used
run: java -version
## Use a cache to reduce the build/test times (avoids having to download dependencies on EVERY run).
### https://help.github.com/en/actions/language-and-framework-guides/building-and-testing-java-with-maven#caching-dependencies
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
## Actually perform the tests. Unsuccessful tests will indicate a failed build.
### -e, --errors : show traces where any errors occur
### -B,--batch-mode : Run in non-interactive (batch) mode (disables output color)
### clean : run the maven lifecycle stage `clean`
### test : run the maven lifecycle stage `test`
### -P,--activate-profiles : Comma-delimited list of profiles to activate
### AlsoSlowTests : by default, only quick tests are run - the profile `AlsoSlowTests` runs the full test suite
- name: Test with Maven (incl. slow tests)
shell: bash
run: ./mvnw -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B --errors clean test --activate-profiles AlsoSlowTests
- name: CodeCov - JavaParser Core
uses: codecov/codecov-action@v5.4.3
timeout-minutes: 10
with:
files: javaparser-core-testing/target/site/jacoco/jacoco.xml,javaparser-core-testing-bdd/target/site/jacoco/jacoco.xml
fail_ci_if_error: false # optional (default = false) -- fail the build if upload to codecov.io fails
verbose: false # optional (default = false):
flags: javaparser-core,AlsoSlowTests,${{ matrix.os }},jdk-${{ matrix.jdk }}
env_vars: OS,JDK
- name: CodeCov - JavaParser Symbol Solver
uses: codecov/codecov-action@v5.4.3
timeout-minutes: 10
with:
file: javaparser-symbol-solver-testing/target/site/jacoco/jacoco.xml
fail_ci_if_error: false # optional (default = false) -- fail the build if upload to codecov.io fails
verbose: false # optional (default = false):
flags: javaparser-symbol-solver,AlsoSlowTests,${{ matrix.os }},jdk-${{ matrix.jdk }}
env_vars: OS,JDK

View File

@@ -0,0 +1,81 @@
name: Build Snapshot
on:
push:
branches: [ master ]
## (testing only) Trigger the workflow on any pull request
#pull_request:
jobs:
generate_changelog:
name: Generate Changelog
runs-on: ubuntu-latest
steps:
# Check out current repository
- name: Fetch Sources
uses: actions/checkout@v4.2.2
# Setup Java 11 environment for the next steps
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 11
# Set environment variables
- name: Generate Changelog
id: vars
shell: bash
working-directory: ./scripts
run: |
## By convention, the "next" milestone is named "next release"
./run_generate_changelog_by_milestone_title.sh "next release"
SHA_LONG=$(git rev-parse HEAD)
SHA_SHORT=$(git rev-parse --short HEAD)
CHANGELOG="$(<temp_changelog.md)"
RELEASE_TITLE="SNAPSHOT - $SHA_SHORT"
RELEASE_TAG_NAME="v_snapshot_$SHA_SHORT"
echo "sha_long=$SHA_LONG" >> $GITHUB_OUTPUT
echo "sha_short=$SHA_SHORT" >> $GITHUB_OUTPUT
echo "changelog<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "release_title=$RELEASE_TITLE" >> $GITHUB_OUTPUT
echo "release_tag_name=$RELEASE_TAG_NAME" >> $GITHUB_OUTPUT
- name: Output variables
run: |
echo sha_short = ${{ steps.vars.outputs.sha_short }}
echo sha_long = ${{ steps.vars.outputs.sha_long }}
echo changelog = "${{ steps.vars.outputs.changelog }}"
echo changelog = "${{ steps.vars.outputs.release_title }}"
echo changelog = "${{ steps.vars.outputs.release_tag_name }}"
# Remove old release drafts by using the curl request for the available releases with draft flag
- name: Remove Old Release Drafts
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api repos/{owner}/{repo}/releases \
--jq '.[] | select(.draft == true) | .id' \
| xargs -I '{}' gh api -X DELETE repos/{owner}/{repo}/releases/{}
# Create new release draft - which is not publicly visible and requires manual acceptance
- name: Create Release Draft
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create ${{ steps.vars.outputs.release_tag_name }} \
--target ${{ steps.vars.outputs.sha_long }} \
--draft \
--prerelease \
--title "${{ steps.vars.outputs.release_title }}" \
--notes-file ./scripts/temp_changelog.md