diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 548a34f72..c33abffa1 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,7 +1,11 @@ name: Plugin deployment on: + push: + branches: [ main ] pull_request: + release: + types: [ published ] concurrency: group: publish-plugin-${{ github.ref_name }} @@ -30,18 +34,19 @@ jobs: with: java-version-file: '.java-version' distribution: 'corretto' - cache: 'gradle' - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - - name: Generate timestamp - run: echo "VERSION=$(date +'%Y.%m.%d-%H%M')" >> $GITHUB_ENV + - name: Resolve plugin version + run: | + BASE_VERSION=$(grep '^pluginVersion=' gradle.properties | cut -d'=' -f2) + echo "VERSION=${BASE_VERSION}.${{ github.run_number }}" >> $GITHUB_ENV - name: Build plugin run: ./gradlew buildPlugin -PenvironmentName=${{ matrix.environmentName }} -PpluginVersion=${{ env.VERSION }} - - name: Upload plugin to PR + - name: Upload plugin artifact uses: actions/upload-artifact@v4 with: name: HyperskillAcademy-${{ env.VERSION }}-${{ matrix.environmentName }} @@ -53,10 +58,17 @@ jobs: - name: Verify plugin run: ./gradlew verifyPlugin -PenvironmentName=${{ matrix.environmentName }} -PpluginVersion=${{ env.VERSION }} -# -# - name: Upload plugin to Marketplace -# if: github.ref == 'refs/heads/main' && -# github.event_name == 'push' && -# run: ./gradlew publishPlugin -PenvironmentName=${{ matrix.environmentName }} -PpluginVersion=${{ env.VERSION }} -# env: -# JB_MARKETPLACE_TOKEN: ${{ secrets.JB_MARKETPLACE_TOKEN }} + + - name: Publish plugin to Marketplace (dev channel) + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + run: ./gradlew publishPlugin -PenvironmentName=${{ matrix.environmentName }} -PpluginVersion=${{ env.VERSION }} + env: + JB_MARKETPLACE_TOKEN: ${{ secrets.JB_MARKETPLACE_TOKEN }} + JB_MARKETPLACE_CHANNEL: dev + + - name: Publish plugin to Marketplace (stable channel) + if: github.event_name == 'release' + run: ./gradlew publishPlugin -PenvironmentName=${{ matrix.environmentName }} -PpluginVersion=${{ env.VERSION }} + env: + JB_MARKETPLACE_TOKEN: ${{ secrets.JB_MARKETPLACE_TOKEN }} + JB_MARKETPLACE_CHANNEL: "" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f8e1ee312..d997cfc60 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2b5..c61a118f7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/intellij-plugin/build.gradle.kts b/intellij-plugin/build.gradle.kts index 2ec5ba89d..0d196f161 100644 --- a/intellij-plugin/build.gradle.kts +++ b/intellij-plugin/build.gradle.kts @@ -47,6 +47,12 @@ intellijPlatform { } } + publishing { + token = providers.environmentVariable("JB_MARKETPLACE_TOKEN") + channels = listOf(providers.environmentVariable("JB_MARKETPLACE_CHANNEL").getOrElse("dev")) + hidden = false + } + // Enable IDE caching for plugin verification // Cache path is configured via org.jetbrains.intellij.platform.intellijPlatformCache in gradle.properties caching {