Giter Club home page Giter Club logo

intellij-platform-plugin-verifier-action's Introduction

IntelliJ Platform Plugin Verifier Action

A GitHub Action for executing the JetBrains intellij-plugin-verifier.

GitHub Marketplace GitHub Marketplace GitHub Marketplace All Contributors

Usage

Add the action to your GitHub Action Workflow file - the only thing you need to specify are the JetBrains products & versions you wish to run against.

A minimal example of a workflow step is below:

  - name: Verify Plugin on IntelliJ Platforms
    uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    with:
      ide-versions: |
        ideaIC:2019.3

Installation

  1. Create a .yml (or .yaml) file in your GitHub repository's .github/workflows folder. We will call this file compatibility.yml below.
  2. Copy the below contents into compatibility.yml
    name: IntelliJ Platform Plugin Compatibility
    
    on:
      push:
    
    jobs:
      compatibility:
        name: Ensure plugin compatibility against 2019.3 for IDEA Community, IDEA Ultimate, PyCharm Community, GoLand, CLion, and the latest EAP snapshot of IDEA Community.
        runs-on: ubuntu-latest
        steps:
          - name: Check out repository
            uses: actions/checkout@v1
    
          - name: Setup Java 1.8
            uses: actions/setup-java@v1
            with:
              java-version: 1.8
    
          - name: Build the plugin using Gradle
            run: ./gradlew buildPlugin
    
          - name: Verify Plugin on IntelliJ Platforms
            id: verify
            uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
            env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
            with:
              ide-versions: |
                ideaIC:2019.3
                ideaIU:2019.3
                pycharmPC:2019.3
                goland:2019.3
                clion:2019.3
                ideaIC:LATEST-EAP-SNAPSHOT
    
          - name: Get log file path and print contents
            run: |
              echo "The verifier log file [${{steps.verify.outputs.verification-output-log-filename}}] contents : " ;
              cat ${{steps.verify.outputs.verification-output-log-filename}}

GitHub Token Authentication

In order to prevent GitHub Rate limiting, setting the GITHUB_TOKEN environment variable is highly encouraged.

Without the GITHUB_TOKEN set, the requests are considered 'unauthenticated requests' by the GitHub API, and are subject to 60 requests per hour for the originating IP address. GitHub-hosted runners are hosted in Azure, and have the same IP address ranges as Azure datacenters. As a side effect of this, if the particular IP address of the GitHub-runner executing your GitHub Workflow has made 60 requests per hour, the API call to resolve the latest version of the intellij-plugin-verifier will fail, and this action will not complete successfully.

With the GITHUB_TOKEN set, each repository using this GitHub action will be allowed 1,000 requests per hour (which is needed to resolve the latest version of the intellij-plugin-verifier). This should be ample for most repositories.

Options

This GitHub Action exposes 3 input options, only one of which is required.

Input Description Usage Default
verifier-version The version of the JetBrains intellij-plugin-verifier. The default of LATEST will automatically pull the most recently released version from GitHub - a specific version of the intellij-plugin-verifier can be optionally be pinned if desired. Optional LATEST
plugin-location The path to the zip-distribution of the plugin(s), generated by executing ./gradlew buildPlugin Optional build/distributions/*.zip
ide-versions Releases of IntelliJ Platform IDEs and versions that should be used to validate against, formatted as a multi-line string as shown in the examples. Formatted as <ide>:<version> - see below for details. If you would prefer to have the list of IDE and versions stored in a file, see the Configuration file for <ide>:<version> section below for details. Required
failure-levels The different failure levels to set for the verifier. Required COMPATIBILITY_PROBLEMS INVALID_PLUGIN

An example using all the available options is below:

  - name: Verify Plugin on IntelliJ Platforms
    id: verify
    uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    with:
      verifier-version: '1.255'
      plugin-location: 'build/distributions/sample-intellij-plugin-*.zip'
      ide-versions: |
        ideaIC:LATEST-EAP-SNAPSHOT
      failure-levels: |
        COMPATIBILITY_PROBLEMS
        INVALID_PLUGIN
        NOT_DYNAMIC

verifier-version

This optional input allows users to pin a specific version of intellij-plugin-verifier to be used during validation.

WARNING: Due to the deprecation fo Bintray services on 2021-05-01, JetBrains moved the verifier artifacts to their own Maven repository ( See intellij-plugin-verifier version 1.255 release notes for details.). If you wish to specify a verifier-version in this GitHub Action, please ensure you are using both:

  1. intellij-plugin-verifier version 1.255 or later

    AND

  2. intellij-platform-plugin-verifier-action version 2.0.0 or later

plugin-location

This optional input allows users to specify a different location for the plugin(s) .zip file. The default assumes that gradle-intellij-plugin is being used to build the plugin(s).

ide-versions

This required input sets which IDEs and versions the plugins will be validated against.

You can identify the value for <ide> and <version> as follows.

  1. Navigate to the IntelliJ 'Releases' Repository
  2. Find the IDE and version you wish to use.
  3. Copy the URL for the .zip.
  4. Take only the .zip filename from the URL; example below:
    https://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/pycharm/pycharmPY/2019.3/pycharmPY-2019.3.zip
    
    becomes
    pycharmPY-2019.3.zip
    
  5. Replace the - with a :, and remove the .zip from the end; example below:
    pycharmPY-2019.3.zip
    
    becomes
    pycharmPY:2019.3
    
  6. This is the value you will use in ide-versions.

Some <ide> options

  • CLion = clion
  • GoLand = goland
  • IntelliJ IDEA
    • IntelliJ IDEA Community = ideaIC
    • IntelliJ IDEA Ultimate = ideaIU
  • PyCharm
    • PyCharm Community = pycharmPC
    • PyCharm Professional = pycharmPY
  • Rider = riderRD

Some <version> options

  • Major versions (ie, 2019.3)
  • Minor versions (ie, 2019.3.4)
  • Specific build versions (ie, 193.6911.18)
  • SNAPSHOT versions
    • versions ending in *-SNAPSHOT
    • versions ending in *-EAP-SNAPSHOT
    • versions ending in *-EAP-CANDIDATE-SNAPSHOT
    • versions ending in *-CUSTOM-SNAPSHOT
  • Latest EAP version (ie, LATEST-EAP-SNAPSHOT)

Configuration file for <ide>:<version>

If you would like to keep your GitHub Action workflow file tidy and free from constant changes, you can pass a relative file path to a file containing the IDE and versions. Below are the respective excerpts to use this feature.

Workflow File:

- uses: actions/checkout@v2 # Your repository must be checked out in order to access the `ide_versions_file.txt` configuration file.
- name: Verify plugin on IntelliJ Platforms
  id: verify
  uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    ide-versions: .github/workflows/ide_versions_file.txt

.github/workflows/ide_versions_file.txt

ideaIC:2019.3
ideaIU:2019.3
pycharmPC:2019.3
goland:2019.3
clion:2019.3
ideaIC:LATEST-EAP-SNAPSHOT

(Note: The sample above will yield an execution identical to the one provided in the Installation section above.)

failure-levels

This required input sets which plugin verifier failures to cause a failure in this action.

Valid options

Value Search String
COMPATIBILITY_WARNINGS "Compatibility warnings"
COMPATIBILITY_PROBLEMS "Compatibility problems"
DEPRECATED_API_USAGES "Deprecated API usages"
EXPERIMENTAL_API_USAGES "Experimental API usages"
INTERNAL_API_USAGES "Internal API usages"
OVERRIDE_ONLY_API_USAGES "Override-only API usages"
NON_EXTENDABLE_API_USAGES "Non-extendable API usages"
PLUGIN_STRUCTURE_WARNINGS "Plugin structure warnings"
MISSING_DEPENDENCIES "Missing dependencies"
INVALID_PLUGIN "The following files specified for the verification are not valid plugins"
NOT_DYNAMIC "Plugin cannot be loaded/unloaded without IDE restart"

Note: The default values are COMPATIBILITY_PROBLEMS and INVALID_PLUGIN for backwards compatibility. These were the two default checks as of authoring this capability. This may change in the future, but a minor version bump (at a minimum) will happen should that occur.

Results

The results of the execution are captured in a file for use in subsequent steps if you so choose.

You will need to give the intellij-platform-plugin-verifier-action step an id.

You can then access the verifier output file by using ${{steps.<id>.outputs.verification-output-log-filename}}.

In the below example, we use set the id to verify - this example will print the filename as well as the contents of the file as a subsequent step to the validation:

      - name: Verify Plugin on IntelliJ Platforms
        id: verify
        uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          ide-versions: |
            ideaIC:2019.3

      - name: Get log file path and print contents
        run: |
          echo "The verifier log file [${{steps.verify.outputs.verification-output-log-filename}}] contents : " ;
          cat ${{steps.verify.outputs.verification-output-log-filename}}

(Note: The file contents will include both stdout and stderr output from the plugin verification CLI.)

Examples

As examples of using this plugin you can check out following projects:

Contributing

Contributions welcomed! Feel free to open a PR, or issue.

Contributors

Chris Carini
Chris Carini

πŸ› πŸ’» πŸ“– πŸ’‘ πŸ€” 🚧 πŸ’¬ πŸ‘€
Peter Lin
Peter Lin

πŸ› πŸ’» πŸ€” πŸ““
takanuva15
takanuva15

πŸ› πŸ’» πŸš‡ 🚧
Dmitry
Dmitry

πŸ› πŸ’» πŸš‡ 🚧 πŸ““
Yann CΓ©bron
Yann CΓ©bron

πŸ› πŸ€” 🚧
Sergei Patrikeev
Sergei Patrikeev

πŸš‡ 🚧
Jakub Chrzanowski
Jakub Chrzanowski

πŸ€” πŸš‡ 🚧
Dominik Wojciechowski
Dominik Wojciechowski

πŸ€”
Filip Hrisafov
Filip Hrisafov

πŸ›
Patrick Scheibe
Patrick Scheibe

πŸ› πŸ€”
Alex Simons
Alex Simons

πŸ›
glex85
glex85

πŸ› πŸ““
Etan Shaul
Etan Shaul

πŸ€”
Yann
Yann

πŸ› πŸ’»

Debugging

This action has GitHub Actions Debug Logging.

To enable, set the following secret in the repository that contains the workflow using this action to true.

  • ACTIONS_STEP_DEBUG

You can find this under the repositories Settings -> Secrets menu.

intellij-platform-plugin-verifier-action's People

Contributors

allcontributors[bot] avatar chriscarini avatar dependabot[bot] avatar le-yams avatar peterlin741 avatar sadv1r avatar takanuva15 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

intellij-platform-plugin-verifier-action's Issues

Plugin Verifier has been compiled by a more recent version of the Java Runtime

Describe the bug
Recently started to get this error:
Error: Exception in thread "main" java.lang.UnsupportedClassVersionError: com/jetbrains/pluginverifier/PluginVerifierMain has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

I think this is because of this commit in Verifier

To Reproduce
Steps to reproduce the behavior:

  1. Run verification of plugin without changing default verifier version

Expected behavior
As always

Desktop (please complete the following information):

Cannot iterate over null (null)

Description

When I try to check compatibility with Github action, I faced below issue.
Please check this out.

Error Output
/usr/bin/docker run --name cf4eaa3aeb6624d2134085bb2430a5f0dafdb0_d2a56a --label cf4eaa --workdir /github/workspace --rm -e JAVA_HOME_8.0.312_x64 -e JAVA_HOME -e JAVA_HOME_8_0_312_X64 -e INPUT_IDE-VERSIONS -e INPUT_VERIFIER-VERSION -e INPUT_PLUGIN-LOCATION -e INPUT_FAILURE-LEVELS -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e GITHUB_ACTIONS=true -e CI=true --network github_network_e4461e3a7ae94c8faea51f3b2692117f -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/github/actions-runner/_work/_temp/_github_home":"/github/home" -v "/home/github/actions-runner/_work/_temp/_github_workflow":"/github/workflow" -v "/home/github/actions-runner/_work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/github/actions-runner/_work/sherlock-studio-plugin-gradle/sherlock-studio-plugin-gradle":"/github/workspace" cf4eaa:3aeb6624d2134085bb2430a5f0dafdb0 "LATEST" "build/distributions/*.zip" "ideaIC:2018.3.6
ideaIU:2018.3.6
ideaIC:2019.1.4
ideaIU:2019.1.4
ideaIC:2020.1.4
ideaIU:2020.1.4
ideaIC:2021.1.3
ideaIU:2021.1.3
" "COMPATIBILITY_PROBLEMS INVALID_PLUGIN"
Initializing...
jq: error (at :1): Cannot iterate over null (null)
Error: =======================================================
Error: ===-------------------------------------------------===
Error: === An unexpected error occurred. Status code [5].
Error: ===
Error: === Please consider opening a bug for the developer:
Error: === - Bug URL: https://github.com/ChrisCarini/intellij-platform-plugin-verifier-action/issues/new
Error: === - Status Code: 5
Error: ===-------------------------------------------------===
Error: =======================================================

Error downloading a valid Rider version

Hello,

I got the following error adding the riderRD:2022.2 ide version.

  Error: =======================================================================================
  Error: It appears the download of https://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/rider/riderRD/2022.2/riderRD-2022.2.zip did not contain the following:
  Error:     - status: 200
  Error:     - content-type: application/octet-stream
  Error: Actual response: HTTP/200 - content-type: application/x-zip-compressed
  Error: This can happen if riderRD:2022.2 is not a valid IDE / version. If you believe it is a
  Error: valid ide/version, please open an issue on GitHub:
  Error:      https://github.com/ChrisCarini/intellij-platform-plugin-verifier-action/issues/new
  Error: As a precaution, we are failing this execution.
  Error: =======================================================================================
  Error: Exiting due to a known, handled exception - invalid download headers when downloading an IDE.

Might be because of the content-type being application/x-zip-compressed (other working ide versions have a application/octet-stream content-type).

Regards,
Yann

Configuration file for "ide-versions" not working

Describe the bug
I am trying to use the "Configuration file" option for specifying the ide versions I would like to verify against. However, even after following the instructions in the README, it is giving me a generic error.

Build output:

Run ChrisCarini/intellij-platform-plugin-verifier-action@latest
  with:
    plugin-location: *.zip
    ide-versions: .github/workflows/ide_versions_to_verify.txt
    failure-levels: COMPATIBILITY_WARNINGS COMPATIBILITY_PROBLEMS DEPRECATED_API_USAGES INTERNAL_API_USAGES OVERRIDE_ONLY_API_USAGES NON_EXTENDABLE_API_USAGES PLUGIN_STRUCTURE_WARNINGS MISSING_DEPENDENCIES INVALID_PLUGIN NOT_DYNAMIC
  
    verifier-version: LATEST
/usr/bin/docker run --name a33c1e73c6416ae964a45a61fc7462ec98615_b9951d --label 8a33c1 --workdir /github/workspace --rm -e INPUT_PLUGIN-LOCATION -e INPUT_IDE-VERSIONS -e INPUT_FAILURE-LEVELS -e INPUT_VERIFIER-VERSION -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/intellij-autohotkey/intellij-autohotkey":"/github/workspace" 8a33c1:e73c6416ae964a45a61fc7462ec98615  "LATEST" "*.zip" ".github/workflows/ide_versions_to_verify.txt" "COMPATIBILITY_WARNINGS COMPATIBILITY_PROBLEMS DEPRECATED_API_USAGES INTERNAL_API_USAGES OVERRIDE_ONLY_API_USAGES NON_EXTENDABLE_API_USAGES PLUGIN_STRUCTURE_WARNINGS MISSING_DEPENDENCIES INVALID_PLUGIN NOT_DYNAMIC
"
Initializing...
Preparing all IDE versions specified...
Preparing [.github/workflows/ide_versions_to_verify.txt]...
  Error: =======================================================
  Error: ===-------------------------------------------------===
  Error: === An unexpected error occurred. Status code [1].
  Error: ===
  Error: === Please consider opening a bug for the developer:
  Error: ===    - Bug URL: https://github.com/ChrisCarini/intellij-platform-plugin-verifier-action/issues/new
  Error: ===    - Status Code: 1
  Error: ===-------------------------------------------------===
  Error: =======================================================

To Reproduce
Steps to reproduce the behavior:
This is what I have in my build_plugin.yml:

    - name: Verify Plugin Compatibility
      id: verify
      uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
      with:
        plugin-location: '*.zip'
        # NOTE: For ide-versions, we just need to verify IJ community & one non-IJ IDE.
        ide-versions: .github/workflows/ide_versions_to_verify.txt
        failure-levels: >
          COMPATIBILITY_WARNINGS
          COMPATIBILITY_PROBLEMS
          DEPRECATED_API_USAGES
          INTERNAL_API_USAGES
          OVERRIDE_ONLY_API_USAGES
          NON_EXTENDABLE_API_USAGES
          PLUGIN_STRUCTURE_WARNINGS
          MISSING_DEPENDENCIES
          INVALID_PLUGIN
          NOT_DYNAMIC

and this is the contents of ide_versions_to_verify.txt:

ideaIC:2020.1
ideaIC:LATEST-EAP-SNAPSHOT
pycharmPC:2020.1
pycharmPC:LATEST-EAP-SNAPSHOT

Expected behavior
It should work the same as if I just listed the 4 ide versions directly in the yml file like this:

- name: Verify Plugin Compatibility
      id: verify
      uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
      with:
        plugin-location: '*.zip'
        # NOTE: For ide-versions, we just need to verify IJ community & one non-IJ IDE.
        ide-versions |
          ideaIC:2020.1
          ideaIC:LATEST-EAP-SNAPSHOT
          pycharmPC:2020.1
          pycharmPC:LATEST-EAP-SNAPSHOT

(I have already tried the above configuration and it works fine, so it doesn't make sense why the text-file version doesn't work.)

Desktop (please complete the following information):

  • OS: The GitHub action is using whatever Dockerfile is being run by the action

Additional context
Build output link: https://github.com/Nordgedanken/intellij-autohotkey/pull/57/checks?check_run_id=2536385085

How to specify the SNAPSHOT version of an IDE within a specific year?

Hi, I want to verify my plugin using version 2022.1 and whatever the latest snapshot is within 2022.*. I am confused how to set up my ide-versions.txt file to do this?

Right now I have this but the build gives me an error:

ideaIC:2022.1
ideaIC:2022-SNAPSHOT

(Replacing the 2nd line with ideaIC:221-SNAPSHOT also doesn't work either)

Error:

Preparing [ideaIC:2022.1]...
  Downloading ideaIC ideaIC:2022.1 from [https://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/idea/ideaIC/2022.1/ideaIC-2022.1.zip] into [/github/home/ideaIC-2022.1.zip]...
  HTTP/200 - content-type: application/octet-stream
  test of /github/home/ideaIC-2022.1.zip OK
  Extracting [/github/home/ideaIC-2022.1.zip] into [/github/home/ides/ideaIC-2022.1]...
Preparing [ideaIC:221-SNAPSHOT]...
  Downloading ideaIC ideaIC:2022-SNAPSHOT from [https://www.jetbrains.com/intellij-repository/nightly/com/jetbrains/intellij/idea/ideaIC/2022-SNAPSHOT/ideaIC-2022-SNAPSHOT.zip] into [/github/home/ideaIC-2022-SNAPSHOT.zip]...
  curl: (6) Could not resolve host: repo.labs.intellij.net

Provide "LATEST" option for `verifier-version` to automatically update to the latest version of intellij-plugin-verifier

As a user of intellij-platform-plugin-verifier-action, I would like to be able to have a LATEST option for verifier-version that automatically updates to the most current version of intellij-plugin-verifier.

I would like this as a default to keep my workflow tidy, and not require constant updates to the workflow when new versions of intellij-plugin-verifier are released.

This stems from #1 and more details can be seen in this comment on the #1 bug.

Specifically, I'd like to have the following as a workflow step:

      - name: Verify Plugin on IntelliJ Platforms
        uses: ChrisCarini/[email protected]
        with:
          ide-versions: |
            ideaIC:2020.1
            ideaIU:2020.1
            ideaIC:LATEST-EAP-SNAPSHOT
            ideaIU:LATEST-EAP-SNAPSHOT

Handle failed curl call more cleanly

Suggestion

Add re-tries here.

Details

πŸ”— Link: https://github.com/ChrisCarini/automatic-github-issue-navigation-configuration-jetbrains-plugin/actions/runs/8054135464/job/21998040588?pr=253

Error:

Run ChrisCarini/intellij-platform-plugin-verifier-action@latest
/usr/bin/docker run --name fd90fdd7acb2a7558f4ccaaf4fbb3[10](https://github.com/ChrisCarini/automatic-github-issue-navigation-configuration-jetbrains-plugin/actions/runs/8054135464/job/21998040588?pr=253#step:8:11)4cd754f_d8e014 --label fd90fd --workdir /github/workspace --rm -e "JAVA_HOME" -e "JAVA_HOME_17_X64" -e "INPUT_IDE-VERSIONS" -e "INPUT_VERIFIER-VERSION" -e "INPUT_PLUGIN-LOCATION" -e "INPUT_FAILURE-LEVELS" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_ENVIRONMENT" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNNER_WORKSPACE" -e "ACTIONS_RUNTIME_URL" -e "ACTIONS_RUNTIME_TOKEN" -e "ACTIONS_CACHE_URL" -e "ACTIONS_RESULTS_URL" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/automatic-github-issue-navigation-configuration-jetbrains-plugin/automatic-github-issue-navigation-configuration-jetbrains-plugin":"/github/workspace" fd90fd:d7acb2a7558f4ccaaf4fbb3104cd754f  "LATEST" "build/distributions/*.zip" "build/intellij-platform-plugin-verifier-action-ide-versions-file.txt" "COMPATIBILITY_PROBLEMS INVALID_PLUGIN"
Initializing...
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                   Dload  Upload   Total   Spent    Left  Speed
  
    0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  100   7[14](https://github.com/ChrisCarini/automatic-github-issue-navigation-configuration-jetbrains-plugin/actions/runs/8054135464/job/21998040588?pr=253#step:8:15)  100   714    0     0  23219      0 --:--:-- --:--:-- --:--:-- 23800
  jq: error (at <stdin>:1): Cannot iterate over null (null)
  Error: =======================================================
  Error: ===-------------------------------------------------===
  Error: === An unexpected error occurred. Status code [5].
  Error: ===
  Error: === Please consider opening a bug for the developer:
  Error: ===    - Bug URL: https://github.com/ChrisCarini/intellij-platform-plugin-verifier-action/issues/new
  Error: ===    - Status Code: 5
  Error: ===-------------------------------------------------===
  Error: =======================================================

Config file with IDE versions to check

Is your feature request related to a problem? Please describe.
I would like to have another option to specify IDE versions. I would like to change the action file only when the workflow itself should be changed, not only parameters (mostly not relevant for workflow itself). In that case, I would have a clean file change history.

Describe the solution you'd like
I would like to have an option to specify the location to config file with platforms to be validated with (json/yaml/properties/csv/txt, does not matter too much).

    - name: Verify Plugin on IntelliJ Platforms
      id: verify
      uses: ChrisCarini/[email protected]
      with:
        config-path : my/config/location/config.txt

So then example config might look like this

    ideaIC:2019.3
    ideaIU:2019.3
    pycharmPC:2019.3
    goland:2019.3
    clion:2019.3
    ideaIC:LATEST-EAP-SNAPSHOT

Improve output readability: warnings vs errors

Hello! we are successfully using this verifier on our plugin's repo. We have it configured currently so that only compatibility_problems stop the build. We do unfortunately have a lot of deprecation warnings as well that we intend to fix at some point. However, it is currently quite hard to parse the output of the check to get at the actual blocking issue.

Request:

Format the verification output in such a way that makes it easier to get out the violations of the configured failure_levels. I'm leaving it open as to how that would look, but currently we have to scroll through a lot of logs / make extensive use of ctrl+f.

False positive from action when verifier jar fails to execute (eg jar upgrade to Java 11)

Describe the bug
When running the action in my PR, it returns a success result even though the jar file was never actually executed due to an incompatible binary error due to the verifier jar's recent upgrade to Java 11.

To Reproduce
Steps to reproduce the behavior:

  1. Run the action using the tag ChrisCarini/intellij-platform-plugin-verifier-action@latest and any IDE version.

Expected behavior
The github action should fail since the jar file was never executed correctly.

Screenshots
image

Running verification on /github/workspace/*.zip for /github/home/ides/ideaIC-2020.1 /github/home/ides/ideaIC-2021.1 /github/home/ides/ideaIC-LATEST-EAP-SNAPSHOT /github/home/ides/pycharmPC-2020.1 /github/home/ides/pycharmPC-2021.1 /github/home/ides/pycharmPC-LATEST-EAP-SNAPSHOT...
  ##[debug]RUNNING COMMAND: java -jar "/github/home/verifier-cli-1.266-all.jar" check-plugin /github/workspace/*.zip /github/home/ides/ideaIC-2020.1 /github/home/ides/ideaIC-2021.1 /github/home/ides/ideaIC-LATEST-EAP-SNAPSHOT /github/home/ides/pycharmPC-2020.1 /github/home/ides/pycharmPC-2021.1 /github/home/ides/pycharmPC-LATEST-EAP-SNAPSHOT
  Error: A JNI error has occurred, please check your installation and try again
  Exception in thread "main" java.lang.UnsupportedClassVersionError: com/jetbrains/pluginverifier/PluginVerifierMain has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
  	at java.lang.ClassLoader.defineClass1(Native Method)
  	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
  	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
  	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
  	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
  	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
  	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
  	at java.security.AccessController.doPrivileged(Native Method)
  	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
  	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
  	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
  ::endgroup::
::set-output name=verification-output-log-filename::verification_result.log
##[debug]steps['verify']['outputs']['verification-output-log-filename']='verification_result.log'
::group::Running validations against output...
Running validations against output...
  ##[debug]
  Checking for the presence of [Compatibility warnings] in the verifier output...
...

Desktop (please complete the following information):

  • OS: GitHub action - OS is whatever the dockerfile is using

Additional context
There is 2 problems here:

  1. The action should immediately fail if the execution of the jar results in exit code 1 (ie any exception).
  2. The dockerfile needs to be updated to use a base image with java 11

EDIT:

Ok so actually I see that the dockerfile was updated recently to java 11, so point #2 above is nulled. However, I can see that the "latest" tag is not actually pointing to the new v1.0.7 made recently, which would be the source of the issue. The v1.0.7 also seems to fix Point #2 above, so it's just a matter of updating the latest tag to point to v1.0.7 to resolve both issues

Small feature request: Improve log output

If you have too much time on your hands, here are some small things that would improve the readability of the action's log drastically:

  1. Use some quiet option for the curl call to download the IDE zips. I'm not sure how other users feel, but when I scroll through the log to find the verifier output, the download progress of the zips is of no interest and just takes vertical space
  2. Would it be possible to have "closable sections" for each step that can be opened like in the checkout action?
    image
    With this, the verifier log would be extremely easy to read if one had sections Initialization, Verification against IUXXX, Verification against ICXXX, ... Right now, that's kind of hard to read
  3. Have you tried which error message you get when you verify against an IDE that does not exist like ideaIC:200? I remember the error message was coming from unzip which could not unpack an unknown format. If possible, it would be better to give something clear like "could not download ..."

[Question] Should comparability problems cause failures?

I would have expected if there where compatibility issues with a plugin against a specific IDE version that the action would exit unsuccessfully, is that not the intended behavior? Is this an issue with the verifier itself?

Action run in question

Compatibility problems (2): 
    #Access to unresolved class com.intellij.util.ui.JBUI.CurrentTheme.Link.Foreground
        Method io.unthrottled.doki.settings.ThemeSettingsUI.createUIComponents() : void references an unresolved class com.intellij.util.ui.JBUI.CurrentTheme.Link.Foreground. This can lead to **NoSuchClassError** exception at runtime.
    #Invocation of unresolved method java.util.Optional.isEmpty() : boolean
        Method io.unthrottled.doki.stickers.EditorBackgroundWallpaperService.installEditorBackgroundImage$2.invoke() : void contains an *invokevirtual* instruction referencing an unresolved method java.util.Optional.isEmpty() : boolean. This can lead to **NoSuchMethodError** exception at runtime.

Unzip failing

Not sure if I am doing something wrong or there is some other problem.

I am getting

Extracting [/github/home/ideaIC-2020.2.zip] into [/github/home/ides/ideaIC-2020.2]...
unzip: can't read standard input

And the verification fails. The action is here.

Support different failure levels, similar to the Gradle IntelliJ Plugin

By default, this action passes and the status on Github is displayed as successful if the report is successfully generated. It would be great to add support for different levels of failures.

Slack reference: https://jetbrains-platform.slack.com/archives/C012S7PA8CQ/p1604356021010900

The Gradle IntelliJ Plugin, supports a failingLevel property that allows you to fail the task by explicitly specifying the level of failure, which can be added as an input in the yaml file.

https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl

Possible levels: https://github.com/JetBrains/gradle-intellij-plugin/blob/ea5eb75548af4b368f2bd981d8c2d338edb3208d/src/main/groovy/org/jetbrains/intellij/tasks/RunPluginVerifierTask.groovy#L29

    static enum FailureLevel {
        COMPATIBILITY_WARNINGS("Compatibility warnings"),
        COMPATIBILITY_PROBLEMS("Compatibility problems"),
        DEPRECATED_API_USAGES("Deprecated API usages"),
        EXPERIMENTAL_API_USAGES("Experimental API usages"),
        INTERNAL_API_USAGES("Internal API usages"),
        OVERRIDE_ONLY_API_USAGES("Override-only API usages"),
        NON_EXTENDABLE_API_USAGES("Non-extendable API usages"),
        PLUGIN_STRUCTURE_WARNINGS("Plugin structure warnings"),
        MISSING_DEPENDENCIES("Missing dependencies"),
        INVALID_PLUGIN("The following files specified for the verification are not valid plugins"),
        NOT_DYNAMIC("Plugin cannot be loaded/unloaded without IDE restart");

Unknown Failure Identified!

Please check my errors below

Running verification on /github/workspace/build/distributions/.zip for /github/home/ides/ideaIC-2018.3 /github/home/ides/ideaIC-2019.1 /github/home/ides/ideaIC-2020.1 /github/home/ides/ideaIC-2021.1 /github/home/ides/ideaIC-2022.2...
##[debug]RUNNING COMMAND: java -jar "/github/home/verifier-cli-1.256-all.jar" check-plugin /github/workspace/build/distributions/
.zip /github/home/ides/ideaIC-2018.3 /github/home/ides/ideaIC-2019.1 /github/home/ides/ideaIC-2020.1 /github/home/ides/ideaIC-2021.1 /github/home/ides/ideaIC-2022.2
Starting the IntelliJ Plugin Verifier 1.256
Verification reports directory: verification-2022-10-19 at 06.12.49
2022-10-19T06:12:50 [main] INFO verification - Reading IDE /github/home/ides/ideaIC-2018.3
2022-10-19T06:12:50 [main] INFO c.j.p.options.OptionsParser - Preparing IDE /github/home/ides/ideaIC-2018.3
Using Java from JAVA_HOME: /opt/java/openjdk
2022-10-19T06:12:58 [main] INFO verification - Reading IDE /github/home/ides/ideaIC-2019.1
2022-10-19T06:12:58 [main] INFO c.j.p.options.OptionsParser - Preparing IDE /github/home/ides/ideaIC-2019.1
Using Java from JAVA_HOME: /opt/java/openjdk
2022-10-19T06:13:02 [main] INFO verification - Reading IDE /github/home/ides/ideaIC-2020.1
2022-10-19T06:13:02 [main] INFO c.j.p.options.OptionsParser - Preparing IDE /github/home/ides/ideaIC-2020.1
Using Java from JAVA_HOME: /opt/java/openjdk
2022-10-19T06:13:07 [main] INFO verification - Reading IDE /github/home/ides/ideaIC-2021.1
2022-10-19T06:13:07 [main] INFO c.j.p.options.OptionsParser - Preparing IDE /github/home/ides/ideaIC-2021.1
Using Java from JAVA_HOME: /opt/java/openjdk
2022-10-19T06:13:13 [main] INFO verification - Reading IDE /github/home/ides/ideaIC-2022.2
2022-10-19T06:13:13 [main] INFO c.j.p.options.OptionsParser - Preparing IDE /github/home/ides/ideaIC-2022.2
Error: Exception in thread "main" com.jetbrains.plugin.structure.ide.InvalidIdeException: IDE by path '/github/home/ides/ideaIC-2022.2' is invalid: Plugin 'lib/app.jar' is invalid: Invalid plugin descriptor 'IdeaPlugin.xml': failed to resolve xi:include. Not found document 'intellij.platform.feedback.xml' referenced in <xi:include href="intellij.platform.feedback.xml"/>. xi:fallback element is not provided. (at IdeaPlugin.xml -> /META-INF/JavaIdePlugin.xml -> /META-INF/PlatformLangPlugin.xml)
at com.jetbrains.plugin.structure.ide.IdeManagerImpl.createBundledPluginExceptionally(IdeManagerImpl.kt:244)
at com.jetbrains.plugin.structure.ide.IdeManagerImpl.readPlatformPlugins(IdeManagerImpl.kt:198)
at com.jetbrains.plugin.structure.ide.IdeManagerImpl.readDistributionBundledPlugins(IdeManagerImpl.kt:68)
at com.jetbrains.plugin.structure.ide.IdeManagerImpl.createIde(IdeManagerImpl.kt:56)
at com.jetbrains.plugin.structure.ide.IdeManagerImpl.createIde(IdeManagerImpl.kt:25)
at com.jetbrains.pluginverifier.ide.IdeDescriptor$Companion.create(IdeDescriptor.kt:59)
at com.jetbrains.pluginverifier.options.OptionsParser.createIdeDescriptor(OptionsParser.kt:78)
at com.jetbrains.pluginverifier.options.OptionsParser.createIdeDescriptor(OptionsParser.kt:73)
at com.jetbrains.pluginverifier.tasks.checkPlugin.CheckPluginParamsBuilder.build(CheckPluginParamsBuilder.kt:38)
at com.jetbrains.pluginverifier.tasks.checkPlugin.CheckPluginParamsBuilder.build(CheckPluginParamsBuilder.kt:23)
at com.jetbrains.pluginverifier.PluginVerifierMain.main(PluginVerifierMain.kt:123)
::endgroup::
::set-output name=verification-output-log-filename::verification_result.log

Retag @latest to point to @v1.0.5

Currently the latest tag is pointing to an older release of this action. Can we please move it to point to v1.0.5?
(I tried using the "failure_levels" property and it failed saying unknown property since the latest version is apparently not the latest lol)

GITHUB_TOKEN permissions used by this action

At https://github.com/step-security/secure-workflows we are building a knowledge-base (KB) of GITHUB_TOKEN permissions needed by different GitHub Actions. When developers try to set minimum token permissions for their workflows, they can use this knowledge-base instead of trying to research permissions needed by each GitHub Action they use.
Below you can see the KB of your GITHUB Action.

name: 'IntelliJ Platform Plugin Verifier'
#Only metadata permission is required to avoid github rate limiting which gets added by default
#So no permission is needed for this action
#Reference: https://github.com/ChrisCarini/intellij-platform-plugin-verifier-action#github-token-authentication

This issue is automatically created by our analysis bot, feel free to close after reading :)

References:

GitHub asks users to define workflow permissions, see https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/ and https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token for securing GitHub workflows against supply-chain attacks.
Setting minimum token permissions is also checked for by Open Source Security Foundation (OpenSSF) Scorecards. Scorecards recommend using https://github.com/step-security/secure-workflows so developers can fix this issue in an easier manner.

PluginRepositoryException while running verifier jar: 400 Bad Request

Describe the bug
Getting a PluginRepositoryException with error 400 while the action is trying to run the verifier jar

To Reproduce
Steps to reproduce the behavior:

  1. Use v1.0.7 in a github action. The ides I'm testing are:
ideaIC:2021.2
ideaIC:LATEST-EAP-SNAPSHOT
pycharmPC:2021.2
pycharmPC:LATEST-EAP-SNAPSHOT

Expected behavior
No error

Screenshots

Using Java from JAVA_HOME: /opt/java/openjdk
  2021-08-10T01:42:22 [main] ERROR LanguageUtils - Failed attempt #1 of 5 to invoke 'All versions of plugin '/github/workspace/*.zip' compatible with IC-212.4746.92'. Wait for 30000 millis to reattempt
  org.jetbrains.intellij.pluginRepository.PluginRepositoryException: <!doctype html><html lang="en"><head><title>HTTP Status 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html>
  Request failed. Status code 400.
  	at org.jetbrains.intellij.pluginRepository.internal.utils.RequestHelperKt.executeAndParseBody(RequestHelper.kt:30)
  	at org.jetbrains.intellij.pluginRepository.internal.instances.PluginManagerInstance.getPluginByXmlId(PluginManagerInstance.kt:32)
  	at org.jetbrains.intellij.pluginRepository.PluginManager$DefaultImpls.getPluginByXmlId$default(PluginRepository.kt:18)
  	at com.jetbrains.pluginverifier.repository.repositories.marketplace.MarketplaceRepository.getAllVersionsOfPlugin(MarketplaceRepository.kt:57)
  	at com.jetbrains.pluginverifier.options.PluginsParsing$addAllCompatibleVersionsOfPlugin$compatibleVersions$1.invoke(PluginsParsing.kt:166)
  	at com.jetbrains.pluginverifier.options.PluginsParsing$addAllCompatibleVersionsOfPlugin$compatibleVersions$1.invoke(PluginsParsing.kt:26)
  	at com.jetbrains.pluginverifier.misc.RetryUtilKt.retry(RetryUtil.kt:23)
  	at com.jetbrains.pluginverifier.misc.RetryUtilKt.retry$default(RetryUtil.kt:17)
  	at com.jetbrains.pluginverifier.options.PluginsParsing.addAllCompatibleVersionsOfPlugin(PluginsParsing.kt:165)
  	at com.jetbrains.pluginverifier.options.PluginsParsing.addPluginBySpec(PluginsParsing.kt:138)
  	at com.jetbrains.pluginverifier.tasks.checkPlugin.CheckPluginParamsBuilder.build(CheckPluginParamsBuilder.kt:54)
  	at com.jetbrains.pluginverifier.tasks.checkPlugin.CheckPluginParamsBuilder.build(CheckPluginParamsBuilder.kt:23)
  	at com.jetbrains.pluginverifier.PluginVerifierMain.main(PluginVerifierMain.kt:125)
  2021-08-10T01:42:52 [main] ERROR LanguageUtils - Failed attempt #2 of 5 to invoke 'All versions of plugin '/github/workspace/*.zip' compatible with IC-212.4746.92'. Wait for 30000 millis to reattempt

Additional context
Build info: https://github.com/Nordgedanken/intellij-autohotkey/pull/59/checks?check_run_id=3286505927

Does not work cleanly with EAP versions.

NOTE: 241.14494.17 is an EAP version (platformVersion = 241.14494.17-EAP-SNAPSHOT).

Preparing [ideaIC:241.14494.17]...
  Downloading ideaIC ideaIC:241.14494.17 from [https://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/idea/ideaIC/241.14494.17/ideaIC-241.14494.17.zip] into [/github/home/ideaIC-241.14494.17.zip]...
  Error: =======================================================
  Error: ===-------------------------------------------------===
  Error: === An unexpected error occurred. Status code [1].
  Error: ===
  Error: === Please consider opening a bug for the developer:
  Error: ===    - Bug URL: https://github.com/ChrisCarini/intellij-platform-plugin-verifier-action/issues/new
  Error: ===    - Status Code: 1
  Error: ===-------------------------------------------------===
  Error: =======================================================

Action fails due to "No space left on device"

The action will fail early if there are several options passed into ide-versions.

Example workflow.yml:

name: IntelliJ Plugin Compatibility

on:
  push:

jobs:
  compatibility:
    name: Ensure plugin compatibility against 2020.1 & the latest EAP snapshot for both IDEA Community, IDEA Ultimate.

    runs-on: ubuntu-latest

    steps:
      - name: Check out repository
        uses: actions/checkout@v1

      - name: Setup Java 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: Build the plugin using Gradle
        run: ./gradlew buildPlugin

      - name: Verify Plugin on IntelliJ Platforms
        id: verify
        uses: ChrisCarini/[email protected]
        with:
          verifier-version: '1.231'
          ide-versions: |
            ideaIC:2020.1
            ideaIU:2020.1
            ideaIC:LATEST-EAP-SNAPSHOT
            ideaIU:LATEST-EAP-SNAPSHOT

This will fail on the Verify Plugin on IntelliJ Platforms with unzip: write: No space left on device dueing unzipping the downloaded IDE.

Some example executions:

  1. https://github.com/ChrisCarini/environment-variable-settings-summary-intellij-plugin/runs/596964147?check_suite_focus=true
  2. https://github.com/ChrisCarini/jetbrains-auto-power-saver/runs/596963265?check_suite_focus=true

Unknown Failure Identified!

Description

It has an error when I try to verify pycharm 2021.3

Running verification on /github/workspace/build/distributions/*.zip for /github/home/ides/pycharmPC-2019.3 /github/home/ides/pycharmPC-2020.3 /github/home/ides/pycharmPC-2021.3 /github/home/ides/pycharmPC-LATEST-EAP-SNAPSHOT...
  ##[debug]RUNNING COMMAND: java -jar "/github/home/verifier-cli-1.256-all.jar" check-plugin /github/workspace/build/distributions/*.zip /github/home/ides/pycharmPC-2019.3 /github/home/ides/pycharmPC-2020.3 /github/home/ides/pycharmPC-2021.3 /github/home/ides/pycharmPC-LATEST-EAP-SNAPSHOT
  Starting the IntelliJ Plugin Verifier 1.256
  Verification reports directory: verification-2021-12-10 at 07.53.30
  2021-12-10T07:53:30 [main] INFO  verification - Reading IDE /github/home/ides/pycharmPC-2019.3
  2021-12-10T07:53:30 [main] INFO  c.j.p.options.OptionsParser - Preparing IDE /github/home/ides/pycharmPC-2019.3
  Using Java from JAVA_HOME: /opt/java/openjdk
  2021-12-10T07:53:36 [main] INFO  verification - Reading IDE /github/home/ides/pycharmPC-2020.3
  2021-12-10T07:53:36 [main] INFO  c.j.p.options.OptionsParser - Preparing IDE /github/home/ides/pycharmPC-2020.3
  Using Java from JAVA_HOME: /opt/java/openjdk
  2021-12-10T07:53:40 [main] INFO  verification - Reading IDE /github/home/ides/pycharmPC-2021.3
  2021-12-10T07:53:40 [main] INFO  c.j.p.options.OptionsParser - Preparing IDE /github/home/ides/pycharmPC-2021.3
  Error: Exception in thread "main" com.jetbrains.plugin.structure.ide.InvalidIdeException: IDE by path '/github/home/ides/pycharmPC-2021.3' is invalid: Plugin 'lib/pycharm.jar' is invalid: Invalid plugin descriptor 'PyCharmCorePlugin.xml': failed to resolve <xi:include>. Not found document 'intellij.platform.remoteServers.impl.xml' referenced in <xi:include href="intellij.platform.remoteServers.impl.xml"/>. <xi:fallback> element is not provided. (at PyCharmCorePlugin.xml -> /META-INF/pycharm-core.xml)
  	at com.jetbrains.plugin.structure.ide.IdeManagerImpl.createBundledPluginExceptionally(IdeManagerImpl.kt:244)
  	at com.jetbrains.plugin.structure.ide.IdeManagerImpl.readPlatformPlugins(IdeManagerImpl.kt:198)
  	at com.jetbrains.plugin.structure.ide.IdeManagerImpl.readDistributionBundledPlugins(IdeManagerImpl.kt:68)
  	at com.jetbrains.plugin.structure.ide.IdeManagerImpl.createIde(IdeManagerImpl.kt:56)
  	at com.jetbrains.plugin.structure.ide.IdeManagerImpl.createIde(IdeManagerImpl.kt:25)
  	at com.jetbrains.pluginverifier.ide.IdeDescriptor$Companion.create(IdeDescriptor.kt:59)
  	at com.jetbrains.pluginverifier.options.OptionsParser.createIdeDescriptor(OptionsParser.kt:78)
  	at com.jetbrains.pluginverifier.options.OptionsParser.createIdeDescriptor(OptionsParser.kt:73)
  	at com.jetbrains.pluginverifier.tasks.checkPlugin.CheckPluginParamsBuilder.build(CheckPluginParamsBuilder.kt:38)
  	at com.jetbrains.pluginverifier.tasks.checkPlugin.CheckPluginParamsBuilder.build(CheckPluginParamsBuilder.kt:23)
  	at com.jetbrains.pluginverifier.PluginVerifierMain.main(PluginVerifierMain.kt:123)
  ::endgroup::

Unknown Failure Identified!

I faced below error when executing verifier jar file.

::group::Running verification on /github/workspace/build/distributions/.zip for /github/home/ides/ideaIC-2019.1.4 /github/home/ides/ideaIU-2019.1.4...
Running verification on /github/workspace/build/distributions/
.zip for /github/home/ides/ideaIC-2019.1.4 /github/home/ides/ideaIU-2019.1.4...
##[debug]RUNNING COMMAND: java -jar "/github/home/verifier-cli-1.256-all.jar" check-plugin /github/workspace/build/distributions/*.zip /github/home/ides/ideaIC-2019.1.4 /github/home/ides/ideaIU-2019.1.4
Error: Invalid or corrupt jarfile /github/home/verifier-cli-1.256-all.jar
::endgroup::
::set-output name=verification-output-log-filename::verification_result.log
##[debug]steps['verify']['outputs']['verification-output-log-filename']='verification_result.log'
::group::Running validations against output...
Running validations against output...
Error: =======================================================
Error: =======================================================
Error: === ===
Error: === UNKNOWN FAILURE DURING VERIFICATION CHECK ===
Error: === ===
Error: === NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! ===
Error: === ===
Error: === The verifier exited with a status code of 0 ===
Error: === and was unable to identify a known failure ===
Error: === from the verifier. Consider opening an ===
Error: === issue with the maintainers of this GitHub ===
Error: === Action to notify them. A link is provided ===
Error: === below: ===
Error: ===-------------------------------------------------===
Error: === Bug URL: https://github.com/ChrisCarini/intellij-platform-plugin-verifier-action/issues/new?labels=enhancement%2C+unknown-failure&template=unknown-failure-during-verification-check.md&title=Unknown+Failure+Identified%21
Error: ===-------------------------------------------------===
##[debug]Script exited with status code [68].
Error: Exiting due to an unhandled plugin validation failure.
##[debug]Docker Action run completed with exit code 68
##[debug]Finishing: Verify Plugin on IntelliJ Platforms

Getting "Failed to open file writer for verification-2024-04-07..." error

Describe the bug
When running the action with the below versions, I get the below error.

Versions:

ideaIC:2024.1
ideaIC:241-EAP-SNAPSHOT
pycharmPC:2024.1
pycharmPC:241-EAP-SNAPSHOT

Error:

2024-04-07T03:07:44 [main] INFO  verification - Finished 1 of 4 verifications (in 3.3 s): PC-241.14494.241 against de.nordgedanken.auto_hotkey:0.10.4: 2 compatibility problems
  2024-04-07T03:07:44 [verifier_4] ERROR c.j.p.reporting.common.FileReporter - Failed to open file writer for verification-2024-04-07 at 03.07.20/PC-241.14494.241/plugins/de.nordgedanken.auto_hotkey/0.10.4/verification-verdict.txt
  java.nio.file.FileAlreadyExistsException: verification-2024-04-07 at 03.07.20/PC-241.14494.241/plugins/de.nordgedanken.auto_hotkey/0.10.4/verification-verdict.txt
  	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:94)
  	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
  	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
  	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
  	at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
  	at java.base/java.nio.file.Files.createFile(Files.java:658)
  	at com.jetbrains.plugin.structure.base.utils.FileUtilKt.create(FileUtil.kt:[73](https://github.com/Nordgedanken/intellij-autohotkey/actions/runs/8585720643/job/23527486867?pr=75#step:5:79))at com.jetbrains.pluginverifier.reporting.common.FileReporter.openFileWriter(FileReporter.kt:31)
  	at com.jetbrains.pluginverifier.reporting.common.FileReporter.report(FileReporter.kt:44)
  	at com.jetbrains.pluginverifier.reporting.DirectoryBasedPluginVerificationReportage.useReporter(DirectoryBasedPluginVerificationReportage.kt:113)
  	at com.jetbrains.pluginverifier.reporting.DirectoryBasedPluginVerificationReportage.reportVerificationDetails(DirectoryBasedPluginVerificationReportage.kt:159)
  	at com.jetbrains.pluginverifier.reporting.DirectoryBasedPluginVerificationReportage.reportVerificationResult(DirectoryBasedPluginVerificationReportage.kt:123)
  	at com.jetbrains.pluginverifier.PluginVerifierRunKt.runSeveralVerifiers$lambda$3$lambda$2(PluginVerifierRun.kt:37)
  	at com.jetbrains.plugin.structure.base.utils.ExecutorWithProgress$TimedCallable.call(ConcurrencyUtils.kt:133)
  	at com.jetbrains.plugin.structure.base.utils.ExecutorWithProgress$TimedCallable.call(ConcurrencyUtils.kt:127)
  	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
  	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
  	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
  	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
  	at java.base/java.lang.Thread.run(Thread.java:[84](https://github.com/Nordgedanken/intellij-autohotkey/actions/runs/8585720643/job/23527486867?pr=75#step:5:90)0)

Link to the full original job output: https://github.com/Nordgedanken/intellij-autohotkey/actions/runs/8585720643/job/23527486867?pr=75

To Reproduce
Steps to reproduce the behavior:

This is my yml config:

    # Run IntelliJ Plugin Verifier action using GitHub Action
    - name: Verify Plugin Compatibility
      id: verify
      uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        plugin-location: '*.zip'
        # NOTE: For ide-versions, we just need to verify IJ community & one non-IJ IDE.
        ide-versions: .github/workflows/ide_versions_to_verify.txt
        failure-levels: |
          COMPATIBILITY_WARNINGS
          COMPATIBILITY_PROBLEMS
          DEPRECATED_API_USAGES
          INTERNAL_API_USAGES
          OVERRIDE_ONLY_API_USAGES
          NON_EXTENDABLE_API_USAGES
          PLUGIN_STRUCTURE_WARNINGS
          MISSING_DEPENDENCIES
          INVALID_PLUGIN
          NOT_DYNAMIC

Link to yml build file in PR

Expected behavior
Should not fail with file write error, but show me actual deprecated APIs instead

Screenshots
N/A

Desktop (please complete the following information):

  • GitHub actions

Smartphone (please complete the following information):
N/A

Additional context
N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.