A GitHub Action for executing the JetBrains intellij-plugin-verifier.
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@v0.0.2
with:
ide-versions: |
ideaIC:2019.3
- Create a
.yml
(or.yaml
) file in your GitHub repository's.github/workflows
folder. We will call this filecompatibility.yml
below. - 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@v0.0.2 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}}
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. |
Required |
An example using all the available options is below:
- name: Verify Plugin on IntelliJ Platforms
id: verify
uses: ChrisCarini/intellij-platform-plugin-verifier-action@v0.0.2
with:
verifier-version: '1.230'
plugin-location: 'build/distributions/sample-intellij-plugin-*.zip'
ide-versions: |
ideaIC:LATEST-EAP-SNAPSHOT
This optional input allows users to pin a specific version of intellij-plugin-verifier
to be used during validation.
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).
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.
- Navigate to the IntelliJ Releases Repository
- Find the IDE and version you wish to use.
- Copy the URL for the
.zip
. - Take only the
.zip
filename from the URL; example below:becomeshttps://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/pycharm/pycharmPY/2019.3/pycharmPY-2019.3.zip
pycharmPY-2019.3.zip
- Replace the
-
with a:
, and remove the.zip
from the end; example below:becomespycharmPY-2019.3.zip
pycharmPY:2019.3
- This is the value you will use in
ide-versions
.
- CLion =
clion
- GoLand =
goland
- IntelliJ IDEA
- IntelliJ IDEA Community =
ideaIC
- IntelliJ IDEA Ultimate =
ideaIU
- IntelliJ IDEA Community =
- PyCharm
- PyCharm Community =
pycharmPC
- PyCharm Professional =
pycharmPY
- PyCharm Community =
- Rider =
riderRD
- 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
- versions ending in
- Latest EAP version (ie,
LATEST-EAP-SNAPSHOT
)
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@v0.0.2
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.)
As examples of using this plugin you can check out following projects:
- Automatic Power Saver - Automatically enable / disable power save mode on window focus changes.
- Environment Variable Settings Summary - Provides all system environment variables for troubleshooting.
- Logshipper - Ship your IDE logs to a logstash service.
- intellij-sample-notification - Displays a simple notification upon Project Open.
Contributions welcomed! Feel free to open a PR, or issue.
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.