Skip to content

Commit ab4f695

Browse files
Wire extension package publishing
1 parent d7629d7 commit ab4f695

11 files changed

Lines changed: 70 additions & 20 deletions

File tree

.github/workflows/build-grammars.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ on:
44
push:
55
branches: [master]
66
paths:
7-
- "extensions/*/extension.json"
8-
- "extensions/*/highlights.scm"
7+
- "extensions/**/extension.json"
8+
- "extensions/**/*.scm"
99
- "grammar-sources.json"
1010
workflow_dispatch:
1111
inputs:

.github/workflows/build-index.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ jobs:
2121
bun-version: latest
2222

2323
- name: Build extensions index
24-
run: bun scripts/build-extensions-index.ts
24+
run: |
25+
bun scripts/package-extensions.ts
26+
bun scripts/build-extensions-index.ts
2527
2628
- name: Generate manifests
2729
run: bun scripts/generate-manifests.ts
@@ -36,6 +38,6 @@ jobs:
3638
git config user.name "github-actions[bot]"
3739
git config user.email "github-actions[bot]@users.noreply.github.com"
3840
39-
git add registry.json index.json manifests.json
41+
git add registry.json index.json manifests.json extensions packages
4042
git commit -m "Update extensions catalog"
4143
git push

.github/workflows/deploy.yml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ on:
66
push:
77
branches: [master]
88
paths:
9-
- "extensions/*/extension.json"
10-
- "extensions/*/highlights.scm"
9+
- "extensions/**/extension.json"
10+
- "extensions/**/*.svg"
11+
- "extensions/**/*.scm"
12+
- "packages/**/*.tar.gz"
1113
- "registry.json"
1214
- "index.json"
1315
- "manifests.json"
@@ -26,20 +28,32 @@ jobs:
2628

2729
- name: Regenerate catalog files
2830
run: |
31+
bun scripts/package-extensions.ts
2932
bun scripts/build-extensions-index.ts
3033
bun scripts/generate-manifests.ts
3134
32-
- name: Sync extension configs to CDN
35+
- name: Sync extension configs and assets to CDN
3336
uses: burnett01/rsync-deployments@7.0.2
3437
with:
35-
switches: -avz --include='*/' --include='*.json' --include='*.scm' --exclude='*'
38+
switches: -avz --include='*/' --include='*.json' --include='*.scm' --include='*.svg' --exclude='*'
3639
path: extensions/
3740
remote_path: ${{ secrets.EXTENSIONS_CDN_ROOT }}/
3841
remote_host: ${{ secrets.VPS_HOST }}
3942
remote_user: ${{ secrets.VPS_USER }}
4043
remote_key: ${{ secrets.VPS_SSH_KEY }}
4144
remote_port: ${{ secrets.VPS_PORT || 22 }}
4245

46+
- name: Sync packaged extensions to CDN
47+
uses: burnett01/rsync-deployments@7.0.2
48+
with:
49+
switches: -avz
50+
path: packages/
51+
remote_path: ${{ secrets.EXTENSIONS_CDN_ROOT }}/packages/
52+
remote_host: ${{ secrets.VPS_HOST }}
53+
remote_user: ${{ secrets.VPS_USER }}
54+
remote_key: ${{ secrets.VPS_SSH_KEY }}
55+
remote_port: ${{ secrets.VPS_PORT || 22 }}
56+
4357
- name: Sync catalog files to CDN
4458
uses: burnett01/rsync-deployments@7.0.2
4559
with:

.github/workflows/validate.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ jobs:
2020
run: bun run scripts/sync-upstream-queries.ts --check
2121

2222
- name: Validate extension manifests
23-
run: bun run scripts/validate.ts
23+
run: |
24+
bun run scripts/package-extensions.ts
25+
bun run scripts/validate.ts
2426
2527
- name: Check manifests.json is up to date
2628
run: |
@@ -30,6 +32,9 @@ jobs:
3032
- name: Check registry.json and index.json are up to date
3133
run: bun run scripts/build-extensions-index.ts --check
3234

35+
- name: Check packaged extensions are up to date
36+
run: git diff --exit-code extensions packages || (echo "Packaged extension artifacts are out of date. Run: bun run scripts/package-extensions.ts" && exit 1)
37+
3338
- name: Validate grammar-sources.json
3439
run: |
3540
node -e "

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,23 @@ language tooling extensions (LSP, formatter, linter, snippets), plus themes and
77

88
## Structure
99

10-
Each extension lives under `extensions/{name}/`:
10+
Language extensions can live under `extensions/{name}/`. Marketplace contribution
11+
extensions are grouped by type:
1112

1213
```
1314
extensions/
1415
lua/
1516
extension.json # Extension manifest
1617
tooling.json # Platform-specific tooling (LSP, formatter, linter binaries)
1718
build.sh # Build script for tooling archives
19+
theme/
20+
market/
21+
extension.json # Theme contribution manifest
22+
icon.svg
23+
icon-theme/
24+
market/
25+
extension.json # Icon theme contribution manifest
26+
icon.svg
1827
```
1928

2029
Root-level files:
@@ -26,7 +35,9 @@ Root-level files:
2635

2736
```bash
2837
bun run scripts/validate.ts
38+
bun run scripts/package-extensions.ts
2939
bun run scripts/generate-manifests.ts
40+
bun run scripts/build-extensions-index.ts
3041
```
3142

3243
## Contributing

extensions/icon-theme/market/extension.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@
5555
],
5656
"installation": {
5757
"downloadUrl": "https://athas.dev/extensions/packages/icon-theme/market/athas.icon-theme.market.tar.gz",
58-
"size": 1620,
59-
"checksum": "60f4857b933dc18df2a7b0ba9640ca10cd54cf40dd9eccc4e8bf96164753a6ff"
58+
"size": 1380,
59+
"checksum": "6afd2ea222577815c961d1ef473268f868bddb6d3a91890f13ec43590f9769a4"
6060
},
6161
"license": "MIT",
6262
"repository": {

extensions/theme/market/extension.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@
151151
],
152152
"installation": {
153153
"downloadUrl": "https://athas.dev/extensions/packages/theme/market/athas.theme.market.tar.gz",
154-
"size": 2045,
155-
"checksum": "f4e15bdf7d9c741920169e23160424aa3d5e5ba05253392933df62b510c0d215"
154+
"size": 1800,
155+
"checksum": "e6f3f97b794fb34dcdcf2511fe7467b4140b384d0ce71b3ca9fd04e64f331f44"
156156
},
157157
"license": "MIT",
158158
"repository": {

manifests.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -994,8 +994,8 @@
994994
],
995995
"installation": {
996996
"downloadUrl": "https://athas.dev/extensions/packages/icon-theme/market/athas.icon-theme.market.tar.gz",
997-
"size": 1620,
998-
"checksum": "60f4857b933dc18df2a7b0ba9640ca10cd54cf40dd9eccc4e8bf96164753a6ff"
997+
"size": 1380,
998+
"checksum": "6afd2ea222577815c961d1ef473268f868bddb6d3a91890f13ec43590f9769a4"
999999
},
10001000
"license": "MIT",
10011001
"repository": {
@@ -2020,8 +2020,8 @@
20202020
],
20212021
"installation": {
20222022
"downloadUrl": "https://athas.dev/extensions/packages/theme/market/athas.theme.market.tar.gz",
2023-
"size": 2045,
2024-
"checksum": "f4e15bdf7d9c741920169e23160424aa3d5e5ba05253392933df62b510c0d215"
2023+
"size": 1800,
2024+
"checksum": "e6f3f97b794fb34dcdcf2511fe7467b4140b384d0ce71b3ca9fd04e64f331f44"
20252025
},
20262026
"license": "MIT",
20272027
"repository": {
-240 Bytes
Binary file not shown.
-245 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)