diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml index d7b0f254..70880632 100644 --- a/.github/workflows/maven-publish.yml +++ b/.github/workflows/maven-publish.yml @@ -18,17 +18,18 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up JDK 21 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: '21' + java-version: '17' distribution: 'temurin' - server-id: github # Value of the distributionManagement/repository/id field of the pom.xml - server-username: ${{ github.actor }} # Automatically uses the GitHub actor (username) - server-password: ${{ secrets.TOKEN }} - name: Build with Maven - run: mvn -B package --file pom.xml + run: mvn -B -q package --file pom.xml --settings $GITHUB_WORKSPACE/.github/workflows/maven-settings.xml + env: + TOKEN: ${{ secrets.TOKEN }} - name: Publish to GitHub Packages Apache Maven - run: mvn deploy + run: mvn deploy -pl cannons-bukkit -am --settings $GITHUB_WORKSPACE/.github/workflows/maven-settings.xml + env: + TOKEN: ${{ secrets.TOKEN }} diff --git a/.github/workflows/maven-settings.xml b/.github/workflows/maven-settings.xml new file mode 100644 index 00000000..921ee31d --- /dev/null +++ b/.github/workflows/maven-settings.xml @@ -0,0 +1,38 @@ + + + + github + + + + github + + + central + https://repo1.maven.org/maven2 + + + github + https://maven.pkg.github.com/APDevTeam/Movecraft + + true + + + true + + + + + + + + + github + Intybyte + ${env.TOKEN} + + + + diff --git a/.github/workflows/pull-request-preview.yml b/.github/workflows/pull-request-preview.yml new file mode 100644 index 00000000..8549d305 --- /dev/null +++ b/.github/workflows/pull-request-preview.yml @@ -0,0 +1,106 @@ +name: Pull Request + +on: + pull_request: + workflow_dispatch: + +permissions: + contents: read + pull-requests: write + issues: write + +jobs: + setup-preview-build: + name: Preview build + runs-on: ubuntu-latest + outputs: + short-commit-hash: ${{ steps.env-setup.outputs.SHORT_COMMIT_HASH }} + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Cache Maven packages + uses: actions/cache@v4 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + + # Setup for the preview build + - id: env-setup + run: | + SHORT_COMMIT_HASH=$(git rev-parse --short=8 ${{ github.sha }}) + JAR_VERSION="Preview-Build-#${{ github.event.number }}-$SHORT_COMMIT_HASH" + echo "SHORT_COMMIT_HASH=$SHORT_COMMIT_HASH" >> "$GITHUB_ENV" + echo "SHORT_COMMIT_HASH=$SHORT_COMMIT_HASH" >> "$GITHUB_OUTPUT" + echo "JAR_VERSION=$JAR_VERSION" >> "$GITHUB_ENV" + + - name: Set preview version for cannons-bukkit + run: mvn -B -q versions:set -DnewVersion="${JAR_VERSION}" -f cannons-bukkit/pom.xml + + - name: Build with Maven + id: build + run: mvn -B -q package --file pom.xml --settings $GITHUB_WORKSPACE/.github/workflows/maven-settings.xml + env: + TOKEN: ${{ secrets.TOKEN }} + + - name: Upload the artifact + if: ${{ steps.build.outcome == 'success' }} + uses: actions/upload-artifact@v4 + with: + name: cannons-bukkit${{ github.event.number }}-${{ env.SHORT_COMMIT_HASH }} + path: 'cannons-bukkit/target/cannons-bukkit-${{ env.JAR_VERSION }}.jar' + + - name: Get artifact download URL + id: get-artifact-url + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPO: ${{ github.repository }} + RUN_ID: ${{ github.run_id }} + PR_NUMBER: ${{ github.event.number }} + SHORT_HASH: ${{ env.SHORT_COMMIT_HASH }} + run: | + echo "Fetching artifacts for run $RUN_ID" + ARTIFACTS_JSON=$(curl -sSL -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/$REPO/actions/runs/$RUN_ID/artifacts") + + ARTIFACT_NAME="cannons-bukkit${PR_NUMBER}-${SHORT_HASH}" + ARTIFACT_ID=$(echo "$ARTIFACTS_JSON" | jq -r --arg name "$ARTIFACT_NAME" '.artifacts[] | select(.name==$name) | .id') + + if [ -z "$ARTIFACT_ID" ] || [ "$ARTIFACT_ID" == "null" ]; then + ARTIFACT_ID=$(echo "$ARTIFACTS_JSON" | jq -r '.artifacts[0].id') + fi + + if [ -z "$ARTIFACT_ID" ] || [ "$ARTIFACT_ID" == "null" ]; then + echo "No artifact found" + exit 1 + fi + + DOWNLOAD_URL="https://github.com/$REPO/suites/$RUN_ID/artifacts/$ARTIFACT_ID" + echo "Artifact download URL: $DOWNLOAD_URL" + + echo "artifact_url=$DOWNLOAD_URL" >> $GITHUB_OUTPUT + + - name: Comment success on PR + if: ${{ steps.build.outcome == 'success' }} + uses: peter-evans/create-or-update-comment@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.pull_request.number }} + body: | + ✅ Build succeeded! + Download the artifact [here](${{ steps.get-artifact-url.outputs.artifact_url }}) + + - name: Comment failure on PR + if: ${{ steps.build.outcome != 'success' }} + uses: peter-evans/create-or-update-comment@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.pull_request.number }} + body: | + ❌ Build failed. + Please check the logs [here](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) diff --git a/api-internal/pom.xml b/api-internal/pom.xml index fea6e6a5..f4df5edd 100644 --- a/api-internal/pom.xml +++ b/api-internal/pom.xml @@ -46,6 +46,13 @@ ${java.target} + + maven-deploy-plugin + 3.1.4 + + true + + \ No newline at end of file diff --git a/cannons-bukkit/pom.xml b/cannons-bukkit/pom.xml index e1b00cf3..88c15dff 100644 --- a/cannons-bukkit/pom.xml +++ b/cannons-bukkit/pom.xml @@ -53,11 +53,11 @@ papermc - https://papermc.io/repo/repository/maven-public/ + https://repo.papermc.io/repository/maven-public/ github - https://maven.pkg.github.com/apdevteam/movecraft + https://maven.pkg.github.com/APDevTeam/Movecraft true @@ -173,7 +173,7 @@ ${project.basedir}/src/main/java ${project.basedir}/src/test/java - ${project.name} + ${project.name}-${version} clean install @@ -216,10 +216,6 @@ maven-jar-plugin 3.1.1 - - maven-deploy-plugin - 3.1.1 - org.apache.maven.plugins maven-shade-plugin @@ -292,6 +288,13 @@ + + maven-deploy-plugin + 3.1.4 + + false + + diff --git a/pom.xml b/pom.xml index c3e4a80b..23f75a53 100644 --- a/pom.xml +++ b/pom.xml @@ -26,4 +26,16 @@ api-internal cannons-bukkit + + + + + maven-deploy-plugin + 3.1.4 + + true + + + + \ No newline at end of file