Skip to content

Commit

Permalink
Merge pull request #433 from JorelAli/release/9.0.0
Browse files Browse the repository at this point in the history
Release/9.0.0
  • Loading branch information
JorelAli committed Apr 22, 2023
2 parents b2b72f1 + 719b92a commit d3f17da
Show file tree
Hide file tree
Showing 2,516 changed files with 256,663 additions and 74,474 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ root = true
[*]
indent_style = tab
indent_size = 4

[docssrc/**]
indent_style = space
167 changes: 139 additions & 28 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
# against bad commits.

name: build
on: [push]
on:
push:
pull_request:
types: [opened, synchronize, reopened]

jobs:
build:
Expand All @@ -19,42 +22,150 @@ jobs:
os: [ubuntu-20.04]
runs-on: ${{ matrix.os }}
steps:
- name: checkout repository

### Set up ###

- name: Checkout the CommandAPI repository
uses: actions/checkout@v3
- name: setup jdk ${{ matrix.java }}

- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ matrix.java }}
cache: maven
- name: build CommandAPI using maven
run: mvn clean install --batch-mode
- name: CommandAPI plugin artifact

### Compilation ###

- name: Build the CommandAPI (Bukkit+Velocity) using maven
run: mvn clean install --batch-mode -P Platform.Bukkit,Platform.Velocity

- name: Check NMS_Common compiles against all compatible Minecraft versions
run: |
mvn clean package -pl :commandapi-bukkit-nms-common -P Platform.Bukkit,Spigot_1_17_R1
mvn clean package -pl :commandapi-bukkit-nms-common -P Platform.Bukkit,Spigot_1_18_R1
mvn clean package -pl :commandapi-bukkit-nms-common -P Platform.Bukkit,Spigot_1_18_2_R2
mvn clean package -pl :commandapi-bukkit-nms-common -P Platform.Bukkit,Spigot_1_19_R1
mvn clean package -pl :commandapi-bukkit-nms-common -P Platform.Bukkit,Spigot_1_19_3_R2;
# - name: validate version-specific dependencies (nms-common)
# run: |
# nms_common_path="commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/target/classes/dev/jorel/commandapi/nms/NMS_Common.class"
# if ! command -v javap &> /dev/null
# then
# echo "javap could not be found, skipping NMS Common validation check"
# exit
# else
# javapcommand=$(javap -v $nms_common_path | grep -E '#[0-9]+ = Class ' | cut -c 46- | sort | grep 'org/bukkit/craftbukkit')
# if [[ -n "$javapcommand" ]]; then
# echo "NMS Common has version-specific dependencies!"
# echo $javapcommand
# exit 1
# else
# echo "NMS Common has no version-specific dependencies :)"
# fi
# fi

### Bukkit tests across all NMS versions ###
# Dev note: Yes, I know I could put this under one run section, but it's a million times easier
# to see which version failed when it's got the version name and subsection in GitHub Actions

- name: Run Bukkit unit tests across all versions (1.19.4)
continue-on-error: true
run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_19_4

- name: Run Bukkit unit tests across all versions (1.19.2)
continue-on-error: true
run: |
mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_19_2
mvn clean package -pl :commandapi-bukkit-test-tests-1.18 -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_19_2
- name: Run Bukkit unit tests across all versions (1.18)
continue-on-error: true
run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_18

- name: Run Bukkit unit tests across all versions (1.17)
continue-on-error: true
run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_17

- name: Run Bukkit unit tests across all versions (1.16.5)
continue-on-error: true
run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_16_5

# It doesn't matter which version the Kotlin DSL uses. It should be version independent
- name: Run Bukkit Kotlin DSL unit tests
continue-on-error: true
run: mvn clean package -pl :commandapi-bukkit-kotlin-test -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_19_2

### Upload .jar artifacts ###

- name: Upload CommandAPI (Bukkit) plugin artifact
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: CommandAPI (plugin)
path: |
commandapi-plugin/target/CommandAPI*.jar
!commandapi-plugin/target/*sources.jar
!commandapi-plugin/target/*javadoc.jar
- name: CommandAPI core artifact
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS
uses: actions/upload-artifact@v2
commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/target/CommandAPI*.jar
!commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/target/*sources.jar
!commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/target/*javadoc.jar
### Examples ###

- name: Build CommandAPI example Bukkit plugins in examples/ folder
run: cd ./examples; ./build.sh;

### Documentation ###

- name: Run markdownlint on all documentation Markdown documents
uses: DavidAnson/markdownlint-cli2-action@v8
with:
name: CommandAPI (core)
path: |
commandapi-core/target/CommandAPI*.jar
!commandapi-core/target/*sources.jar
!commandapi-core/target/*javadoc.jar
- name: CommandAPI shade artifact
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS
uses: actions/upload-artifact@v2
globs: 'docssrc/src/*.md'

- name: Build the documentation with mdBook
run: |
cd docssrc
curl -LJO https://github.com/JorelAli/mdBook/releases/download/v0.4.21-fa6/mdbook-fa6 && chmod +x mdbook-fa6
mkdir -p mdbook-linkcheck && cd "$_" && curl -L https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/latest/download/mdbook-linkcheck.x86_64-unknown-linux-gnu.zip -o mdbook-linkcheck.zip && unzip "$_" && chmod +x mdbook-linkcheck && export PATH=$PWD:$PATH && cd ..
./mdbook-fa6 build
### Save PR information for 'SonarAnalyze'
- name: Save PR number to file
if: github.event_name == 'pull_request' && ${{ matrix.os }} == 'ubuntu-latest' && ${{ matrix.java_version }} == '17'
run: echo ${{ github.event.number }} > PR_NUMBER.txt
- name: Archive PR number
if: github.event_name == 'pull_request' && ${{ matrix.os }} == 'ubuntu-latest' && ${{ matrix.java_version }} == '17'
uses: actions/upload-artifact@v3
with:
name: CommandAPI (shade)
path: |
commandapi-shade/target/CommandAPI*.jar
!commandapi-shade/target/*sources.jar
!commandapi-shade/target/*javadoc.jar
- name: build CommandAPI examples in examples/
run: for folder in examples/*/; do ( cd $folder; mvn clean package ); done
name: PR_NUMBER
path: PR_NUMBER.txt

snapshot-deploy:
needs: build # Only run if "build" succeeds
runs-on: ubuntu-latest
if: github.repository == 'JorelAli/CommandAPI' && github.ref == 'refs/heads/dev/dev'

steps:
- name: Checkout the CommandAPI repository
uses: actions/checkout@v3

- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: temurin
server-id: ossrh # Needs to match the id in the main pom.xml file
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
java-version: 17
cache: maven

- name: Deploy snapshot version of the CommandAPI (Bukkit+Velocity) to the Sonatype snapshot repository
run: |
if mvn help:evaluate -Dexpression=project.version -q -DforceStdout | grep -E -q '\-SNAPSHOT$'; then
echo "SNAPSHOT version detected: $(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)"
mvn deploy --batch-mode -P Platform.Bukkit,Platform.Velocity -DskipTests=true
else
echo "Version is not a SNAPSHOT version, not deploying to Sonatype Snapshot repo"
fi
env:
MAVEN_USERNAME: ${{ secrets.OSS_SONATYPE_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSS_SONATYPE_PASSWORD }}
13 changes: 7 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.idea/**
**/.idea/
*.iml
build-works/
libs/
Expand All @@ -7,9 +7,10 @@ bin
.project
.settings
target
logs/latest.log
commandapi-plugin/dependency-reduced-pom.xml
commandapi-shade/dependency-reduced-pom.xml
build
**/logs/*.log
**/logs/*.log.gz
.vscode
commandapi-plugin-test/command_registration.json
commandapi-plugin-test/logs/*
.DS_Store
docssrc/src/.markdownlint-cli2.yaml
.gradle
5 changes: 3 additions & 2 deletions Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = CommandAPI
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 8.8.0
PROJECT_NUMBER = 9.0.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down Expand Up @@ -877,7 +877,8 @@ WARN_LOGFILE =
INPUT = README.md \
commandapi-core\src\main\java \
..\I-Al-Istannen\brigadier\src\main\java \
commandapi-annotations\src\main\java
commandapi-annotations\src\main\java \
commandapi-platforms\commandapi-bukkit\commandapi-bukkit-core\src\main\java

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down

0 comments on commit d3f17da

Please sign in to comment.