@@ -15,16 +15,30 @@ jobs:
15
15
16
16
- name : Cleanup
17
17
run : |
18
- rm output -rf
18
+ rm -rf output
19
19
20
- - name : Zip the extension
20
+ - name : Prepare output directory
21
21
run : |
22
- mkdir output
23
- VERSION=$(jq -r '.version' ./app/manifest.json)
24
- zip -r ./output/ShaderToy-Chrome-Plugin-$VERSION.zip ./app
22
+ mkdir -p output
23
+
24
+ - name : Zip the Chrome extension
25
+ run : |
26
+ VERSION=$(jq -r '.version' ./app/manifest-chrome.json)
27
+ cp ./app/* ./output/
28
+ cp ./manifest/manifest-chrome.json ./output/manifest.json
29
+ zip -r ./output/ShaderToy-Chrome-Plugin-$VERSION.zip ./output
25
30
echo $VERSION >> ./output/version.txt
26
31
27
- - name : Upload output as artifact
32
+ - name : Zip the Firefox extension
33
+ env :
34
+ FIREFOX_EXTENSION_ID : ${{ secrets.FIREFOX_EXTENSION_ID }}
35
+ run : |
36
+ cp ./app/* ./output/
37
+ cp ./manifest/manifest-firefox.json ./output/manifest.json
38
+ jq --arg id "$FIREFOX_EXT_ID" '.browser_specific_settings.gecko.id = $id' ./output/manifest.json > ./output/manifest.json.tmp && mv ./output/manifest.json.tmp ./output/manifest.json
39
+ zip -r ./output/ShaderToy-Firefox-Plugin-$VERSION.zip ./output
40
+
41
+ - name : Upload output as artifacts
28
42
uses : actions/upload-artifact@v4
29
43
with :
30
44
name : output
@@ -41,17 +55,25 @@ jobs:
41
55
42
56
- name : Install Dependencies for Publishing
43
57
run : |
44
- npm install -g chrome-webstore-upload-cli
58
+ npm install --save-dev publish-browser-extension
45
59
46
60
- name : Upload & Publish Extension to Chrome Store
61
+ env :
62
+ CHROME_CLIENT_ID : ${{ secrets.CHROME_CLIENT_ID }}
63
+ CHROME_CLIENT_SECRET : ${{ secrets.CHROME_CLIENT_SECRET }}
64
+ CHROME_REFRESH_TOKEN : ${{ secrets.CHROME_REFRESH_TOKEN }}
65
+ CHROME_EXTENSION_ID : ${{ secrets.CHROME_EXTENSION_ID }}
66
+ CHROME_PUBLISH_TARGET : trustedTesters
67
+ CHROME_SKIP_SUBMIT_REVIEW : true
68
+ FIREFOX_EXTENSION_ID : ${{ secrets.FIREFOX_EXTENSION_ID }}
69
+ FIREFOX_JWT_ISSUER : ${{ secrets.FIREFOX_JWT_ISSUER }}
70
+ FIREFOX_JWT_SECRET : ${{ secrets.FIREFOX_JWT_SECRET }}
71
+
47
72
run : |
48
73
VERSION=$(cat ./output/version.txt)
49
- chrome-webstore-upload upload \\
50
- --source ./output/ShaderToy-Chrome-Plugin-$VERSION.zip \\
51
- --extension-id $APP_ID \\
52
- --client-id $CLIENT_ID \\
53
- --client-secret $CLIENT_SECRET \\
54
- --refresh-token $REFRESH_TOKEN
74
+ npx publish-extension \
75
+ --chrome-zip ./output/ShaderToy-Chrome-Plugin-$VERSION.zip \
76
+ --firefox-zip ./output/ShaderToy-Firefox-Plugin-$VERSION.zip
55
77
56
78
release :
57
79
runs-on : self-hosted
65
87
- name : Publish Release on GitHub
66
88
run : |
67
89
VERSION=$(cat ./output/version.txt)
68
- gh release create $VERSION ./output/ShaderToy-Chrome-Plugin-$VERSION.zip --title "$VERSION" --notes "Release of version $VERSION"
90
+ gh release create $VERSION ./output/ShaderToy-Chrome-Plugin-$VERSION.zip --title "$VERSION" --notes "Release of version $VERSION (chrome) "
0 commit comments