8000 Integrate BytecodeAnalyser into the GitHub Actions build by DerEchtePilz · Pull Request #643 · CommandAPI/CommandAPI · GitHub
[go: up one dir, main page]

Skip to content

Integrate BytecodeAnalyser into the GitHub Actions build #643

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Apr 23, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Disable some steps again
  • Loading branch information
DerEchtePilz committed Apr 23, 2025
commit d081e755ea346f53406f101e75f0ec43090e7ea0
198 changes: 99 additions & 99 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ jobs:

### Compilation ###

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

### Check NMS_Common compiles against all compatible Minecraft versions

Expand Down Expand Up @@ -104,100 +104,100 @@ jobs:
# 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.5 - 1.20.6)
continue-on-error: true
run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_20_5

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

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

- 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 - 1.20.1)
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 (Mojang Mapped 1.20 - 1.20.1)
continue-on-error: true
run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_20_Mojang

# 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_20

### Upload .jar artifacts ###

- name: Upload CommandAPI (Bukkit) plugin artifact
if: ${{ runner.os == 'Linux' && matrix.java == '21' }} # Only upload artifacts built from latest java on one OS
uses: actions/upload-artifact@v4
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 == '21' }} # Only upload artifacts built from latest java on one OS
uses: actions/upload-artifact@v4
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;

### Save PR information for 'SonarAnalyze'
- name: Save PR number to file
if: github.event_name == 'pull_request' && ${{ matrix.os }} == 'ubuntu-latest' && ${{ matrix.java_version }} == '21'
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 }} == '21'
uses: actions/upload-artifact@v4
with:
name: PR_NUMBER
path: PR_NUMBER.txt

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

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

- name: Setup JDK 21
uses: actions/setup-java@v4
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: 21
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 }}
# - name: Run Bukkit unit tests across all versions (1.20.5 - 1.20.6)
# continue-on-error: true
# run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_20_5
#
# - name: Run Bukkit unit tests across all versions (Mojang Mapped 1.20.5 - 1.20.6)
# continue-on-error: true
# run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_20_5_Mojang
#
# - name: Run Bukkit unit tests across all versions (1.20.3 - 1.20.4)
# continue-on-error: true
# run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_20_3
#
# - 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 - 1.20.1)
# 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 (Mojang Mapped 1.20 - 1.20.1)
# continue-on-error: true
# run: mvn clean package -pl :commandapi-bukkit-test-tests -P Platform.Bukkit -Dmaven.javadoc.skip=true -P Minecraft_1_20_Mojang
#
# # 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_20
#
# ### Upload .jar artifacts ###
#
# - name: Upload CommandAPI (Bukkit) plugin artifact
# if: ${{ runner.os == 'Linux' && matrix.java == '21' }} # Only upload artifacts built from latest java on one OS
# uses: actions/upload-artifact@v4
# 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 == '21' }} # Only upload artifacts built from latest java on one OS
# uses: actions/upload-artifact@v4
# 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;
#
# ### Save PR information for 'SonarAnalyze'
# - name: Save PR number to file
# if: github.event_name == 'pull_request' && ${{ matrix.os }} == 'ubuntu-latest' && ${{ matrix.java_version }} == '21'
# 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 }} == '21'
# uses: actions/upload-artifact@v4
# with:
# name: PR_NUMBER
# path: PR_NUMBER.txt
#
# snapshot-deploy:
# needs: build # Only run if "build" succeeds
# runs-on: ubuntu-latest
# if: github.repository == 'CommandAPI/CommandAPI' && github.ref == 'refs/heads/dev/dev'
#
# steps:
# - name: Checkout the CommandAPI repository
# uses: actions/checkout@v3
#
# - name: Setup JDK 21
# uses: actions/setup-java@v4
# 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: 21
# 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 }}
0