Fix markdownlint errors in native.md #138
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
# Automatically build the project and run any configured tests for every push | |
# and submitted pull request. This can help catch issues that only occur on | |
# certain platforms or Java versions, and provides a first line of defence | |
# against bad commits. | |
name: build | |
on: | |
push: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
jobs: | |
build: | |
strategy: | |
matrix: | |
# Use these Java versions | |
java: [ | |
17, # Current Java LTS & minimum supported by Minecraft | |
] | |
# and run on both Linux and Windows | |
# os: [ubuntu-20.04, windows-2022] | |
os: [ubuntu-20.04] | |
runs-on: ${{ matrix.os }} | |
steps: | |
### Set up ### | |
- name: Checkout the CommandAPI repository | |
uses: actions/checkout@v3 | |
- name: Setup JDK ${{ matrix.java }} | |
uses: actions/setup-java@v3 | |
with: | |
distribution: temurin | |
java-version: ${{ matrix.java }} | |
cache: maven | |
### 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 | |
mvn clean package -pl :commandapi-bukkit-nms-common -P Platform.Bukkit,Spigot_1_20_R1 | |
mvn clean package -pl :commandapi-bukkit-nms-common -P Platform.Bukkit,Spigot_1_20_2_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.20.2) | |
continue-on-error: true | |
run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_20_2 | |
- name: Run Bukkit unit tests across all versions (1.20) | |
continue-on-error: true | |
run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_20 | |
- 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 | |
- 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@v3 | |
with: | |
name: CommandAPI (Bukkit plugin) | |
path: | | |
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 | |
- name: Upload CommandAPI (Velocity) plugin artifact | |
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS | |
uses: actions/upload-artifact@v3 | |
with: | |
name: CommandAPI (Velocity plugin) | |
path: | | |
commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/target/CommandAPI*.jar | |
!commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/target/*sources.jar | |
!commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/target/*javadoc.jar | |
### Examples ### | |
- name: Build CommandAPI example 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: | |
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: 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 }} |