diff --git a/.github/workflows/main.yml b/.github/workflows/release.yml similarity index 51% rename from .github/workflows/main.yml rename to .github/workflows/release.yml index d6fcf2c..d1cdec1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/release.yml @@ -1,92 +1,59 @@ -name: CI +name: Release on: push: - branches: [main] - pull_request: - branches: [main] + branches: + - main + +permissions: + contents: write + pull-requests: write jobs: - build: + release: runs-on: jp-arm-oracle steps: + - name: Release Please + id: release + uses: googleapis/release-please-action@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + config-file: release-please-config.json + manifest-file: .release-please-manifest.json + - name: Checkout + if: ${{ steps.release.outputs.release_created }} uses: actions/checkout@v6 - name: Setup Java + if: ${{ steps.release.outputs.release_created }} uses: actions/setup-java@v5 with: distribution: 'zulu' java-version: '21' - name: Setup Gradle + if: ${{ steps.release.outputs.release_created }} uses: gradle/actions/setup-gradle@v5 - name: Build Plugin + if: ${{ steps.release.outputs.release_created }} run: ./gradlew buildPlugin - - name: Run Tests - run: ./gradlew test - - - name: Generate Coverage Report - run: ./gradlew koverXmlReport - - - name: Upload Coverage to Codecov - uses: codecov/codecov-action@v5 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: ./build/reports/kover/report.xml - fail_ci_if_error: false - - name: Verify Plugin + if: ${{ steps.release.outputs.release_created }} run: ./gradlew verifyPlugin - name: Upload Build Artifact + if: ${{ steps.release.outputs.release_created }} uses: actions/upload-artifact@v6 with: name: plugin-artifact path: build/distributions/*.zip - release-please: - needs: build - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - runs-on: jp-arm-oracle - outputs: - release_created: ${{ steps.release.outputs.release_created }} - tag_name: ${{ steps.release.outputs.tag_name }} - - steps: - - name: Checkout - uses: actions/checkout@v6 - - - name: Release Please - id: release - uses: googleapis/release-please-action@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - config-file: release-please-config.json - manifest-file: .release-please-manifest.json - - publish: - needs: release-please - if: ${{ needs.release-please.outputs.release_created }} - runs-on: jp-arm-oracle - - steps: - - name: Checkout - uses: actions/checkout@v6 - - - name: Setup Java - uses: actions/setup-java@v5 - with: - distribution: 'zulu' - java-version: '21' - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 - - name: Publish to JetBrains Marketplace + if: ${{ steps.release.outputs.release_created }} run: ./gradlew publishPlugin env: PUBLISH_TOKEN: ${{ secrets.JETBRAINS_MARKETPLACE_TOKEN }} diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml new file mode 100644 index 0000000..9a823c9 --- /dev/null +++ b/.github/workflows/testing.yml @@ -0,0 +1,41 @@ +name: Testing + +on: + push: + branches: + - "*" + pull_request: + branches: [main] + +jobs: + test: + runs-on: jp-arm-oracle + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup Java + uses: actions/setup-java@v5 + with: + distribution: 'zulu' + java-version: '21' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + + - name: Build Plugin + run: ./gradlew buildPlugin + + - name: Run Tests + run: ./gradlew test + + - name: Generate Coverage Report + run: ./gradlew koverXmlReport + + - name: Upload Coverage to Codecov + uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./build/reports/kover/report.xml + fail_ci_if_error: false