Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml → .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Continuous Integration
name: Build

on:
workflow_dispatch:
Expand Down
72 changes: 0 additions & 72 deletions .github/workflows/check-dist.yml

This file was deleted.

11 changes: 11 additions & 0 deletions .github/workflows/contributors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Update Contributors

on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:

jobs:
contributors:
uses: CodingWithCalvin/.github/.github/workflows/contributors.yml@main
secrets: inherit
27 changes: 27 additions & 0 deletions .github/workflows/preview-changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Preview Changelog

run-name: Preview release notes for next release

on:
workflow_dispatch:

jobs:
generate:
name: Generate
uses: CodingWithCalvin/.github/.github/workflows/generate-changelog.yml@main
secrets: inherit

preview:
name: Display Preview
runs-on: ubuntu-latest
needs: generate

steps:
- name: Display changelog preview
run: |
echo "=========================================="
echo "CHANGELOG PREVIEW"
echo "=========================================="
echo ""
echo "${{ needs.generate.outputs.changelog }}"
shell: bash
99 changes: 99 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Publish

on:
workflow_dispatch:
inputs:
version:
description: 'Version to release (e.g., 1.2.0)'
required: true
type: string

jobs:
changelog:
uses: CodingWithCalvin/.github/.github/workflows/generate-changelog.yml@main
secrets: inherit

release:
needs: changelog
runs-on: ubuntu-latest
outputs:
version: ${{ inputs.version }}

permissions:
contents: write

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: .node-version
cache: npm

- name: Install Dependencies
run: npm ci

- name: Rebuild dist
run: npm run bundle

- name: Commit dist changes
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add dist/
git diff --staged --quiet || git commit -m "chore: rebuild dist for v${{ inputs.version }}"
git push

- name: Create and push tag
run: |
git tag v${{ inputs.version }}
git push origin v${{ inputs.version }}

- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ inputs.version }}
name: v${{ inputs.version }}
body: ${{ needs.changelog.outputs.changelog }}

notify-bluesky:
needs: release
uses: CodingWithCalvin/.github/.github/workflows/bluesky-post.yml@main
with:
post_text: |
🚀 JetBrains Marketplace Publisher v${{ needs.release.outputs.version }} has been released!

Publish your JetBrains plugins to the marketplace with ease!

[📋 Release Notes](https://github.com/${{ github.repository }}/releases/tag/v${{ needs.release.outputs.version }})
[📦 GitHub Marketplace](https://github.com/marketplace/actions/jetbrains-marketplace-publisher)

#github #githubactions #devops #automation
embed_url: https://github.com/marketplace/actions/jetbrains-marketplace-publisher
embed_title: JetBrains Marketplace Publisher
embed_description: Publish your JetBrains plugins to the marketplace with ease!
secrets:
BLUESKY_USERNAME: ${{ secrets.BLUESKY_USERNAME }}
BLUESKY_APP_PASSWORD: ${{ secrets.BLUESKY_APP_PASSWORD }}

notify-linkedin:
needs: release
uses: CodingWithCalvin/.github/.github/workflows/linkedin-post.yml@main
with:
post_text: |
🚀 JetBrains Marketplace Publisher v${{ needs.release.outputs.version }} has been released!

Publish your JetBrains plugins to the marketplace with ease!

📋 Release Notes: https://github.com/${{ github.repository }}/releases/tag/v${{ needs.release.outputs.version }}
📦 GitHub Marketplace: https://github.com/marketplace/actions/jetbrains-marketplace-publisher

#github #githubactions #devops #automation
article_url: https://github.com/marketplace/actions/jetbrains-marketplace-publisher
article_title: JetBrains Marketplace Publisher
article_description: Publish your JetBrains plugins to the marketplace with ease!
secrets:
LINKEDIN_ACCESS_TOKEN: ${{ secrets.LINKEDIN_ACCESS_TOKEN }}
LINKEDIN_CLIENT_ID: ${{ secrets.LINKEDIN_CLIENT_ID }}
65 changes: 44 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,63 @@
# CodingWithCalvin/GHA-JBMarketplacePublisher
# JetBrains Marketplace Publisher

Github Action to publish your JetBrains plugin to the marketplace
[![Build](https://img.shields.io/github/actions/workflow/status/CodingWithCalvin/GHA-JBMarketplacePublisher/build.yml?style=for-the-badge&label=Build)](https://github.com/CodingWithCalvin/GHA-JBMarketplacePublisher/actions/workflows/build.yml)
[![GitHub release](https://img.shields.io/github/v/release/CodingWithCalvin/GHA-JBMarketplacePublisher?style=for-the-badge)](https://github.com/CodingWithCalvin/GHA-JBMarketplacePublisher/releases)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)](LICENSE)

## Usage
🚀 Publish your JetBrains plugins to the marketplace with ease!

You can use the JB Marketplace Publish GitHub Action by configuring a YAML-based
workflow file, e.g. .github/workflows/deploy.yml.
This GitHub Action publishes your JetBrains plugin (ZIP archive) to the JetBrains Marketplace.

```yml
## 🚀 Usage

You can use the JetBrains Marketplace Publisher GitHub Action by configuring a YAML-based workflow file, e.g. `.github/workflows/deploy.yml`.

## 📥 Inputs

| Input | Required | Description |
|-------|----------|-------------|
| `marketplace-pat` | Yes | Your Personal Access Token for the JetBrains Marketplace |
| `archive-path` | Yes | Path to the local ZIP package to publish |
| `plugin-id` | No* | Plugin ID from the JetBrains Marketplace URL |
| `plugin-xml-id` | No* | Unique identifier from the `<id>` tag in plugin.xml |
| `channel` | No | Channel to publish to (default: `stable`) |
| `is-hidden` | No | Make the update hidden after approval (default: `false`) |

> ⚠️ **Note:** One of `plugin-id` or `plugin-xml-id` is required, but not both.

## 📋 Example

```yaml
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: JetBrains Marketplace Publisher
uses: CodingWithCalvin/GHA-JBMarketplacePublisher@v1.0.0
uses: CodingWithCalvin/GHA-JBMarketplacePublisher@v1
with:
# REQUIRED
marketplace-pat: ${{ secrets.marketplace_pat }}
archive-path: ./src/outputFolder/extension.zip
marketplace-pat: ${{ secrets.JB_MARKETPLACE_PAT }}
archive-path: './src/outputFolder/plugin.zip'

# ONE OF THE FOLLOWING IS REQUIRED, BUT NOT BOTH
# ONE OF THE FOLLOWING IS REQUIRED
plugin-id: 1000
plugin-xml-id: '1001'
# OR
plugin-xml-id: 'com.example.myplugin'

# OPTIONAL
channel: stable
is-hidden: false
```

## Inputs
## 👥 Contributors

<!-- readme: contributors -start -->
<!-- readme: contributors -end -->

## 📄 License

MIT License - see [LICENSE](LICENSE) for details.

---

| Input | Required | Description |
| --------------- | -------- | ---------------------------------------------------------------------------- |
| marketplace-pat | Y | Your 'Personal Access Token' to perform actions on the JetBrains Marketplace |
| archive-path | Y | Path to the local ZIP package you wish to publish |
| plugin-id | N | Your Plugin ID from the JetBrains Marketplace |
| plugin-xml-id | N | The unique identifier from the &lt;id&gt; tag of plugin.xml |
| channel | N | Channel to publish to (if omitted, defaults to "stable") |
| is-hidden | N | Make the update hidden (if omitted, defaults to false) |
Made with ❤️ by Coding With Calvin
Loading