Repository navigation
WIN-24578 :: Add Rider plugin support for .net projects #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
bbabb8a
e02c494
54acb39
1227d3a
7384109
272389e
736e44f
35a42d4
eb786a9
47ef2d7
db1fbbd
040e4af
bde8465
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,95 @@ | ||
| # Builds the Windows installers (installer/build-installer.ps1): the self-contained | ||
| # install-intellij-ib-plugin.ps1 and the intellij-ib-plugin.exe self-extracting installer. | ||
| # Windows-only: the .exe needs csc.exe and 7-Zip, and the standalone script is run with Windows | ||
| # PowerShell, which is also what assembles it here (see installer/README.md). | ||
| # | ||
| # - Called by the Release workflow with the release's tag: packages the exact plugin zip that | ||
| # release published and attaches both installers to it. | ||
| # - Run by hand (Actions > Installers > Run workflow) to try it out before a release: | ||
| # - with no tag, it builds the plugin from the selected branch and only uploads the installers | ||
| # as a workflow artifact - no release is touched; | ||
| # - with an existing release's tag, it does exactly what the Release workflow does for that | ||
| # release, e.g. to re-attach installers after a failed run. | ||
| # (GitHub only offers "Run workflow" once this file is on the default branch.) | ||
| # - On pull requests that change the installers, the same as a manual run without a tag - so a | ||
| # change to them is exercised before it ever reaches a release. | ||
|
|
||
| name: Installers | ||
| on: | ||
| workflow_call: | ||
| inputs: | ||
| tag: | ||
| description: Release tag whose plugin zip to package, and to attach the installers to. | ||
| required: true | ||
| type: string | ||
| pull_request: | ||
| paths: | ||
| - installer/** | ||
| - .github/workflows/installers.yml | ||
| workflow_dispatch: | ||
| inputs: | ||
| tag: | ||
| description: Release tag to package and attach to. Leave empty to build from this branch and upload a workflow artifact only. | ||
| required: false | ||
| type: string | ||
|
|
||
| jobs: | ||
| installers: | ||
| name: Build Installers | ||
| runs-on: windows-latest | ||
| permissions: | ||
| contents: write | ||
| env: | ||
| TAG: ${{ inputs.tag }} | ||
| GITHUB_TOKEN: ${{ github.token }} | ||
| steps: | ||
|
|
||
| # Check out the release's tag, or the branch the workflow was run from | ||
| - name: Fetch Sources | ||
| uses: actions/checkout@v7 | ||
| with: | ||
| ref: ${{ inputs.tag || github.ref }} | ||
|
|
||
| # Only needed to build the plugin from source (no tag) | ||
| - name: Setup Java | ||
| if: ${{ !inputs.tag }} | ||
| uses: actions/setup-java@v5 | ||
| with: | ||
| distribution: zulu | ||
| java-version: 21 | ||
|
|
||
| - name: Setup Gradle | ||
| if: ${{ !inputs.tag }} | ||
| uses: gradle/actions/setup-gradle@v6.2.0 | ||
| with: | ||
| cache-read-only: true | ||
|
|
||
| # The zip the release's "Upload Release Asset" step attached, not a fresh build | ||
| - name: Download Published Plugin | ||
| if: ${{ inputs.tag }} | ||
| shell: powershell | ||
| run: gh release download "$env:TAG" --repo "${{ github.repository }}" --pattern intellij-ib-plugin.zip --dir build/published | ||
|
|
||
| - name: Build Installers | ||
| shell: powershell | ||
| run: | | ||
| if ($env:TAG) { | ||
| .\installer\build-installer.ps1 -PluginZip build\published\intellij-ib-plugin.zip | ||
| } else { | ||
| # Runs gradlew buildPlugin itself first | ||
| .\installer\build-installer.ps1 | ||
| } | ||
|
|
||
| - name: Upload Installers to Release | ||
| if: ${{ inputs.tag }} | ||
| shell: powershell | ||
| run: gh release upload "$env:TAG" --repo "${{ github.repository }}" --clobber build/distributions/install-intellij-ib-plugin.ps1 build/distributions/intellij-ib-plugin.exe | ||
|
|
||
| # Always kept as an artifact too, so a manual run's output can be downloaded and tried | ||
| - name: Upload Installers Artifact | ||
| uses: actions/upload-artifact@v7 | ||
| with: | ||
| name: installers | ||
| path: | | ||
| build/distributions/install-intellij-ib-plugin.ps1 | ||
| build/distributions/intellij-ib-plugin.exe |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,6 +4,38 @@ | |
|
|
||
| ## [Unreleased] | ||
|
|
||
| ## [1.1.0] | ||
|
|
||
| ### Added | ||
|
|
||
| - CLion support for CMake projects: **Build**, **Rebuild** and **Build All** in the **Incredibuild** menu run | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. With new version all of it was moved out of unreleased and under 1.1.0 |
||
| `cmake --build` through Incredibuild, against the build directory, toolchain and generator the active CMake profile | ||
| is already configured with. | ||
| - Rider support for .NET solutions: **Build Solution with Incredibuild**, **Rebuild Solution with Incredibuild** and | ||
| **Build Selected Projects with Incredibuild** in the **Build** menu, the Solution Explorer context menu and the | ||
| **Incredibuild** menu, bindable to shortcuts in **Settings/Preferences > Keymap**. They build the solution as it is | ||
| configured, in its active configuration and platform, through MSBuild accelerated by Incredibuild. While one runs, | ||
| the status bar shows the accelerated build in progress, and a notification reports the result. | ||
| - **Settings/Preferences > Tools > Incredibuild** can set the MSBuild that Rider builds use, when the automatically | ||
| detected one isn't the right one. | ||
| - The installers now also install the plugin into CLion and Rider. | ||
|
|
||
| ### Changed | ||
|
|
||
| - Only one Incredibuild build runs at a time, in every IDE. Starting a build - from the **Incredibuild** menu or, | ||
| with IDE build acceleration on, from the IDE's own build actions - while another is still running offers to stop | ||
| the running one, then starts the new build as soon as it has stopped. Previously a second build started alongside | ||
| the first, replacing its output in the **Incredibuild** tool window. | ||
| - The Windows installers (`install-intellij-ib-plugin.ps1` and `intellij-ib-plugin.exe`) are now attached to each | ||
| GitHub release, built by the release workflow from the published plugin, instead of the script being committed to | ||
| the repository. | ||
|
|
||
| ### Fixed | ||
|
|
||
| - With **Accelerate the IDE's own build actions** on, **Build Project** in RustRover 2026.1 (and IntelliJ IDEA / CLion | ||
| 2026.1 with the Rust plugin) failed with `NoSuchMethodError` instead of building, because it relied on a Rust plugin | ||
| API that only exists from 2026.2. The plugin is now verified against both 2026.1 and 2026.2 of every supported IDE. | ||
|
|
||
| ## [1.0.3] | ||
|
|
||
| ### Added | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This job only runs when a release is published, so CI hasn't exercised it yet. Does the uploaded asset really match
intellij-ib-plugin.zip(and not a versioned name)? Consider addingworkflow_dispatchso it can be tried before 1.1.0. Also, does anything (README, wiki, download links) still point to the deletedscripts/install-intellij-ib-plugin.ps1?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Asset name: yes. build.gradle.kts pins buildPlugin's output to intellij-ib-plugin.zip, unversioned, and "Upload Release Asset" uploads build/distributions/*. A signed archive, if signing is configured, gets its own name, so the exact-name download still picks the plain zip.
Trying it early: I moved the job into a reusable installers.yml, which release.yml calls with the tag, so release behaviour is unchanged. It also has workflow_dispatch: without a tag it builds from the branch and uploads the installers as an artifact only; with a tag it re-runs the release step for that release. Since dispatch only appears once the file is on main, it also runs on PRs touching installer/** or the workflow, which exercises it on this PR.
Links: nothing in the repo, on any branch, points to the old scripts/ path. I couldn't check the wiki or external download pages from here; could you check those? I also added a README line pointing to the installers on the release page.