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
80 changes: 62 additions & 18 deletions .commitlintrc.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,80 @@
# Commitlint configuration for conventional commits
# Based on: https://www.conventionalcommits.org/

extends:
- "@commitlint/config-conventional"
- '@commitlint/config-conventional'

rules:
# Type enum - allowed commit types
type-enum:
- 2 # Level: error
- always
- # Allowed types:
- feat # New feature
- fix # Bug fix
- docs # Documentation only changes
- style # Code style changes (formatting, missing semi-colons, etc)
- refactor # Code refactoring (neither fixes a bug nor adds a feature)
- perf # Performance improvements
- test # Adding or updating tests
- build # Changes to build system or dependencies
- ci # CI/CD configuration changes
- chore # Other changes that don't modify src or test files
- revert # Revert a previous commit

# Type case should be lowercase
type-case:
- 2
- always
- - feat
- fix
- docs
- style
- refactor
- perf
- test
- build
- ci
- chore
- revert
- lower-case

# Type must not be empty
type-empty:
- 2
- never

# Scope case should be lowercase
scope-case:
- 2
- always
- lower-case
subject-case:

# Subject must not be empty
subject-empty:
- 2
- never
- - sentence-case
- start-case
- pascal-case
- upper-case

# Subject must not end with a period
subject-full-stop:
- 2
- never
- "."
- '.'

# Disable subject-case to allow uppercase abbreviations (PR, API, CLI, etc.)
subject-case:
- 0

# Header (first line) max length
header-max-length:
- 2
- always
- 72

# Body should have a blank line before it
body-leading-blank:
- 1 # Warning level
- always

# Footer should have a blank line before it
footer-leading-blank:
- 1 # Warning level
- always

# Body max line length
body-max-line-length:
- 1 # Warning level
- always
- 100

# Help URL shown in error messages
helpUrl: 'https://www.conventionalcommits.org/'
20 changes: 20 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Build

on:
workflow_dispatch:
pull_request:
types: [opened, reopened]
paths:
- 'src/**'
- '*.slnx'
- '.github/workflows/build.yml'
push:
branches:
- main

jobs:
build:
uses: CodingWithCalvin/.github/.github/workflows/vsix-build.yml@main
with:
extension-name: LaunchyBar
secrets: inherit
33 changes: 33 additions & 0 deletions .github/workflows/commit-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Lint PR Title

on:
pull_request:
types: [opened, edited, reopened, synchronize]

permissions:
contents: read
pull-requests: read

jobs:
lint-pr-title:
name: Lint PR Title
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install commitlint
run: |
npm install --save-dev @commitlint/cli@18.4.3 @commitlint/config-conventional@18.4.3

- name: Validate PR title
env:
PR_TITLE: ${{ github.event.pull_request.title }}
run: |
echo "Validating PR title: $PR_TITLE"
echo "$PR_TITLE" | npx commitlint --verbose
13 changes: 13 additions & 0 deletions .github/workflows/contributors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Update Contributors

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

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

run-name: Preview release notes for next release

on:
workflow_dispatch:

jobs:
preview:
name: Preview
uses: CodingWithCalvin/.github/.github/workflows/generate-changelog.yml@main
secrets: inherit
67 changes: 13 additions & 54 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,60 +1,19 @@
name: Publish
name: Publish to VS Marketplace

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:

jobs:
build:
runs-on: windows-latest

env:
SolutionPath: src/CodingWithCalvin.LaunchyBar.slnx
VsixPath: src/CodingWithCalvin.LaunchyBar/bin/Release/CodingWithCalvin.LaunchyBar.vsix

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

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x

- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2

- name: Restore NuGet packages
run: dotnet restore ${{ env.SolutionPath }}

- name: Build
run: dotnet build ${{ env.SolutionPath }} --configuration Release --no-restore

- name: Upload VSIX artifact
uses: actions/upload-artifact@v4
with:
name: vsix
path: ${{ env.VsixPath }}
permissions:
contents: write
actions: read

jobs:
publish:
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
needs: build
runs-on: windows-latest

steps:
- name: Download VSIX artifact
uses: actions/download-artifact@v4
with:
name: vsix

- name: Publish to VS Marketplace
uses: cezarypiatek/VssExtensionPublishAction@v1
with:
vsix-file: CodingWithCalvin.LaunchyBar.vsix
publish-manifest-file: ${{ github.workspace }}/vs-publish.json
personal-access-token: ${{ secrets.VS_MARKETPLACE_PAT }}
uses: CodingWithCalvin/.github/.github/workflows/vsix-publish.yml@main
with:
extension-name: LaunchyBar
display-name: 'LaunchyBar'
marketplace-id: CodingWithCalvin.VS-LaunchyBar
description: 'A narrow icon launcher bar for Visual Studio, similar to VS Code Activity Bar'
hashtags: '#visualstudio #vsix #productivity'
secrets: inherit
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,23 @@
<a href="https://github.com/CodingWithCalvin/VS-LaunchyBar/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/CodingWithCalvin/VS-LaunchyBar?style=for-the-badge" alt="License">
</a>
<a href="https://github.com/CodingWithCalvin/VS-LaunchyBar/actions/workflows/publish.yml">
<img src="https://img.shields.io/github/actions/workflow/status/CodingWithCalvin/VS-LaunchyBar/publish.yml?style=for-the-badge" alt="Build Status">
<a href="https://github.com/CodingWithCalvin/VS-LaunchyBar/actions/workflows/build.yml">
<img src="https://img.shields.io/github/actions/workflow/status/CodingWithCalvin/VS-LaunchyBar/build.yml?style=for-the-badge" alt="Build Status">
</a>
</p>

<p align="center">
<a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.LaunchyBar">
<img src="https://img.shields.io/visual-studio-marketplace/v/CodingWithCalvin.LaunchyBar?style=for-the-badge" alt="Marketplace Version">
<a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-LaunchyBar">
<img src="https://img.shields.io/visual-studio-marketplace/v/CodingWithCalvin.VS-LaunchyBar?style=for-the-badge" alt="Marketplace Version">
</a>
<a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.LaunchyBar">
<img src="https://img.shields.io/visual-studio-marketplace/i/CodingWithCalvin.LaunchyBar?style=for-the-badge" alt="Installs">
<a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-LaunchyBar">
<img src="https://img.shields.io/visual-studio-marketplace/i/CodingWithCalvin.VS-LaunchyBar?style=for-the-badge" alt="Installs">
</a>
<a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.LaunchyBar">
<img src="https://img.shields.io/visual-studio-marketplace/d/CodingWithCalvin.LaunchyBar?style=for-the-badge" alt="Downloads">
<a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-LaunchyBar">
<img src="https://img.shields.io/visual-studio-marketplace/d/CodingWithCalvin.VS-LaunchyBar?style=for-the-badge" alt="Downloads">
</a>
<a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.LaunchyBar">
<img src="https://img.shields.io/visual-studio-marketplace/r/CodingWithCalvin.LaunchyBar?style=for-the-badge" alt="Rating">
<a href="https://marketplace.visualstudio.com/items?itemName=CodingWithCalvin.VS-LaunchyBar">
<img src="https://img.shields.io/visual-studio-marketplace/r/CodingWithCalvin.VS-LaunchyBar?style=for-the-badge" alt="Rating">
</a>
</p>

Expand Down Expand Up @@ -95,7 +95,7 @@ Contributions are welcome! Please feel free to submit a Pull Request.
```
git clone https://github.com/CodingWithCalvin/VS-LaunchyBar.git
```
2. Open `src/CodingWithCalvin.LaunchyBar.slnx` in Visual Studio 2022
2. Open `src/CodingWithCalvin.VS-LaunchyBar.slnx` in Visual Studio 2022
3. Build the solution (`Ctrl+Shift+B`)
4. Press `F5` to launch the experimental instance
5. Make your changes and submit a PR
Expand Down
Binary file removed resources/CommandIcon.png
Binary file not shown.
Binary file removed resources/preview.png
Binary file not shown.