Webinar Recording: Busy Plugin Developers – Episode 1
The recording of the latest episode of the “Busy Plugin Developers” webinar is now available on JetBrains TV. In this webinar, we covered a key plugin development tool – the Gradle IntelliJ Plugin. We explained the key features, the recent changes that we’ve introduced, and how the plugin signing mechanism works in JetBrains Marketplace. We also featured a special guest from VirtusLab, Paweł Lipski, who gave a demo of plugin UI testing and shared some tips on how to run your tests headlessly on a Continuous Integration (CI) server.
Based on the webinar, we created a short summary in the form of Q&A:
Gradle IntelliJ Plugin
Q: How do I get started with the Gradle IntelliJ Plugin?
A: Creating a new Gradle-based IntelliJ Platform plugin can be handled with the New Project wizard or the IntelliJ Platform Plugin Template.
Q: What are the most significant new changes to the Gradle IntelliJ Plugin, and how do I upgrade?
A: Here are some of the key changes in the latest release:
- The plugin has been completely rewritten in Kotlin, improving the development experience.
- There is now Lazy Configuration support, which delays a property’s value calculation until it’s actually needed.
- The Integrated Plugin Signing feature has been added, meaning the
signPlugintask is available as a part of the plugin.
Q: How does signing work in JetBrains Marketplace?
A: The Marketplace signing mechanism is designed to ensure that plugins are not modified over the course of the publishing and delivery pipeline. Each plugin should be signed twice, by JetBrains Marketplace and by the plugin author, using a certificate chain. If the plugin is not signed by the author or if a certificate has been revoked, a warning dialog will appear during installation.
Q: How to sign your plugin?
A: Plugin authors can sign their plugins using a custom certificate. There are 3 ways to sign your plugin:
- Using the Gradle IntelliJ Plugin
- Using the Java command line interface
- Using the Java library
You can learn more about the plugin signing process in this article.
Q: What tools can be used for plugin UI testing?
A: The UI testing tools presented in the webinar were:
- intellij-ui-test-robot library by JetBrains
- ide-probe library by VirtusLab
This library makes it possible to run the IDE under test programmatically, directly from test code. This functionality is similar to how Testcontainers help manage the lifecycle of Docker containers.
Q: How can I run UI tests headlessly in a CI environment?
A: You can use Xvfb (X Virtual Frame buffer), which is a display server that can be used on machines with no graphical interface or display output (for example, a CI server). It imitates a display by means of virtual memory. Use
xvfb-run to launch the tests. Please note that the support for
xvfb-run is also included in ide-probe, with the use of the
IDEPROBE_DISPLAY=xvfb environment variable.
Because we have received so many questions about plugin UI testing, we’ve created a separate Slack channel for questions and discussions about it. You can join the channel here: #intellij-platform-ui-testing.