mirror of
https://github.com/JetBrains/intellij-platform-plugin-template.git
synced 2024-10-27 20:44:05 +00:00
README - wip
This commit is contained in:
parent
43fab323d4
commit
99e98e4f48
14
.github/workflows/build.yml
vendored
14
.github/workflows/build.yml
vendored
@ -30,7 +30,7 @@ jobs:
|
||||
- name: Gradle Wrapper Validation
|
||||
uses: gradle/wrapper-validation-action@v1
|
||||
|
||||
# Run verifyPlugin and test Gradle tasks.
|
||||
# Run verifyPlugin and test Gradle tasks
|
||||
test:
|
||||
name: Test
|
||||
needs: gradleValidation
|
||||
@ -67,8 +67,8 @@ jobs:
|
||||
- name: Run Tests
|
||||
run: ./gradlew test
|
||||
|
||||
# Build plugin with buildPlugin Gradle task and provide artifact for the next workflow jobs.
|
||||
# Requires test job to be passed.
|
||||
# Build plugin with buildPlugin Gradle task and provide the artifact for the next workflow jobs
|
||||
# Requires test job to be passed
|
||||
build:
|
||||
name: Build
|
||||
needs: test
|
||||
@ -122,8 +122,8 @@ jobs:
|
||||
name: plugin-artifact
|
||||
path: ./build/distributions/${{ needs.build.outputs.artifact }}
|
||||
|
||||
# Verify built plugin using IntelliJ Plugin Verifier tool.
|
||||
# Requires build job to be passed.
|
||||
# Verify built plugin using IntelliJ Plugin Verifier tool
|
||||
# Requires build job to be passed
|
||||
verify:
|
||||
name: Verify
|
||||
needs: build
|
||||
@ -154,8 +154,8 @@ jobs:
|
||||
echo "The verifier log file [$OUTPUT_LOG] contents : " ;
|
||||
cat $OUTPUT_LOG
|
||||
|
||||
# Prepare a draft release for GitHub Releases page for the manual verification.
|
||||
# If accepted and published, release workflow would be triggered.
|
||||
# Prepare a draft release for GitHub Releases page for the manual verification
|
||||
# If accepted and published, release workflow would be triggered
|
||||
releaseDraft:
|
||||
name: Release Draft
|
||||
if: github.ref == 'refs/heads/master'
|
||||
|
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
@ -4,9 +4,11 @@
|
||||
name: Release
|
||||
on:
|
||||
release:
|
||||
types: [prereleased, released]
|
||||
types: [released]
|
||||
|
||||
jobs:
|
||||
|
||||
# Prepare and publish the plugin to the Marketplace repository
|
||||
release:
|
||||
name: Publish Plugin
|
||||
runs-on: ubuntu-latest
|
||||
@ -30,7 +32,7 @@ jobs:
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
|
||||
restore-keys: ${{ runner.os }}-gradle-
|
||||
|
||||
# Publish plugin to the Marketplace
|
||||
# Publish the plugin to the Marketplace
|
||||
- name: Publish Plugin
|
||||
env:
|
||||
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
|
||||
|
2
.github/workflows/template-cleanup.yml
vendored
2
.github/workflows/template-cleanup.yml
vendored
@ -2,7 +2,7 @@
|
||||
# the template-specific files and configurations. This workflow is supposed to be triggered automatically
|
||||
# when a new template-based repository has been created.
|
||||
|
||||
name: Tempalte Cleanup
|
||||
name: Template Cleanup
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
67
README.md
67
README.md
@ -26,8 +26,8 @@ We can highlight the following parts of the template project:
|
||||
- services - project- and application-related services
|
||||
- actions - basic action with shortcut binding
|
||||
- [Continuous Integration](#continuous-integration) based on the GitHub Actions
|
||||
- [Changelog Maintenance](#changelog-maintenance) with the Gradle Changelog Plugin
|
||||
- [Release Flow](#release-flow) using the GitHub Releases
|
||||
- [Changelog Maintenance](#changelog) with the Gradle Changelog Plugin
|
||||
- [Publishing Plugin](#publishing-plugin) with the Gradle IntelliJ Plugin
|
||||
|
||||
## Getting Started
|
||||
@ -169,29 +169,68 @@ sources should be located in `src/main/java` directory.
|
||||
|
||||
## Continuous Integration
|
||||
|
||||
Continuous Integration depends on the GitHub Actions, which is a set of workflows that let to automate your testing
|
||||
and releasing process.
|
||||
Continuous Integration depends on the [GitHub Actions][gh:actions], which is a set of workflows that let to automate
|
||||
your testing and releasing process. Thanks to such automation, you can delegate the testing and verification phases
|
||||
to the CI and focus on the development (and writing more tests).
|
||||
|
||||
Unit tests
|
||||
Detekt
|
||||
verifyPlugin
|
||||
intellij-plugin-verifier
|
||||
In `.github/workflows` directory you may find the following GitHub Actions Workflows defined:
|
||||
|
||||
## Release Flow
|
||||
- [Build](.github/workflows/build.yml)
|
||||
- Triggered on `push` and `pull_request` events
|
||||
- Runs Gradle Wrapper Validation Action to verify the wrapper's checksum
|
||||
- Runs verifyPlugin and test Gradle tasks
|
||||
- Builds plugin with buildPlugin Gradle task and provide the artifact for the next workflow jobs
|
||||
- Verifies built plugin using IntelliJ Plugin Verifier tool
|
||||
- Prepares a draft release for GitHub Releases page for the manual verification
|
||||
- [Release](.github/workflows/release.yml)
|
||||
- Triggered on `released` event
|
||||
- Publishes the plugin to the Marketplace using `PUBLISH_TOKEN` provided token
|
||||
- Patches the Changelog and commits
|
||||
- [Template Cleanup](.github/workflows/template-cleanup.yml)
|
||||
- Triggered once on `push` event when a new template-based repository has been created
|
||||
- Overrides scaffold with files from `.github/template-cleanup` directory
|
||||
- Overrides JetBrains-specific sentences or package names with the ones specific to the target repository
|
||||
- Removes redundant files
|
||||
|
||||
### Changelog
|
||||
Each Workflow file has an accurate documentation provided, so don't hesitate to look through their sources.
|
||||
|
||||
When delivering a new release, it is essential to let your audience know what the updated version offering is.
|
||||
The best way of handling that is to attach the changelog.
|
||||
### Changelog Maintenance
|
||||
|
||||
When delivering a new release, it is essential to let your audience know what the updated version is offering.
|
||||
The best way of handling that is to attach the release note.
|
||||
|
||||
The changelog is a curated list containing information of any new features, fixes, deprecations.
|
||||
If provided, such list would be available in a couple of places: [CHANGELOG.md](./CHANGELOG.md) file,
|
||||
[Releases page][gh:releases], [What's new][jb:plugin-page] section in Marketplace's Plugin page
|
||||
and inside of the Plugin Manager's item details.
|
||||
There are many different methods of handling the project's changelog. One of them, used in the current template project,
|
||||
is the [Keep a Changelog][keep-a-changelog] approach.
|
||||
|
||||
## Publishing Plugin
|
||||
There are many methods of handling the project's changelog. One of them, used in the current template project,
|
||||
is the [Keep a Changelog][keep-a-changelog] approach, which brings underneath rules:
|
||||
|
||||
> **Guiding Principles**
|
||||
> - Changelogs are for humans, not machines.
|
||||
> - There should be an entry for every single version.
|
||||
> - The same types of changes should be grouped.
|
||||
> - Versions and sections should be linkable.
|
||||
> - The latest version comes first.
|
||||
> - The release date of each version is displayed.
|
||||
> - Mention whether you follow Semantic Versioning.
|
||||
>
|
||||
> **Types of changes**
|
||||
> - `Added` for new features.
|
||||
> - `Changed` for changes in existing functionality.
|
||||
> - `Deprecated` for soon-to-be removed features.
|
||||
> - `Removed` for now removed features.
|
||||
> - `Fixed` for any bug fixes.
|
||||
> - `Security` in case of vulnerabilities.
|
||||
>
|
||||
> <small> Ref.: https://keepachangelog.com/en/1.0.0/ </small>
|
||||
|
||||
### Release Flow
|
||||
|
||||
|
||||
|
||||
### Publishing Plugin
|
||||
|
||||
Cannot find org.jetbrains.plugins.template. Note that you need to upload the plugin to the repository at least once manually (to specify options like the license, repository URL etc.). Follow the instructions: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user