Skip to content

Commit

Permalink
Merge pull request #85 from witspirit/to-plugin-template
Browse files Browse the repository at this point in the history
Migrate plugin configuration to intellij platform plugin template
  • Loading branch information
picimako authored Jun 19, 2023
2 parents 8e107b7 + 495759a commit ef11b5b
Show file tree
Hide file tree
Showing 17 changed files with 385 additions and 303 deletions.
115 changes: 90 additions & 25 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,104 @@
name: build and test

# Controls when the workflow will run
name: Build
on:
# Trigger the workflow on pushes to only the 'main' branch (this avoids duplicate checks being run e.g. for dependabot pull requests)
push:
branches:
- master
branches: [master]
# Trigger the workflow on any pull request
pull_request:
branches:
- master

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"

# Run Gradle Wrapper Validation Action to verify the wrapper's checksum
# Run verifyPlugin, IntelliJ Plugin Verifier, and test Gradle tasks
# Build plugin and provide the artifact for the next workflow jobs
build:
# The type of runner that the job will run on
name: Build
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
outputs:
version: ${{ steps.properties.outputs.version }}
steps:

- uses: actions/checkout@v3
# Free GitHub Actions Environment Disk Space
- name: Maximize Build Space
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
- uses: actions/checkout@v3
with:
repository: JetBrains/intellij-community
# https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html#intellij-platform-based-products-of-recent-ide-versions
ref: 211
path: intellij-community
# Check out current repository
- name: Fetch Sources
uses: actions/checkout@v3

# Validate wrapper
- name: Gradle Wrapper Validation
uses: gradle/[email protected]

- name: Set up JDK 11
# Setup Java 11 environment for the next steps
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: 'gradle'
distribution: zulu
java-version: 11

# Set environment variables
- name: Export Properties
id: properties
shell: bash
run: |
PROPERTIES="$(./gradlew properties --console=plain -q)"
VERSION="$(echo "$PROPERTIES" | grep "^version:" | cut -f2- -d ' ')"
NAME="$(echo "$PROPERTIES" | grep "^pluginName:" | cut -f2- -d ' ')"
echo "::set-output name=version::$VERSION"
echo "::set-output name=name::$NAME"
echo "::set-output name=pluginVerifierHomeDir::~/.pluginVerifier"
./gradlew listProductsReleases # prepare list of IDEs for Plugin Verifier
# Run tests
- name: Run Tests
run: ./gradlew test -Pidea.home.path=./intellij-community

# Collect Tests Result of failed tests
- name: Collect Tests Result
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: tests-result
path: ${{ github.workspace }}/build/reports/tests

# Cache Plugin Verifier IDEs
- name: Setup Plugin Verifier IDEs Cache
uses: actions/cache@v3
with:
path: ${{ steps.properties.outputs.pluginVerifierHomeDir }}/ides
key: plugin-verifier-${{ hashFiles('build/listProductsReleases.txt') }}

- name: Build with Gradle
run: ./gradlew build -Pidea.home.path=./intellij-community ${{ env.GRADLE_ARGUMENTS }}
# Run Verify Plugin task and IntelliJ Plugin Verifier tool
- name: Run Plugin Verification tasks
run: ./gradlew runPluginVerifier -Pplugin.verifier.home.dir=${{ steps.properties.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

# Prepare plugin archive content for creating artifact
- name: Prepare Plugin Artifact
id: artifact
shell: bash
run: |
cd ${{ github.workspace }}/build/distributions
FILENAME=`ls *.zip`
unzip "$FILENAME" -d content
echo "::set-output name=filename::${FILENAME:0:-4}"
# Store already-built plugin as an artifact for downloading
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ steps.artifact.outputs.filename }}
path: ./build/distributions/content/*/*
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ syntax: glob
.DS_Store

# lib'n misc
lib/
#lib/
testLib/
file/

Expand Down Expand Up @@ -52,9 +52,9 @@ atlassian-ide-plugin.xml

# Gradle
.gradle/
gradle.properties
#gradle.properties

# Other files
/local.properties
*.jar
#*.jar
!gradle/wrapper/gradle-wrapper.jar
12 changes: 11 additions & 1 deletion RELEASE_NOTES.md → CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
# Release notes

## [Unreleased]

## [1.61]
### Changed
- Added support for IJ-2023.2 and dropped support for IJ-2021.2.
- Updated the plugin configuration to be based on the intellij-platform-plugin-template
- Updated GitHub Actions integration to build and validate the plugin.
- Removed unnecessary project dependencies.

## 1.60
- Added support for IJ-2023.1.
### Changed
- Added support for IJ-2023.1.

## 1.59
- Upgraded plugin to support IJ-2022.3.
Expand Down
39 changes: 22 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,11 @@ JBehave Support for IntelliJ IDEA

IntelliJ IDEA Plugin for JBehave

This plugin provides some support for JBehave.
It is a fork of IntelliJBehave, originally created by Aman Kumar.
<!-- Plugin description -->
This plugin provides some support for JBehave. It is a fork of IntelliJBehave, originally created by Aman Kumar.

## Features

See https://github.com/kumaraman21/IntelliJBehave/wiki

Most of the original code has been retained, but several improvements have been incorporated by various contributors:
* https://github.com/jarosite
* https://github.com/Arnauld
* https://github.com/harley84
* https://github.com/RodrigoQuesadaDev
* https://github.com/JenoDK

Features
--------
The plugin provides the following features:
* Basic syntax highlighting for JBehave story files
* Jump to step definition in Java or Groovy
Expand All @@ -30,22 +21,36 @@ The plugin provides the following features:
* Spellchecking in .story files
* Structure view for .story files (via Ctrl+12 or similar shortcut)

Known limitations
-----------------
## Known limitations

* Searches complete module classpath, no configuration available to limit scope
* Does not take into account any custom JBehave configuration
* Lifecycles are currently not supported in the .story file structure view
<!-- Plugin description end -->

## Contribute

Contribute
--------
* Setup:
```
git clone <URL>
./gradlew idea
```

In IntelliJ just 'Open' that folder and everything should be ready.

* Run:
```
./gradlew runIde
```
You can do this from within IntelliJ if you enable gradle on the project.

## Contributions

See original documentation at https://github.com/kumaraman21/IntelliJBehave/wiki.

Most of the original code has been retained, but several improvements have been incorporated by various contributors:
* https://github.com/jarosite
* https://github.com/Arnauld
* https://github.com/harley84
* https://github.com/RodrigoQuesadaDev
* https://github.com/JenoDK
75 changes: 0 additions & 75 deletions build.gradle

This file was deleted.

Loading

0 comments on commit ef11b5b

Please sign in to comment.