diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index b8faa36..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,107 +0,0 @@ -name: Build Plazma - -on: - push: - branches: [ "ver/*", "feat/*", "dev/*", "expr/*", "ench/*", "impl/*" ] - workflow_dispatch: - -env: - ORG_NAME: PlazmaMC - MC_VERSION: 1.20.1 - MAIN_BRANCH: ver/1.20.1 - DEBUG: 'false' - -jobs: - release: - strategy: - matrix: - base_jdk: [17] - graal: [latest] - os: [ubuntu-22.04] - - if: "!startsWith(github.event.commits[0].message, '[CI-Skip]')" - runs-on: ${{ matrix.os }} - steps: - - name: Checkout action - uses: actions/checkout@v3 - - - name: Checkout pages - uses: actions/checkout@v3 - with: - path: javadoc - ref: gh-pages - token: ${{ secrets.GH_PAT }} - - - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@v1 - - - name: Set up GraalVM ${{ matrix.base_jdk }} - uses: graalvm/setup-graalvm@v1 - with: - github-token: ${{ secrets.GH_PAT }} - java-version: ${{ matrix.base_jdk }} - version: ${{ matrix.graal }} - cache: 'gradle' - - - name: Configure Git - run: git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && git config --global user.name "github-actions[bot]" - - - name: Apply Patches - run: ./gradlew applyPatches --stacktrace - - - name: Build - run: ./gradlew build --stacktrace - - - name: Create Reobf Jar - run: ./gradlew createReobfPaperclipJar --stacktrace - - - name: Create Mojmap Jar - run: ./gradlew createMojmapPaperclipJar --stacktrace - - - name: Update Javadoc - continue-on-error: true - if: github.ref_name == env.MAIN_BRANCH - run: | - (cd Plazma-API/build/docs/javadoc && tar c .) | (cd javadoc && tar xf -) - cd javadoc - git add . && git commit -m "Update Javadocs" - git push - - - name: Publish Packages - if: github.ref_name == env.MAIN_BRANCH - run: | - export GITHUB_USERNAME=${{ env.ORG_NAME }} - export GITHUB_TOKEN=${{ secrets.GH_PAT }} - ./gradlew publish --stacktrace - - - name: Upload Artifacts - if: env.DEBUG == 'true' || !startsWith(github.ref_name, 'ver/') - uses: actions/upload-artifact@v3 - with: - name: Artifacts - path: | - build/libs - Plazma-API/build/docs/javadoc - - - name: Get Release Number - run: echo "RELEASE=$(git ls-remote --tags origin | grep "release" | wc -l)" >> $GITHUB_ENV - - - name: Release Artifacts - if: startsWith(github.ref_name, 'ver/') - uses: marvinpinto/action-automatic-releases@latest - with: - title: "Release #${{ env.RELEASE }}" - automatic_release_tag: release-${{ env.RELEASE }} - repo_token: "${{ secrets.GH_PAT }}" - files: build/libs/*.jar - prerelease: false - - - name: Release Artifacts (Latest) - if: startsWith(github.ref_name, 'ver/') - uses: marvinpinto/action-automatic-releases@latest - with: - title: "Release #${{ env.RELEASE }}" - automatic_release_tag: latest-${{ env.MC_VERSION }} - repo_token: "${{ secrets.GH_PAT }}" - files: build/libs/*.jar - prerelease: false diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 4657bfc..4701c19 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -2,15 +2,21 @@ name: Test Gradle build script on: push: - branches: [ "ver/*", "feat/*", "dev/*", "expr/*", "ench/*", "impl/*" ] + branches: [ "ver/*", "dev/*", "feat/**/*" ] + paths: + - "*.kt" + - "*.kts" + - "*.toml" + - "gradle-wrapper.*" workflow_dispatch: jobs: - release: + check: + name: Test Gradle build script strategy: matrix: - jdk: [19.0.2+7] - java: ['temurin'] + jdk: [21] + java: ['zulu'] os: [ubuntu-22.04] if: "!contains(github.event.commits[0].message, '[CheckSkip]')" diff --git a/.github/workflows/javadocs.yml b/.github/workflows/javadocs.yml deleted file mode 100644 index 93742fc..0000000 --- a/.github/workflows/javadocs.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Deploy Javadocs - -on: - push: - branches: ["gh-pages"] - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: "pages" - cancel-in-progress: true - -jobs: - build: - if: "!startsWith(github.event.commits[0].message, '[CI-Skip]')" - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Pages - uses: actions/configure-pages@v3 - - - name: Build with Jekyll - uses: actions/jekyll-build-pages@v1 - with: - source: ./ - destination: ./_site - - - name: Upload artifact - uses: actions/upload-pages-artifact@v1 - - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..08e87b9 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,122 @@ +name: Release Plazma (1.20.4) + +on: + workflow_dispatch: + push: + branches: [ "ver/*", "dev/*", "feat/**/*" ] + paths: + - "**.patch" + +env: + ORG_NAME: PlazmaMC + MC_VERSION: 1.20.4 + +jobs: + release: + name: Release Plazma + strategy: + matrix: + base_jdk: [17] + os: [ubuntu-22.04] + + if: "!startsWith(github.event.commits[0].message, '[CI-Skip]')" + runs-on: ${{ matrix.os }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Checkout javadocs + uses: actions/checkout@v4 + continue-on-error: true + if: startsWith(github.ref_name, 'ver/') || startsWith(github.ref_name, 'dev/') + with: + repository: PlazmaMC/Javadocs + path: javadoc + ref: ${{ github.ref_name }} + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Validate Gradle Wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Set up GraalVM ${{ matrix.base_jdk }} + uses: graalvm/setup-graalvm@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + java-version: ${{ matrix.base_jdk }} + version: latest + cache: 'gradle' + + - name: Configure Git + run: git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && git config --global user.name "github-actions[bot]" + + - name: Apply Patches + run: ./gradlew applyPatches --stacktrace + + - name: Build + run: ./gradlew build --stacktrace + + - name: Create Reobf Jar + run: ./gradlew createReobfPaperclipJar --stacktrace + + - name: Create Mojmap Jar + run: ./gradlew createMojmapPaperclipJar --stacktrace + + - name: Update Javadoc + if: startsWith(github.ref_name, 'ver/') || startsWith(github.ref_name, 'dev/') + continue-on-error: true + run: | + if [ ! -d "$DIRECTORY" ]; then + mkdir javadoc + cd javadoc + git init && git branch -m ${{ github.ref_name }} + git remote add origin https://github.com/PlazmaMC/Javadocs + fi + + (cd Plazma-API/build/docs/javadoc && tar c .) | (cd javadoc && tar xf -) + cd javadoc + git add . && git commit -m "Update Javadocs" + git push + + - name: Publish Packages + if: startsWith(github.ref_name, 'ver/') || startsWith(github.ref_name, 'dev/') + run: | + export GITHUB_USERNAME=${{ env.ORG_NAME }} + export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + ./gradlew publish --stacktrace + + - name: Get Release Number + if: startsWith(github.ref_name, 'ver/') + run: echo "RELEASE=$(git ls-remote --tags origin | grep "build/${{ env.MC_VERSION }}" | wc -l)" >> $GITHUB_ENV + + - name: Release Artifacts + if: startsWith(github.ref_name, 'ver/') + uses: softprops/action-gh-release@v0.1.15 + with: + name: "Build #${{ env.RELEASE }} for ${{ env.MC_VERSION }}" + tag_name: build/${{ env.MC_VERSION }}/${{ env.RELEASE }} + target_commitish: ${{ github.ref_name }} + generate_release_notes: true + fail_on_unmatched_files: true + files: build/libs/*.jar + + - name: Release Artifacts (Latest/Stable) + if: startsWith(github.ref_name, 'ver/') + uses: softprops/action-gh-release@v0.1.15 + with: + name: "Build #${{ env.RELEASE }} for ${{ env.MC_VERSION }}" + tag_name: build/${{ env.MC_VERSION }}/latest + target_commitish: ${{ github.ref_name }} + generate_release_notes: true + fail_on_unmatched_files: true + files: build/libs/*.jar + + - name: Release Artifacts (Latest/Development) + if: startsWith(github.ref_name, 'dev/') + uses: softprops/action-gh-release@v0.1.15 + with: + name: "Development Build for ${{ env.MC_VERSION }}" + tag_name: build/${{ env.MC_VERSION }}/latest + target_commitish: ${{ github.ref_name }} + generate_release_notes: true + fail_on_unmatched_files: true + files: build/libs/*.jar diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 47e0781..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Test build with Normal JDK - -on: - push: - branches: [ "ver/*", "feat/*", "dev/*", "expr/*", "ench/*", "impl/*" ] - workflow_dispatch: - -jobs: - release: - strategy: - matrix: - jdk: [19.0.2+7] - java: ['temurin'] - os: [ubuntu-22.04] - - if: "!startsWith(github.event.commits[0].message, '[CI-Skip]')" - runs-on: ${{ matrix.os }} - steps: - - name: Checkout action - uses: actions/checkout@v3 - - - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@v1 - - - name: Set up JDK ${{ matrix.java }} ${{ matrix.jdk }} - uses: actions/setup-java@v3 - with: - distribution: ${{ matrix.java }} - java-version: ${{ matrix.jdk }} - cache: 'gradle' - - - name: Test build - run: | - git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && git config --global user.name "github-actions[bot]" - ./gradlew applyPatches --stacktrace - ./gradlew build --stacktrace