diff --git a/.github/actions/setup-gradle/action.yml b/.github/actions/setup-gradle/action.yml new file mode 100644 index 0000000..2f8eb58 --- /dev/null +++ b/.github/actions/setup-gradle/action.yml @@ -0,0 +1,14 @@ +name: 'Setup Gradle' +description: 'Sets up Gradle, validates wrapper, and sets permissions' +runs: + using: "composite" + steps: + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Validate Gradle + uses: gradle/actions/wrapper-validation@v4 + + - name: Change Wrapper Permissions + shell: bash + run: chmod +x ./gradlew diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index a521b8c..a72f579 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -31,10 +31,8 @@ jobs: - language: java-kotlin build-mode: manual steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Change Wrapper Permissions - run: chmod +x ./gradlew + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-gradle - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: diff --git a/.github/workflows/flyway-mysql.yml b/.github/workflows/flyway-mysql.yml index d3014fc..6ffc4f4 100644 --- a/.github/workflows/flyway-mysql.yml +++ b/.github/workflows/flyway-mysql.yml @@ -37,14 +37,8 @@ jobs: --health-timeout=5s --health-retries=5 steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Validate Gradle - uses: gradle/actions/wrapper-validation@v4 - - name: Change Wrapper Permissions - run: chmod +x ./gradlew + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-gradle - name: Test Flyway Migrations (MySQL) run: |- - ./gradlew flywayClean flywayValidate flywayMigrate \ No newline at end of file + ./gradlew flywayClean flywayValidate flywayMigrate diff --git a/.github/workflows/flyway-sqlite.yml b/.github/workflows/flyway-sqlite.yml index 4595a9b..affd9d0 100644 --- a/.github/workflows/flyway-sqlite.yml +++ b/.github/workflows/flyway-sqlite.yml @@ -19,14 +19,8 @@ jobs: validate-flyway: runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Validate Gradle - uses: gradle/actions/wrapper-validation@v4 - - name: Change Wrapper Permissions - run: chmod +x ./gradlew - - name: Test Flyway Migrations (MySQL) + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-gradle + - name: Test Flyway Migrations (SQLite) run: |- - ./gradlew flywayClean flywayValidate flywayMigrate \ No newline at end of file + ./gradlew flywayClean flywayValidate flywayMigrate diff --git a/.github/workflows/pr-pipeline.yml b/.github/workflows/pr-pipeline.yml index d4c11e3..9f06cce 100644 --- a/.github/workflows/pr-pipeline.yml +++ b/.github/workflows/pr-pipeline.yml @@ -18,23 +18,11 @@ jobs: build: runs-on: ubuntu-latest steps: - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - - name: Validate Gradle - uses: gradle/actions/wrapper-validation@v4 - - - name: Change Wrapper Permissions - run: chmod +x ./gradlew - + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-gradle - name: Build Project run: |- ./gradlew assemble - - name: Check Project run: |- - ./gradlew check \ No newline at end of file + ./gradlew check diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml deleted file mode 100644 index db77682..0000000 --- a/.github/workflows/publish-release.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Publish Plugin Release -on: - workflow_dispatch: {} - release: - types: [published] - -permissions: - contents: write - -jobs: - publish-hangar: - runs-on: ubuntu-latest - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Validate Gradle - uses: gradle/actions/wrapper-validation@v4 - - name: Change Wrapper Permissions - run: chmod +x ./gradlew - - name: Publish Hangar Release - env: - HANGAR_API_TOKEN: ${{ secrets.HANGAR_API_TOKEN }} - run: ./gradlew build publishWaystonesReleasePublicationToHangar --stacktrace - - publish-modrinth: - runs-on: ubuntu-latest - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Validate Gradle - uses: gradle/actions/wrapper-validation@v4 - - name: Change Wrapper Permissions - run: chmod +x ./gradlew - - name: Publish Modrinth Release - env: - MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} - MODRINTH_PUBLISH_CHANNEL: release - run: ./gradlew build modrinth \ No newline at end of file diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index 219a37b..99ed93b 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -13,35 +13,23 @@ permissions: jobs: publish-hangar: - if: ${{ github.actor != 'github-actions[bot]' }} + if: ${{ github.actor != 'github-actions[bot]' && !startsWith(github.event.head_commit.message, 'chore(release)') }} runs-on: ubuntu-latest steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Validate Gradle - uses: gradle/actions/wrapper-validation@v4 - - name: Change Wrapper Permissions - run: chmod +x ./gradlew + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-gradle - name: Publish Hangar Snapshot env: HANGAR_API_TOKEN: ${{ secrets.HANGAR_API_TOKEN }} run: ./gradlew build publishWaystonesSnapshotPublicationToHangar --stacktrace publish-modrinth: - if: ${{ github.actor != 'github-actions[bot]' }} + if: ${{ github.actor != 'github-actions[bot]' && !startsWith(github.event.head_commit.message, 'chore(release)') }} runs-on: ubuntu-latest steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - name: Validate Gradle - uses: gradle/actions/wrapper-validation@v4 - - name: Change Wrapper Permissions - run: chmod +x ./gradlew + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-gradle - name: Publish Modrinth Snapshot env: MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} - run: ./gradlew build modrinth \ No newline at end of file + run: ./gradlew build modrinth diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 2fe8f71..bac615e 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -1,9 +1,9 @@ -name: Generate Release PR - +name: Release and Publish on: push: branches: - main + workflow_dispatch: {} permissions: contents: write @@ -13,5 +13,33 @@ permissions: jobs: release: runs-on: ubuntu-latest + outputs: + release_created: ${{ steps.release.outputs.release_created }} steps: - uses: googleapis/release-please-action@v4 + id: release + + publish-hangar: + needs: release + if: ${{ needs.release.outputs.release_created == 'true' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-gradle + - name: Publish Hangar Release + env: + HANGAR_API_TOKEN: ${{ secrets.HANGAR_API_TOKEN }} + run: ./gradlew build publishWaystonesReleasePublicationToHangar --stacktrace + + publish-modrinth: + needs: release + if: ${{ needs.release.outputs.release_created == 'true' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup-gradle + - name: Publish Modrinth Release + env: + MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} + MODRINTH_PUBLISH_CHANNEL: release + run: ./gradlew build modrinth diff --git a/release-please-config.json b/release-please-config.json index 8cd1bb8..589299f 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -17,6 +17,10 @@ "type": "fix", "section": "Bug Fixes" }, + { + "type": "refactor", + "section": "Code Refactors" + }, { "type": "chore", "section": "Miscellaneous Changes" @@ -24,4 +28,4 @@ ] } } -} \ No newline at end of file +}