2525 uses : actions/checkout@v4
2626 with :
2727 token : ${{ secrets.GITHUB_TOKEN }}
28+ fetch-depth : 0 # Fetch all history for proper branching
2829
2930 - name : Set up Python
3031 uses : actions/setup-python@v5
@@ -62,34 +63,79 @@ jobs:
6263 mkdir -p extension-temp
6364 cd extension-temp
6465
65- # Download each file from release
66- curl -L -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" \
66+ # First, try to download the zip archive if available
67+ ZIP_URL=$( curl -s -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" \
6768 "https://api.github.com/repos/$REPO/releases/tags/$TAG" | \
68- jq -r '.assets[] | select(.name | endswith(".js") or endswith(".wasm") or endswith(".json") or endswith(".d.ts")) | .browser_download_url' | \
69- while read url; do
70- filename=$(basename "$url")
71- curl -L -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" "$url" -o "$filename"
72- done
69+ jq -r '.assets[] | select(.name == "extension-package.zip") | .browser_download_url')
7370
74- # Alternative: Download from release archive if available
75- # Or use the extension-package artifact
71+ if [ -n "$ZIP_URL" ] && [ "$ZIP_URL" != "null" ]; then
72+ echo "📦 Downloading extension-package.zip..."
73+ curl -L -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" "$ZIP_URL" -o extension-package.zip
74+ unzip -q extension-package.zip -d .
75+ # Files should now be in extension-temp/extension-package/ or extension-temp/
76+ if [ -d "extension-package" ]; then
77+ mv extension-package/* . 2>/dev/null || true
78+ rmdir extension-package 2>/dev/null || true
79+ fi
80+ else
81+ echo "📁 Downloading individual files from release..."
82+ # Download each file from release
83+ curl -s -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" \
84+ "https://api.github.com/repos/$REPO/releases/tags/$TAG" | \
85+ jq -r '.assets[] | select(.name | endswith(".js") or endswith(".wasm") or endswith(".json") or endswith(".d.ts")) | .browser_download_url' | \
86+ while read url; do
87+ if [ -n "$url" ] && [ "$url" != "null" ]; then
88+ filename=$(basename "$url")
89+ echo " Downloading $filename..."
90+ curl -L -H "Authorization: token ${{ secrets.SENTIENCE_CHROME_TOKEN }}" "$url" -o "$filename"
91+ fi
92+ done
93+ fi
94+
95+ # Verify files were downloaded
96+ echo "📋 Downloaded files:"
97+ ls -la
7698
7799 - name : Copy extension files
78100 if : steps.release.outputs.skip != 'true'
79101 run : |
80102 # Create extension directory structure
81103 mkdir -p sentience/extension/pkg
82104
83- # Copy extension files
84- cp extension-temp/manifest.json sentience/extension/ 2>/dev/null || echo "manifest.json not found in release"
85- cp extension-temp/content.js sentience/extension/ 2>/dev/null || echo "content.js not found in release"
86- cp extension-temp/background.js sentience/extension/ 2>/dev/null || echo "background.js not found in release"
87- cp extension-temp/injected_api.js sentience/extension/ 2>/dev/null || echo "injected_api.js not found in release"
105+ # Copy extension files (check both root and pkg subdirectory)
106+ cp extension-temp/manifest.json sentience/extension/ 2>/dev/null || echo "⚠️ manifest.json not found in release"
107+ cp extension-temp/content.js sentience/extension/ 2>/dev/null || echo "⚠️ content.js not found in release"
108+ cp extension-temp/background.js sentience/extension/ 2>/dev/null || echo "⚠️ background.js not found in release"
109+ cp extension-temp/injected_api.js sentience/extension/ 2>/dev/null || echo "⚠️ injected_api.js not found in release"
110+
111+ # Copy WASM files (check both root and pkg subdirectory)
112+ if [ -f "extension-temp/pkg/sentience_core.js" ]; then
113+ cp extension-temp/pkg/sentience_core.js sentience/extension/pkg/
114+ elif [ -f "extension-temp/sentience_core.js" ]; then
115+ cp extension-temp/sentience_core.js sentience/extension/pkg/
116+ else
117+ echo "⚠️ sentience_core.js not found"
118+ fi
119+
120+ if [ -f "extension-temp/pkg/sentience_core_bg.wasm" ]; then
121+ cp extension-temp/pkg/sentience_core_bg.wasm sentience/extension/pkg/
122+ elif [ -f "extension-temp/sentience_core_bg.wasm" ]; then
123+ cp extension-temp/sentience_core_bg.wasm sentience/extension/pkg/
124+ else
125+ echo "⚠️ sentience_core_bg.wasm not found"
126+ fi
127+
128+ # Copy TypeScript definitions
129+ if [ -d "extension-temp/pkg" ]; then
130+ cp extension-temp/pkg/*.d.ts sentience/extension/pkg/ 2>/dev/null || echo "⚠️ Type definitions not found"
131+ elif [ -d "extension-temp" ]; then
132+ cp extension-temp/*.d.ts sentience/extension/pkg/ 2>/dev/null || echo "⚠️ Type definitions not found"
133+ fi
88134
89- # Copy WASM files
90- cp extension-temp/pkg/sentience_core.js sentience/extension/pkg/ 2>/dev/null || echo "sentience_core.js not found "
91- cp extension-temp/pkg/sentience_core_bg.wasm sentience/extension/pkg/ 2>/dev/null || echo "sentience_core_bg.wasm not found"
92- cp extension-temp/pkg/*.d.ts sentience/extension/pkg/ 2>/dev/null || echo "Type definitions not found "
135+ # Verify copied files
136+ echo "📋 Copied files: "
137+ ls -la sentience/extension/
138+ ls -la sentience/extension/pkg/ 2>/dev/null || echo "⚠️ pkg directory not created "
93139
94140 - name : Check for changes
95141 if : steps.release.outputs.skip != 'true'
@@ -110,7 +156,9 @@ jobs:
110156 if : steps.release.outputs.skip != 'true' && steps.changes.outputs.changed == 'true'
111157 uses : peter-evans/create-pull-request@v5
112158 with :
113- token : ${{ secrets.GITHUB_TOKEN }}
159+ # Use GITHUB_TOKEN (built-in) if repository allows PR creation, otherwise use PR_TOKEN (PAT)
160+ # To use PAT: create secret named PR_TOKEN with a Personal Access Token that has 'repo' scope
161+ token : ${{ secrets.PR_TOKEN || secrets.GITHUB_TOKEN }}
114162 commit-message : " chore: sync extension files from sentience-chrome ${{ steps.release.outputs.tag }}"
115163 title : " Sync Extension: ${{ steps.release.outputs.tag }}"
116164 body : |
@@ -120,7 +168,10 @@ jobs:
120168 - Extension manifest and scripts
121169 - WASM binary and bindings
122170
123- **Source:** [sentience-chrome release ${{ steps.release.outputs.tag }}](${{ secrets.SENTIENCE_CHROME_REPO }}/releases/tag/${{ steps.release.outputs.tag }})
171+ **Source:** [sentience-chrome release ${{ steps.release.outputs.tag }}](https://github.com/ ${{ secrets.SENTIENCE_CHROME_REPO }}/releases/tag/${{ steps.release.outputs.tag }})
124172 branch : sync-extension-${{ steps.release.outputs.tag }}
125173 delete-branch : true
174+ labels : |
175+ automated
176+ extension-sync
126177
0 commit comments