@@ -15,16 +15,33 @@ 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
+ VERSION=$(cat ./manifests/version.txt)
24
+ echo $VERSION
25
+
26
+ - name : Zip the Chrome extension
27
+ run : |
28
+ cp ./app/* ./output/ -r
29
+ cp ./manifest/manifest-chrome.json ./output/manifest.json
30
+ jq --arg version "$VERSION" '.version = $version' ./output/manifest.json > ./output/manifest.json.tmp && mv ./output/manifest.json.tmp ./output/manifest.json
31
+ zip -r ./output/ShaderToy-Chrome-Plugin-$VERSION.zip ./output
25
32
echo $VERSION >> ./output/version.txt
26
33
27
- - name : Upload output as artifact
34
+ - name : Zip the Firefox extension
35
+ env :
36
+ FIREFOX_EXTENSION_ID : ${{ secrets.FIREFOX_EXTENSION_ID }}
37
+ run : |
38
+ cp ./app/* ./output/ -r
39
+ cp ./manifest/manifest-firefox.json ./output/manifest.json
40
+ 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
41
+ jq --arg version "$VERSION" '.version = $version' ./output/manifest.json > ./output/manifest.json.tmp && mv ./output/manifest.json.tmp ./output/manifest.json
42
+ zip -r ./output/ShaderToy-Firefox-Plugin-$VERSION.zip ./output
43
+
44
+ - name : Upload output as artifacts
28
45
uses : actions/upload-artifact@v4
29
46
with :
30
47
name : output
@@ -41,17 +58,25 @@ jobs:
41
58
42
59
- name : Install Dependencies for Publishing
43
60
run : |
44
- npm install -g chrome-webstore-upload-cli
61
+ npm install --save-dev publish-browser-extension
45
62
46
63
- name : Upload & Publish Extension to Chrome Store
64
+ env :
65
+ CHROME_CLIENT_ID : ${{ secrets.CHROME_CLIENT_ID }}
66
+ CHROME_CLIENT_SECRET : ${{ secrets.CHROME_CLIENT_SECRET }}
67
+ CHROME_REFRESH_TOKEN : ${{ secrets.CHROME_REFRESH_TOKEN }}
68
+ CHROME_EXTENSION_ID : ${{ secrets.CHROME_EXTENSION_ID }}
69
+ CHROME_PUBLISH_TARGET : trustedTesters
70
+ CHROME_SKIP_SUBMIT_REVIEW : true
71
+ FIREFOX_EXTENSION_ID : ${{ secrets.FIREFOX_EXTENSION_ID }}
72
+ FIREFOX_JWT_ISSUER : ${{ secrets.FIREFOX_JWT_ISSUER }}
73
+ FIREFOX_JWT_SECRET : ${{ secrets.FIREFOX_JWT_SECRET }}
74
+
47
75
run : |
48
76
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
77
+ npx publish-extension \
78
+ --chrome-zip ./output/ShaderToy-Chrome-Plugin-$VERSION.zip \
79
+ --firefox-zip ./output/ShaderToy-Firefox-Plugin-$VERSION.zip
55
80
56
81
release :
57
82
runs-on : self-hosted
65
90
- name : Publish Release on GitHub
66
91
run : |
67
92
VERSION=$(cat ./output/version.txt)
68
- gh release create $VERSION ./output/ShaderToy-Chrome-Plugin-$VERSION.zip --title "$VERSION" --notes "Release of version $VERSION"
93
+ gh release create $VERSION ./output/ShaderToy-Chrome-Plugin-$VERSION.zip --title "$VERSION" --notes "Release of version $VERSION (chrome) "
0 commit comments