diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 954e369b20..00c7e69b11 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -128,4 +128,54 @@ jobs: uses: actions/upload-artifact@v3 with: name: ${{ steps.artifact.outputs.filename }} - path: ${{ github.workspace }}/azure-tools-for-intellij/PluginsAndFeatures/azure-toolkit-for-rider/build/distributions/content/*/* \ No newline at end of file + path: ${{ github.workspace }}/azure-tools-for-intellij/PluginsAndFeatures/azure-toolkit-for-rider/build/distributions/content/*/* + + # Run plugin structure verification along with IntelliJ Plugin Verifier + verify: + name: Verify plugin + needs: [ build ] + runs-on: ubuntu-latest + steps: + + # Free GitHub Actions Environment Disk Space + - name: Maximize Build Space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: false + large-packages: false + + # Check out current repository + - name: Fetch Sources + uses: actions/checkout@v4 + + # Set up Java environment for the next steps + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: zulu + java-version: 17 + + # Set up Gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + with: + gradle-home-cache-cleanup: true + + # Cache Plugin Verifier IDEs + - name: Setup Plugin Verifier IDEs Cache + uses: actions/cache@v3 + with: + path: ${{ needs.build.outputs.pluginVerifierHomeDir }}/ides + key: plugin-verifier-${{ hashFiles('build/listProductsReleases.txt') }} + + # Run Verify Plugin task and IntelliJ Plugin Verifier tool + - name: Run Plugin Verification tasks + run: ./gradlew runPluginVerifier -Dplugin.verifier.home.dir=${{ needs.build.outputs.pluginVerifierHomeDir }} + + # Collect Plugin Verifier Result + - name: Collect Plugin Verifier Result + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: pluginVerifier-result + path: ${{ github.workspace }}/build/reports/pluginVerifier \ No newline at end of file