Skip to content

Commit 8ba482f

Browse files
committed
feat(sdk): add publish manifest generation and source generators
- Add publish.manifest.json generation from VSIX manifest values - publisher from Identity/@publisher - categories from Tags element - repo from MoreInfo element - Add source generators for VsixInfo and VSCT constants - Add README template to dotnet new template - Add Bluesky and LinkedIn notifications to release workflow - Add contributors workflow - Update README with publish manifest documentation
1 parent cc964ea commit 8ba482f

20 files changed

Lines changed: 1145 additions & 113 deletions

.github/workflows/contributors.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Update Contributors
2+
3+
on:
4+
schedule:
5+
- cron: '0 0 * * *' # Run daily at midnight UTC
6+
workflow_dispatch: # Allow manual trigger
7+
8+
jobs:
9+
contributors:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
with:
14+
token: ${{ secrets.CONTRIBUTORS_TOKEN }}
15+
16+
- name: Update contributors
17+
env:
18+
GH_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}
19+
run: |
20+
# Fetch contributors from GitHub API (exclude bots) - markdown format
21+
contributors=$(gh api repos/CodingWithCalvin/VsixSdk/contributors --paginate --jq '.[] | select(.type != "Bot") | select(.login | test("\\[bot\\]$") | not) | "[![\(.login)](\(.avatar_url)&s=64)](\(.html_url))"' | tr '\n' ' ')
22+
23+
# Build the contributors section
24+
contrib_section="<!-- readme: contributors -start -->
25+
$contributors
26+
<!-- readme: contributors -end -->"
27+
28+
# Update README between the markers
29+
awk -v contrib="$contrib_section" '
30+
/<!-- readme: contributors -start -->/{found=1; print contrib; next}
31+
/<!-- readme: contributors -end -->/{found=0; next}
32+
!found{print}
33+
' README.md > README.tmp && mv README.tmp README.md
34+
35+
- name: Commit and push
36+
run: |
37+
git config user.name "github-actions[bot]"
38+
git config user.email "github-actions[bot]@users.noreply.github.com"
39+
git add README.md
40+
git diff --staged --quiet || (git commit -m "docs: update contributors [skip ci]" && git push)

.github/workflows/release.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ jobs:
1212
release:
1313
needs: changelog
1414
runs-on: windows-latest
15+
outputs:
16+
version: ${{ steps.version.outputs.VERSION }}
1517

1618
permissions:
1719
contents: write
@@ -64,3 +66,43 @@ jobs:
6466
files: |
6567
artifacts/packages/CodingWithCalvin.VsixSdk.${{ steps.version.outputs.VERSION }}.nupkg
6668
artifacts/packages/CodingWithCalvin.VsixSdk.Templates.${{ steps.version.outputs.VERSION }}.nupkg
69+
70+
notify-bluesky:
71+
needs: release
72+
uses: CodingWithCalvin/.github/.github/workflows/bluesky-post.yml@main
73+
with:
74+
post_text: |
75+
🚀 CodingWithCalvin.VsixSdk v${{ needs.release.outputs.version }} has been released!
76+
77+
Build modern SDK-style Visual Studio extensions with ease.
78+
79+
[📋 Release Notes](https://github.com/${{ github.repository }}/releases/tag/v${{ needs.release.outputs.version }})
80+
[📦 NuGet](https://www.nuget.org/packages/CodingWithCalvin.VsixSdk)
81+
82+
#dotnet #csharp #visualstudio #nuget
83+
embed_url: https://www.nuget.org/packages/CodingWithCalvin.VsixSdk
84+
embed_title: CodingWithCalvin.VsixSdk
85+
embed_description: An MSBuild SDK for modern SDK-style Visual Studio extension development
86+
secrets:
87+
BLUESKY_USERNAME: ${{ secrets.BLUESKY_USERNAME }}
88+
BLUESKY_APP_PASSWORD: ${{ secrets.BLUESKY_APP_PASSWORD }}
89+
90+
notify-linkedin:
91+
needs: release
92+
uses: CodingWithCalvin/.github/.github/workflows/linkedin-post.yml@main
93+
with:
94+
post_text: |
95+
🚀 CodingWithCalvin.VsixSdk v${{ needs.release.outputs.version }} has been released!
96+
97+
Build modern SDK-style Visual Studio extensions with ease.
98+
99+
📋 Release Notes: https://github.com/${{ github.repository }}/releases/tag/v${{ needs.release.outputs.version }}
100+
📦 NuGet: https://www.nuget.org/packages/CodingWithCalvin.VsixSdk
101+
102+
#dotnet #csharp #visualstudio #nuget
103+
article_url: https://www.nuget.org/packages/CodingWithCalvin.VsixSdk
104+
article_title: CodingWithCalvin.VsixSdk
105+
article_description: An MSBuild SDK for modern SDK-style Visual Studio extension development
106+
secrets:
107+
LINKEDIN_ACCESS_TOKEN: ${{ secrets.LINKEDIN_ACCESS_TOKEN }}
108+
LINKEDIN_CLIENT_ID: ${{ secrets.LINKEDIN_CLIENT_ID }}

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,8 @@ Desktop.ini
4646
CLAUDE.local.md
4747

4848
.claude/
49+
50+
# Generated files from SDK
51+
Generated/
52+
VsixInfo.g.cs
53+
*Vsct.g.cs

0 commit comments

Comments
 (0)