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
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml → .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Continuous Integration
name: Build

on:
workflow_dispatch:
pull_request:
branches:
- main
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: |
🚀 Visual Studio Marketplace Publisher v${{ needs.release.outputs.version }} has been released!

Publish your Visual Studio extensions 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/visual-studio-marketplace-publisher)

#github #githubactions #devops #automation
embed_url: https://github.com/marketplace/actions/visual-studio-marketplace-publisher
embed_title: Visual Studio Marketplace Publisher
embed_description: Publish your Visual Studio extensions 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: |
🚀 Visual Studio Marketplace Publisher v${{ needs.release.outputs.version }} has been released!

Publish your Visual Studio extensions 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/visual-studio-marketplace-publisher

#github #githubactions #devops #automation
article_url: https://github.com/marketplace/actions/visual-studio-marketplace-publisher
article_title: Visual Studio Marketplace Publisher
article_description: Publish your Visual Studio extensions to the marketplace with ease!
secrets:
LINKEDIN_ACCESS_TOKEN: ${{ secrets.LINKEDIN_ACCESS_TOKEN }}
LINKEDIN_CLIENT_ID: ${{ secrets.LINKEDIN_CLIENT_ID }}
62 changes: 41 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,60 @@
# CodingWithCalvin/GHA-VSMarketplacePublisher
# Visual Studio Marketplace Publisher

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

## Usage
📦 Publish your Visual Studio extensions to the marketplace with ease!

You can use the VS Marketplace Publish GitHub Action by configuring a YAML-based
workflow file, e.g. .github/workflows/deploy.yml.
This GitHub Action publishes your Visual Studio extension (.vsix) to the Visual Studio Marketplace.

> _This action only works on a Windows-based runner_
## 🚀 Usage

## Publish a local VSIX File
You can use the Visual Studio Marketplace Publisher GitHub Action by configuring a YAML-based workflow file, e.g. `.github/workflows/deploy.yml`.

```yml
> ⚠️ **Note:** This action only works on a Windows-based runner.

## 📥 Inputs

| Input | Required | Description |
|-------|----------|-------------|
| `marketplace-pat` | Yes | Your Personal Access Token for the Visual Studio Marketplace |
| `publish-manifest-path` | Yes | Path to your publish manifest (JSON file) |
| `vsix-path` | Yes | Path to the local VSIX package to publish |
| `vs-version` | No | Version of Visual Studio tooling to use (default: `latest`) |
| `vs-prerelease` | No | Allow pre-release Visual Studio tooling (default: `false`) |

## 📋 Example

Publish a local VSIX file:

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

- name: Visual Studio Marketplace Publisher
uses: CodingWithCalvin/GHA-VSMarketplacePublisher@v2.0.0
uses: CodingWithCalvin/GHA-VSMarketplacePublisher@v2
with:
# REQUIRED
marketplace-pat: ${{ secrets.vs_pat }}
publish-manifest-path: ./src/vsixManifest.json
vsix-path: ./src/outputFolder/Extension.vsix
marketplace-pat: ${{ secrets.VS_MARKETPLACE_PAT }}
publish-manifest-path: './src/vsixManifest.json'
vsix-path: './src/outputFolder/Extension.vsix'

# OPTIONAL
vs-version: latest
vs-prerelease: 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 Visual Studio Marketplace |
| publish-manifest-path | Y | Path to the manifest used for the publish |
| vsix-path | Y | Path to the local VSIX package you wish to publish |
| vs-version | N | Specify the exact version of Visual Studio tooling to use; default to `latest` |
| vs-prerelease | N | Allow a pre-release installation of Visual Studio tooling; default to `false` |
Made with ❤️ by Coding With Calvin
8 changes: 8 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading