Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
580 commits
Select commit Hold shift + click to select a range
09d8bc4
Merge branch 'master' of https://github.com/ajayyy/SponsorBlock into …
ajayyy Apr 24, 2025
4826bcf
Remove unnecessary change
ajayyy Apr 24, 2025
ddd0b4e
Merge pull request #2235 from FlorianZahn/auto-skip-only-on-youtube-m…
ajayyy Apr 24, 2025
897ebda
update chromedriver to make tests run
ajayyy Apr 24, 2025
0fdcade
update translations
ajayyy Apr 24, 2025
8b305ba
bump version
ajayyy Apr 24, 2025
3bb4cf4
Bump axios from 1.7.7 to 1.8.4
dependabot[bot] Apr 24, 2025
ae7916b
Fix behavior or auto skip on music videos with when only skipping on …
ajayyy Apr 24, 2025
f69d673
Add more delay to make tests work
ajayyy Apr 24, 2025
a45690b
Use self-hosted runner
ajayyy Apr 24, 2025
74433fe
Use VPN for testing action
ajayyy Apr 24, 2025
822e00a
Change wireguard connection action
ajayyy Apr 24, 2025
467e1ca
Install specific version of chrome for testing
ajayyy Apr 24, 2025
01df1e6
Fix commit hash for setup chrome workflow
ajayyy Apr 24, 2025
b2a5539
Another fix for button placement on new YouTube layout
ajayyy Apr 25, 2025
19635d2
bump version
ajayyy Apr 25, 2025
376ce21
Use useragent generator from maze-utils
mini-bomba Apr 26, 2025
93f4485
Merge pull request #2255 from mini-bomba/useragent
ajayyy Apr 28, 2025
3a77162
Fix time without skip for new yt player
ajayyy May 14, 2025
a126011
update translations
ajayyy May 16, 2025
1074f65
bump version
ajayyy May 16, 2025
2391337
Merge pull request #2252 from ajayyy/dependabot/npm_and_yarn/axios-1.8.4
ajayyy May 16, 2025
75d0043
Make popup more accessible
ajayyy May 23, 2025
cf4d13a
Fix next chapter hotkey causing multiple chapters to be skipped
ajayyy May 24, 2025
fcb9f32
Fix skip keybind also being used for skip to highlight
ajayyy May 24, 2025
a91ff4e
bump version
ajayyy May 24, 2025
4a7d431
bump translations
ajayyy May 24, 2025
56a2d76
Fix next chapter hotkey causing multiple chapters to be skipped on Ch…
ajayyy May 27, 2025
d7db6d5
bump version
ajayyy May 27, 2025
e4a050f
Rewrite popup in react
ajayyy Jun 2, 2025
550608c
Fix loading indicator in popup
ajayyy Jun 2, 2025
71b9e49
Fix errors
ajayyy Jun 2, 2025
0f2bd69
Only show import segments button when video open
ajayyy Jun 2, 2025
3734b61
Add copy debug log button to popup
ajayyy Jun 2, 2025
4330d5a
Copy styles over to popup
ajayyy Jun 4, 2025
cf2d39a
Delete old popup
ajayyy Jun 4, 2025
09bd27a
Add advanced skip options
ajayyy Jun 7, 2025
d5ff71b
Case insensitive contains
ajayyy Jun 7, 2025
72d3f68
Add autogenerated type for source in advance skip options
ajayyy Jun 7, 2025
1b5dc38
Add percentage options for advanced skip options
ajayyy Jun 7, 2025
dc5bb5b
Move skip rule code to new file
ajayyy Jun 7, 2025
3fb9286
Add action type attribute
ajayyy Jun 7, 2025
b2461a6
Add not contains, not regex and regex ignore case
ajayyy Jun 7, 2025
ec1df44
Also check values for not equals
ajayyy Jun 7, 2025
da1a535
Add channel id and name attribute for advanced skip options
ajayyy Jun 7, 2025
9a7c658
Increase es version
ajayyy Jun 11, 2025
6895948
Fix overlapping text on tooltip when chapters are present
ajayyy Jun 12, 2025
993c9be
Update recommended node version
ajayyy Jun 13, 2025
8022fa7
Speed up channel info fetching
ajayyy Jun 19, 2025
616d091
Remove extra chrome driver install
ajayyy Jun 19, 2025
4f29058
Remove old chrome version
ajayyy Jun 19, 2025
49968c3
Fix apt not having sudo
ajayyy Jun 19, 2025
5127ba8
Use apt get instead of apt
ajayyy Jun 19, 2025
efe2906
Update chrome package name
ajayyy Jun 19, 2025
bbdb03f
Use chromium for tests
ajayyy Jun 19, 2025
1a404af
Fix exporter test
ajayyy Jun 19, 2025
af68280
bump version
ajayyy Jun 19, 2025
4d92f1f
update translations
ajayyy Jun 19, 2025
a8c99dc
Fix some channel information requests failing
ajayyy Jun 21, 2025
f5d959e
bump version
ajayyy Jun 21, 2025
950b5dd
Use default chrome driver version
ajayyy Jun 23, 2025
9ee80cc
Count chrome driver mismatch as failure
ajayyy Jun 23, 2025
02b6ec7
Disable selenium test for now because of new captchas
ajayyy Jun 24, 2025
6ad146e
Fix donate link appearing on safari
ajayyy Jun 24, 2025
fa7b9ee
FIx skip to highlight button still showing when highlight disabled
ajayyy Jun 25, 2025
17c49ac
Fix segments appearing in chapter bar even when category disabled
ajayyy Jun 25, 2025
d2b859c
Remove old chapter rendering logic
ajayyy Jun 25, 2025
b7fc3a8
Fix your work box precision
ajayyy Jun 29, 2025
fafff3d
Fix showing minutes saved for local skipped time instead of formatted…
ajayyy Jun 29, 2025
3b42a5a
update translations
ajayyy Jun 30, 2025
07cd292
bump version
ajayyy Jun 30, 2025
87c4758
Fix upcoming notice being shown for disabled categories
ajayyy Jul 3, 2025
63f9bd5
Fix refresh button in popup
ajayyy Jul 9, 2025
e0165e4
Add guidelines button to popup
ajayyy Jul 15, 2025
435b215
Fix unsubmitted chapters auto skipping
ajayyy Jul 15, 2025
e89dfed
Add hide segment button to submission menu
ajayyy Jul 15, 2025
e9b687d
Improve help page layout and update some text
ajayyy Jul 16, 2025
330dd3c
bump version
ajayyy Jul 16, 2025
e510686
update translations
ajayyy Jul 16, 2025
6afcc6f
Add link to logo author to help page
ajayyy Jul 16, 2025
e32db21
Add option to hide segment creation buttons in the popup
ajayyy Jul 16, 2025
86cf324
FIx chapter name alignment on new YouTube layout
ajayyy Jul 21, 2025
907eba3
Fix skip to highlight button alignment on new layout
ajayyy Jul 21, 2025
92b3cda
Fix status of if segments were found in popup to account for disabled…
ajayyy Jul 21, 2025
4296ea3
Fix alignment of segment category names on hover
ajayyy Jul 21, 2025
fd45941
Add video duration to skip rules
ajayyy Jul 22, 2025
21b7507
Add video title as option for advanced skip settings
ajayyy Jul 23, 2025
133c61f
update translations
ajayyy Jul 23, 2025
f9f6ac0
bump version
ajayyy Jul 23, 2025
f4d2558
Add seperate hook category
ajayyy Jul 24, 2025
33c9392
Show the category name on hover on new YouTube player layout
ajayyy Jul 25, 2025
44177b9
Fix hover previews on normal layout
ajayyy Jul 25, 2025
8c2258a
Add notice about hook category change
ajayyy Jul 25, 2025
42ff5f0
update translations
ajayyy Jul 25, 2025
0bca508
bump version
ajayyy Jul 25, 2025
28e3ef6
Remove `invidious.snopyta.org` from default config
injust Jul 27, 2025
06ead87
Merge pull request #2310 from injust/patch-1
ajayyy Jul 27, 2025
13f9914
Request unlimited storate permission in sponsorblock on Firefox
ajayyy Aug 9, 2025
9d48d4e
Actually remove rejected promises from the pendingList
mini-bomba Aug 19, 2025
fd2826a
Merge pull request #2319 from mini-bomba/segment_fetching_try_finally
ajayyy Aug 19, 2025
de45d47
Bump sha.js and web-ext
dependabot[bot] Aug 21, 2025
cc17081
Merge pull request #2322 from ajayyy/dependabot/npm_and_yarn/multi-7a…
ajayyy Aug 21, 2025
bf6626f
Improve error handling
mini-bomba Aug 21, 2025
9a526c5
Merge pull request #2323 from mini-bomba/error_handling
ajayyy Aug 29, 2025
40eabe6
Add channel skip profiles
ajayyy Sep 9, 2025
9753b7c
Merge branch 'master' of https://github.com/ajayyy/SponsorBlock
ajayyy Sep 9, 2025
05fa9ff
Fix skip profile fallback for toggle settings not working
ajayyy Sep 9, 2025
e1e6660
Handle popup staying open for videoID changes
ajayyy Sep 9, 2025
233da8c
Added better UI for nested chapters
gosha305 Sep 14, 2025
86a7920
Merge branch 'master' into loop-chapters
gosha305 Sep 15, 2025
918ae90
Fix thumbnails not displaying full video labels on new YouTube layout
ajayyy Sep 16, 2025
299560e
Formatting fixes and add locales
ajayyy Sep 18, 2025
955eb9e
Merge pull request #2334 from gosha305/loop-chapters
ajayyy Sep 18, 2025
d7ecf41
bump version
ajayyy Sep 18, 2025
f533921
update translations
ajayyy Sep 18, 2025
4d74516
Request unlimited storage for new local data
ajayyy Sep 18, 2025
d4995a6
Don't show skip profile button when not on a video
ajayyy Sep 18, 2025
c499198
Add indicator for non channel skip profiles
ajayyy Sep 18, 2025
6d884fe
Fix deselecting sometimes making the skip profile ui go to a bad state
ajayyy Sep 18, 2025
634e249
Fix live chat messing with skip profile ui
ajayyy Sep 18, 2025
5f6d719
Remove extra function calls
ajayyy Sep 18, 2025
1b7bcef
Remove extra message type
ajayyy Sep 18, 2025
82c5dd8
Make sure channel id info is never null
ajayyy Sep 18, 2025
65277dc
Fix skip segments error message triggering when it shouldn't
ajayyy Sep 18, 2025
f6360a4
Fix original tooltip not being found when rendering chapters
ajayyy Sep 18, 2025
948e39e
Actual fix for original tooltip not being found
ajayyy Sep 18, 2025
1da5f33
Fix curve for popup buttons on hover
ajayyy Sep 18, 2025
808c371
Fix segment hiding/unhiding
mini-bomba Sep 19, 2025
5043a5f
Sync internal hidden status with segment's value on change
mini-bomba Sep 19, 2025
915fd70
Cache chapter nesting results
mini-bomba Sep 19, 2025
7cbb0ec
Merge pull request #2336 from mini-bomba/fix/segment-hiding
ajayyy Sep 19, 2025
9bf892c
add source maps to releases
mini-bomba Aug 28, 2025
bf68ce1
deploy firefox beta releases to github pages, enable updates
mini-bomba Aug 28, 2025
e5bccf9
Set up uploading source maps to github pages
mini-bomba Aug 29, 2025
a34e6e6
Enable TS source maps in prod
mini-bomba Aug 29, 2025
c30f8ec
Fix missing permissions for release workflow
ajayyy Sep 16, 2025
1056d1e
fix remote source maps for users with custom ghp domains
mini-bomba Sep 16, 2025
e63a677
Delay source-maps branch config for source code zip
mini-bomba Sep 19, 2025
14d7d79
Rewrite chapter nesting code
mini-bomba Sep 20, 2025
7ccdf67
Set default tab to chapters if there are no segments
FelixFourcolor Sep 21, 2025
9e501a5
refactor
FelixFourcolor Sep 21, 2025
aa04ed7
Fix: prevent auto-switch tab on refresh
FelixFourcolor Sep 21, 2025
1b2c3f5
Hide also the tab buttons if there are only chapters
FelixFourcolor Sep 21, 2025
444b90c
simplify tabFilter
FelixFourcolor Sep 21, 2025
3d84152
Begin implementing lexer
mschae23 Sep 22, 2025
2370adb
Tokenize keywords
mschae23 Sep 23, 2025
2004f6b
Implement lexing strings and numbers
mschae23 Sep 23, 2025
2a2d9de
Implement parser and configToText, remove old parser
mschae23 Sep 23, 2025
8d0d71b
Always use parentheses in unclear nesting
mschae23 Sep 23, 2025
f64a552
Add missing documentation comments
mschae23 Sep 23, 2025
ebc323a
Fix some operators being shadowed, improve errors
mschae23 Sep 23, 2025
7c61c8b
Use error log level, prefix messages
mschae23 Sep 23, 2025
ff43268
Merge pull request #2339 from mini-bomba/fix/chapter-nesting-crash
ajayyy Sep 24, 2025
d165e06
Fix various tokenization issues
mschae23 Sep 24, 2025
fa8db7c
Fix some attributes being shadowed
mschae23 Sep 24, 2025
75caa40
Add migration from old storage format
mschae23 Sep 24, 2025
f6109ac
Remove dead code
mschae23 Sep 24, 2025
1ae1014
Convert nested functions to classes
mschae23 Sep 24, 2025
7982ccb
Fix wrong logic when waiting for image source
ajayyy Sep 24, 2025
9fb3921
Merge branch 'master' of https://github.com/ajayyy/SponsorBlock
ajayyy Sep 24, 2025
0eb222a
Minor improvements
mschae23 Sep 27, 2025
7749a12
Merge branch 'master' into rules-parser
mschae23 Sep 27, 2025
458e33a
Bump tmp and web-ext
dependabot[bot] Sep 29, 2025
17896b2
Merge pull request #2348 from ajayyy/dependabot/npm_and_yarn/multi-d9…
ajayyy Sep 29, 2025
c22d1b5
Merge pull request #2340 from FelixFourcolor/master
ajayyy Sep 30, 2025
d7af742
Merge pull request #2337 from mini-bomba/port-dearrow-autoupdate
ajayyy Sep 30, 2025
8b87a83
bump version
ajayyy Sep 30, 2025
c91df6e
update translations
ajayyy Sep 30, 2025
bc516c2
Delete temp config if config deleted
ajayyy Oct 2, 2025
26f9a85
Hide settings not affected by skip profile when non-default profile i…
ajayyy Oct 2, 2025
510029a
Implement `not` operator
mschae23 Sep 27, 2025
f36d63e
Merge branch 'master' into not-operator
mschae23 Oct 2, 2025
479c31d
Add `not` operator support in configToText
mschae23 Oct 2, 2025
9deb69b
Fix layout on donation button
ajayyy Oct 3, 2025
068307f
Colour segment selector based on category colour
ajayyy Oct 3, 2025
e1b1894
Colour time inputs as well
ajayyy Oct 3, 2025
0257791
Add segment list default tab config
FelixFourcolor Oct 6, 2025
d0978bf
update translations
ajayyy Oct 6, 2025
1609995
Merge pull request #2355 from FelixFourcolor/segment-list-default-tab
ajayyy Oct 6, 2025
f80ddc8
Merge branch 'master' into rules-parser
mschae23 Oct 7, 2025
fae3a35
Add pride theme
ajayyy Oct 9, 2025
da1d1ff
Merge branch 'master' of https://github.com/ajayyy/SponsorBlock
ajayyy Oct 9, 2025
685bda2
bump version
ajayyy Oct 9, 2025
03dc749
Move buttons back to the left on new youtube layout
ajayyy Oct 9, 2025
b59241c
Fix skip profile menu appearing behind your work box
ajayyy Oct 14, 2025
7a605b8
bump version
ajayyy Oct 14, 2025
9f10aaa
Typo fix in README.md
lawther Oct 18, 2025
df21d08
Fix current time being wrong when at end of video on new YouTube layout
ajayyy Oct 19, 2025
590281f
Adjust skip profile name box size
ajayyy Oct 19, 2025
bd0be90
Merge pull request #2342 from mschae23/rules-parser
ajayyy Oct 20, 2025
60c4a05
Make advanced skip options live update
ajayyy Oct 20, 2025
4646f47
Fix background script broken on chromium
ajayyy Oct 23, 2025
9f0a138
Fix import error
ajayyy Oct 23, 2025
0a7fa75
Try selenium test again
ajayyy Oct 23, 2025
06ec260
Upgrade chromedriver
ajayyy Oct 23, 2025
dff3bdc
Disable selenium test again
ajayyy Oct 23, 2025
eed5de9
Don't auto skip on music videos if non music category disabled
ajayyy Oct 28, 2025
75288da
Show inspect button when only when time selected
ajayyy Oct 28, 2025
8882b1d
Fix preview bar scaling on new youtube layout
ajayyy Oct 28, 2025
145463e
Remove annoying gif from help page
ajayyy Oct 28, 2025
8dbd566
update translations
ajayyy Oct 29, 2025
44941ac
bump version
ajayyy Oct 29, 2025
2d3f762
Bump js-yaml
dependabot[bot] Nov 21, 2025
726bc15
Merge pull request #2379 from ajayyy/dependabot/npm_and_yarn/multi-75…
ajayyy Nov 21, 2025
18785d9
Bump node-forge from 1.3.1 to 1.3.2
dependabot[bot] Nov 26, 2025
6c6263f
Merge pull request #2384 from ajayyy/dependabot/npm_and_yarn/node-for…
ajayyy Nov 27, 2025
a097ed7
Fix chapter text rendering
ajayyy Dec 1, 2025
f92aad5
Merge branch 'master' of https://github.com/ajayyy/SponsorBlock
ajayyy Dec 1, 2025
654e969
Add support for Chromium 144
ajayyy Dec 12, 2025
71efda2
update translations
ajayyy Dec 12, 2025
b020704
bump version
ajayyy Dec 12, 2025
2c01946
Fix typings on isFirefox
ajayyy Dec 12, 2025
a58bec2
Fix chapter text sometimes being hidden
ajayyy Dec 17, 2025
3974231
bump version
ajayyy Dec 17, 2025
1527cd8
Add clipboard write permission and iframe attribute
Dec 17, 2025
a4e1861
Merge pull request #2363 from lawther/patch-1
ajayyy Dec 17, 2025
97cd11f
Remove clipboardWrite permission from manifest
Dec 18, 2025
4a0fa04
Bump lodash from 4.17.21 to 4.17.23
dependabot[bot] Jan 22, 2026
dfddffb
Merge pull request #2415 from ajayyy/dependabot/npm_and_yarn/lodash-4…
ajayyy Jan 22, 2026
3ce1107
Bump webpack from 5.94.0 to 5.105.0
dependabot[bot] Feb 7, 2026
ad1cf58
Merge pull request #2424 from ajayyy/dependabot/npm_and_yarn/webpack-…
ajayyy Feb 11, 2026
4551edd
yes
ajayyy Feb 17, 2026
8a84bb3
Merge branch 'master' of https://github.com/ajayyy/SponsorBlock
ajayyy Feb 17, 2026
f8b7cbe
Bump basic-ftp from 5.0.5 to 5.2.0
dependabot[bot] Feb 25, 2026
fd793c3
Merge pull request #2431 from ajayyy/dependabot/npm_and_yarn/basic-ft…
ajayyy Feb 26, 2026
382df6c
Bump minimatch from 3.1.2 to 3.1.5
dependabot[bot] Feb 28, 2026
81bad13
Merge pull request #2432 from ajayyy/dependabot/npm_and_yarn/minimatc…
ajayyy Feb 28, 2026
2bd3e07
Bump @tootallnate/once and jest-environment-jsdom
dependabot[bot] Mar 5, 2026
8eb7c0c
Merge pull request #2440 from ajayyy/dependabot/npm_and_yarn/multi-8f…
ajayyy Mar 5, 2026
ea8b0f4
Fix options page disappearing if all custom configurations are deleted
ajayyy Mar 17, 2026
49678c8
Merge updated channel lookups
ajayyy Mar 17, 2026
7f881e8
Merge pull request #2395 from ShreyMarwaha/fix/add-clipboard-write-pe…
ajayyy Mar 17, 2026
1aecc50
Bump node-forge from 1.3.2 to 1.4.0
dependabot[bot] Mar 29, 2026
4989dac
Merge pull request #2451 from ajayyy/dependabot/npm_and_yarn/node-for…
ajayyy Mar 29, 2026
1a1650b
Bump flatted from 3.2.0 to 3.4.2
dependabot[bot] Mar 29, 2026
34c639c
Merge pull request #2453 from ajayyy/dependabot/npm_and_yarn/flatted-…
ajayyy Mar 29, 2026
c178089
Fix button appearing on some YouTube embeds
ajayyy Mar 29, 2026
98c7ebd
Merge branch 'master' of https://github.com/ajayyy/SponsorBlock
ajayyy Mar 29, 2026
d0f13b5
bump version
ajayyy Mar 29, 2026
0bd5ad6
Fix on samsung internet browser
ajayyy Apr 17, 2026
3431ad9
Add support for new embed player
ajayyy Apr 17, 2026
7702e53
bump version
ajayyy Apr 17, 2026
f92a4af
update translations
ajayyy Apr 17, 2026
c6f9228
Maybe fix segments sometimes not skipping
ajayyy Apr 21, 2026
fa2b09a
Fix segments not skipping when video is scrolled away
ajayyy Apr 21, 2026
6dda49a
bump version
ajayyy Apr 21, 2026
1c223a7
Fix safari name max size
ajayyy Apr 21, 2026
4af96fe
Fix trimming code for safari new size
ajayyy Apr 21, 2026
aedbd60
feat: Add use_dynamic_url for web_accessible_resources
Sbrjt May 20, 2026
94a7b2e
Merge pull request #2490 from Sbrjt/master
ajayyy May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
- [ ] I agree to license my contribution under LGPL-3.0 **or** my contribution is from another project with a license compatible with LGPL-3.0
- [ ] I agree to license my contribution under GPL-3.0 and agree to allow distribution on app stores as outlined in [LICENSE-APPSTORE](https://github.com/ajayyy/SponsorBlock/blob/master/LICENSE-APPSTORE.txt)

To test this pull request, follow the [instructions in the wiki](https://github.com/ajayyy/SponsorBlock/wiki/Testing-a-Pull-Request).

Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ jobs:

steps:
# Initialization
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '18'
- run: npm ci
Expand All @@ -27,7 +27,7 @@ jobs:
# Create Chrome artifacts
- name: Create Chrome artifacts
run: npm run build:chrome
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: ChromeExtension
path: dist
Expand All @@ -39,7 +39,7 @@ jobs:
# Create Firefox artifacts
- name: Create Firefox artifacts
run: npm run build:firefox
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: FirefoxExtension
path: dist
Expand All @@ -50,7 +50,7 @@ jobs:
# Create Beta artifacts (Builds with the name changed to beta)
- name: Create Chrome Beta artifacts
run: npm run build:chrome -- --env stream=beta
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: ChromeExtensionBeta
path: dist
Expand All @@ -60,7 +60,7 @@ jobs:

- name: Create Firefox Beta artifacts
run: npm run build:firefox -- --env stream=beta
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: FirefoxExtensionBeta
path: dist
Expand Down
206 changes: 163 additions & 43 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ jobs:

steps:
# Initialization
- uses: actions/checkout@v3
- name: Checkout release branch w/submodules
uses: actions/checkout@v5
with:
submodules: recursive
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Copy configuration
Expand All @@ -34,25 +35,27 @@ jobs:
path: ../builds/SourceCodeUseThisOne.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}

- run: npm ci

# Create Chrome artifacts
- name: Create Chrome artifacts
run: npm run build:chrome
- run: mkdir ./builds
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/ChromeExtension.zip *
- name: Upload ChromeExtension to release
uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
- name: Checkout source maps branch
uses: actions/checkout@v5
with:
args: builds/ChromeExtension.zip
name: ChromeExtension.zip
path: ./builds/ChromeExtension.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}
path: source-maps
ref: source-maps
- name: Set up committer info
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- run: npm ci

# Create Firefox artifacts
- name: Create Firefox artifacts
run: npm run build:firefox
run: npm run build:firefox -- --env ghpSourceMaps
- run: mkdir ./builds
- name: Move Firefox source maps to source map repo
run: |
VERSION=`jq -r '.version' ./dist/manifest.json`
mkdir -p "./source-maps/firefox/$VERSION/"
mv -v ./dist/**/*.js.map "./source-maps/firefox/$VERSION/"
cp -v ./dist/**/*.js.LICENSE.txt "./source-maps/firefox/$VERSION/"
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/FirefoxExtension.zip *
- name: Upload FirefoxExtension to release
Expand All @@ -62,24 +65,56 @@ jobs:
name: FirefoxExtension.zip
path: ./builds/FirefoxExtension.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}

# Create Beta artifacts (Builds with the name changed to beta)
- name: Create Chrome Beta artifacts
run: npm run build:chrome -- --env stream=beta

# Create Chrome artifacts
- name: Create Chrome artifacts
run: npm run build:chrome -- --env ghpSourceMaps
- name: Move Chrome source maps to source map repo
run: |
VERSION=`jq -r '.version' ./dist/manifest.json`
mkdir -p "./source-maps/chrome/$VERSION/"
mv -v ./dist/**/*.js.map "./source-maps/chrome/$VERSION/"
cp -v ./dist/**/*.js.LICENSE.txt "./source-maps/chrome/$VERSION/"
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/ChromeExtensionBeta.zip *
- name: Upload ChromeExtensionBeta to release
run: cd ./dist ; zip -r ../builds/ChromeExtension.zip *
- name: Upload ChromeExtension to release
uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
with:
args: builds/ChromeExtensionBeta.zip
name: ChromeExtensionBeta.zip
path: ./builds/ChromeExtensionBeta.zip
args: builds/ChromeExtension.zip
name: ChromeExtension.zip
path: ./builds/ChromeExtension.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}

# Create Edge artifacts
- name: Clear dist for Edge
run: rm -rf ./dist
- name: Create Edge artifacts
run: npm run build:edge -- --env ghpSourceMaps
- name: Move Edge source maps to source map repo
run: |
VERSION=`jq -r '.version' ./dist/manifest.json`
mkdir -p "./source-maps/edge/$VERSION/"
mv -v ./dist/**/*.js.map "./source-maps/edge/$VERSION/"
cp -v ./dist/**/*.js.LICENSE.txt "./source-maps/edge/$VERSION/"
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/EdgeExtension.zip *
- name: Upload EdgeExtension to release
uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
with:
args: builds/EdgeExtension.zip
name: EdgeExtension.zip
path: ./builds/EdgeExtension.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}

# Create Safari artifacts
- name: Create Safari artifacts
run: npm run build:safari
run: npm run build:safari -- --env ghpSourceMaps
- name: Move Safari source maps to source map repo
run: |
VERSION=`jq -r '.version' ./dist/manifest.json`
mkdir -p "./source-maps/safari/$VERSION/"
mv -v ./dist/**/*.js.map "./source-maps/safari/$VERSION/"
cp -v ./dist/**/*.js.LICENSE.txt "./source-maps/safari/$VERSION/"
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/SafariExtension.zip *
- name: Upload SafariExtension to release
Expand All @@ -90,28 +125,38 @@ jobs:
path: ./builds/SafariExtension.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}

# Create Edge artifacts
- name: Clear dist for Edge
run: rm -rf ./dist
- name: Create Edge artifacts
run: npm run build:edge
# Create Beta artifacts (Builds with the name changed to beta)
- name: Create Chrome Beta artifacts
run: npm run build:chrome -- --env stream=beta --env ghpSourceMaps
- name: Move Chrome Beta source maps to source map repo
run: |
VERSION=`jq -r '.version' ./dist/manifest.json`
mkdir -p "./source-maps/chrome-beta/$VERSION/"
mv -v ./dist/**/*.js.map "./source-maps/chrome-beta/$VERSION/"
cp -v ./dist/**/*.js.LICENSE.txt "./source-maps/chrome-beta/$VERSION/"
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/EdgeExtension.zip *
- name: Upload EdgeExtension to release
run: cd ./dist ; zip -r ../builds/ChromeExtensionBeta.zip *
- name: Upload ChromeExtensionBeta to release
uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
with:
args: builds/EdgeExtension.zip
name: EdgeExtension.zip
path: ./builds/EdgeExtension.zip
args: builds/ChromeExtensionBeta.zip
name: ChromeExtensionBeta.zip
path: ./builds/ChromeExtensionBeta.zip
repo-token: ${{ secrets.GITHUB_TOKEN }}

# Firefox Beta
- name: Create Firefox Beta artifacts
run: npm run build:firefox -- --env stream=beta
- uses: actions/upload-artifact@v3
run: npm run build:firefox -- --env stream=beta --env autoupdate --env ghpSourceMaps
- uses: actions/upload-artifact@v4
with:
name: FirefoxExtensionBeta
path: dist
- name: Move Firefox Beta source maps to source map repo
run: |
VERSION=`jq -r '.version' ./dist/manifest.json`
mkdir -p "./source-maps/firefox-beta/$VERSION/"
mv -v ./dist/**/*.js.map "./source-maps/firefox-beta/$VERSION/"
cp -v ./dist/**/*.js.LICENSE.txt "./source-maps/firefox-beta/$VERSION/"
- name: Zip Artifacts
run: cd ./dist ; zip -r ../builds/FirefoxExtensionBeta.zip *

Expand All @@ -121,11 +166,9 @@ jobs:
env:
WEB_EXT_API_KEY: ${{ secrets.WEB_EXT_API_KEY }}
WEB_EXT_API_SECRET: ${{ secrets.WEB_EXT_API_SECRET }}
- name: Install rename
run: sudo apt-get install rename
- name: Rename signed file
run: cd ./web-ext-artifacts ; rename 's/.*/FirefoxSignedInstaller.xpi/' *
- uses: actions/upload-artifact@v3
run: mv ./web-ext-artifacts/* ./web-ext-artifacts/FirefoxSignedInstaller.xpi
- uses: actions/upload-artifact@v4
with:
name: FirefoxExtensionSigned.xpi
path: ./web-ext-artifacts/FirefoxSignedInstaller.xpi
Expand All @@ -138,3 +181,80 @@ jobs:
path: ./web-ext-artifacts/FirefoxSignedInstaller.xpi
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Commit & push new source maps
if: always()
run: |
VERSION=`jq -r '.version' ./dist/manifest.json`
cd ./source-maps
git add .
git commit -m "Publish source maps for version $VERSION"
git push

- name: Prepare new github pages deployment
shell: python
run: |
from pathlib import Path
import json
import shutil
import os

# config stuff
installer_name = "FirefoxSignedInstaller.xpi"
owner, repo_name = os.environ["GITHUB_REPOSITORY"].split("/")
owner = owner.lower()

# create the github paged dir
ghp_dir = Path("./github-pages")
ghp_dir.mkdir(parents=True, exist_ok=True)

# move in the installer
Path("./web-ext-artifacts", installer_name).rename(ghp_dir / installer_name)

# read manifest.json and extract parameters
with open("./dist/manifest.json") as f:
manifest = json.load(f)
current_version = manifest["version"]
ext_id = manifest["browser_specific_settings"]["gecko"]["id"]

# generate updates file
updates = {
"addons": {
ext_id: {
"updates": [
{
"version": current_version,
# param doesn't actually matter, it's just a cachebuster
"update_link": f"https://{owner}.github.io/{repo_name}/{installer_name}?v={current_version}",
},
],
},
},
}
(ghp_dir / "updates.json").write_text(json.dumps(updates))

# copy in source maps
def only_sourcemaps(cur, ls):
if '/' in cur:
return []
return set(ls) - {"chrome", "chrome-beta", "edge", "firefox", "firefox-beta", "safari"}
shutil.copytree("source-maps", ghp_dir, ignore=only_sourcemaps, dirs_exist_ok=True)

- name: Upload new github pages deployment
uses: actions/upload-pages-artifact@v3
with:
path: ./github-pages

deploy-ghp:
name: Deploy to github pages
needs: build
permissions:
id-token: write
pages: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy
id: deployment
uses: actions/deploy-pages@v4
13 changes: 9 additions & 4 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,28 @@ jobs:

steps:
# Initialization
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '18'
- run: npm ci
- run: sudo apt-get install chromium-chromedriver

- name: Copy configuration
run: cp config.json.example config.json

- name: Set up WireGuard Connection
uses: niklaskeerl/easy-wireguard-action@50341d5f4b8245ff3a90e278aca67b2d283c78d0
with:
WG_CONFIG_FILE: ${{ secrets.WG_CONFIG_FILE }}

- name: Run tests
run: npm run test

- name: Upload results on fail
if: ${{ failure() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Test Results
path: ./test-results
6 changes: 3 additions & 3 deletions .github/workflows/update-oss-attribution.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ jobs:
update-oss:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install and generate attribution
Expand All @@ -29,7 +29,7 @@ jobs:
cd ci && npx ts-node prettify.ts

- name: Create pull request to update list
uses: peter-evans/create-pull-request@2b011faafdcbc9ceb11414d64d0573f37c774b04
uses: peter-evans/create-pull-request@v7
# v4.2.3
with:
commit-message: Update OSS Attribution
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/updateInvidous.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
check-list:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Download instance lists
Expand All @@ -21,7 +21,7 @@ jobs:
run: npm run ci:invidious

- name: Create pull request to update list
uses: peter-evans/create-pull-request@2b011faafdcbc9ceb11414d64d0573f37c774b04
uses: peter-evans/create-pull-request@v7
# v4.2.3
with:
commit-message: Update Invidious List
Expand Down
Loading