shaka-player 3.3.2 → 3.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.csslintrc +11 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/pull_request_template.md +6 -34
- package/.github/workflows/build-and-test.yaml +130 -0
- package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
- package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
- package/.github/workflows/demo-version-index.yaml +29 -0
- package/.github/workflows/nightly-demo.yaml +42 -0
- package/.github/workflows/release-please.yaml +145 -0
- package/.github/workflows/safari-homedir-launcher.sh +18 -0
- package/.github/workflows/selenium-lab-tests.yaml +93 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +1691 -1675
- package/CONTRIBUTING.md +2 -2
- package/CONTRIBUTORS +2 -0
- package/README.md +7 -7
- package/app-engine/README.md +9 -0
- package/app-engine/demo-version-index/README.md +14 -0
- package/app-engine/demo-version-index/app.yaml +2 -0
- package/app-engine/demo-version-index/main.py +162 -0
- package/app-engine/demo-version-index/requirements.txt +6 -0
- package/app-engine/demo-version-index/templates/index.html +114 -0
- package/app-engine/shaka-player-demo/README.md +18 -0
- package/app-engine/shaka-player-demo/app.yaml +61 -0
- package/app-engine/shaka-player-demo/main.py +95 -0
- package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
- package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
- package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
- package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
- package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
- package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
- package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
- package/app-engine/shaka-player-demo/posters/standard.png +0 -0
- package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
- package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
- package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
- package/app-engine/shaka-player-demo/posters.py +110 -0
- package/app-engine/shaka-player-demo/requirements.txt +5 -0
- package/app-engine/shaka-player-demo/time.txt +1 -0
- package/build/README.md +1 -1
- package/build/checkversion.py +1 -1
- package/build/conformance.textproto +13 -0
- package/build/docker/Dockerfile +20 -0
- package/build/docker/docker-compose.yml +10 -0
- package/build/gendeps.py +18 -15
- package/build/shaka-lab.yaml +163 -0
- package/build/shakaBuildHelpers.py +4 -29
- package/build/test.py +87 -28
- package/build/types/polyfill +1 -0
- package/build/wrapper.template.js +2 -2
- package/demo/TengwarTelcontar.woff2 +0 -0
- package/demo/asset_card.js +1 -2
- package/demo/cast_receiver/index.html +1 -1
- package/demo/cast_receiver/receiver_app.css +14 -14
- package/demo/common/assets.js +2 -0
- package/demo/config.js +0 -1
- package/demo/custom.js +0 -1
- package/demo/customWarning.txt +2 -2
- package/demo/demo.less +29 -18
- package/demo/demo_uncompiled.js +1 -13
- package/demo/index.html +1 -1
- package/demo/main.js +3 -3
- package/dist/controls.css +3 -3
- package/dist/controls.css.map +1 -1
- package/dist/demo.compiled.debug.js +191 -194
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +191 -194
- package/dist/demo.compiled.map +4 -4
- package/dist/demo.css +1 -1
- package/dist/demo.css.map +1 -1
- package/dist/deps.js +233 -226
- package/dist/locales.js +31 -31
- package/dist/receiver.compiled.debug.js +43 -45
- package/dist/receiver.compiled.debug.map +4 -4
- package/dist/receiver.compiled.js +43 -45
- package/dist/receiver.compiled.map +4 -4
- package/dist/shaka-player.compiled.d.ts +246 -236
- package/dist/shaka-player.compiled.debug.d.ts +246 -236
- package/dist/shaka-player.compiled.debug.externs.js +14 -3
- package/dist/shaka-player.compiled.debug.js +214 -222
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +14 -3
- package/dist/shaka-player.compiled.js +845 -851
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +290 -280
- package/dist/shaka-player.ui.debug.d.ts +290 -280
- package/dist/shaka-player.ui.debug.externs.js +14 -3
- package/dist/shaka-player.ui.debug.js +295 -303
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +14 -3
- package/dist/shaka-player.ui.js +1000 -1006
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/REDESIGN.md +33 -33
- package/docs/design/bg-fetch.md +2 -2
- package/docs/design/codec_preferences.md +1 -1
- package/docs/design/dash-audio-channels.md +3 -3
- package/docs/design/dash-manifests.md +1 -1
- package/docs/design/gap-jumping.md +3 -3
- package/docs/design/preload.md +2 -2
- package/docs/tutorials/faq.md +8 -8
- package/docs/tutorials/index.json +1 -0
- package/docs/tutorials/plugins.md +3 -3
- package/docs/tutorials/selenium-grid-config.md +122 -0
- package/docs/tutorials/welcome.md +10 -2
- package/externs/cmcd.js +1 -1
- package/karma.conf.js +137 -30
- package/lib/abr/simple_abr_manager.js +12 -6
- package/lib/cast/cast_proxy.js +3 -4
- package/lib/cea/cea608_data_channel.js +2 -2
- package/lib/cea/cea708_service.js +5 -4
- package/lib/cea/mp4_cea_parser.js +11 -5
- package/lib/cea/sei_processor.js +6 -3
- package/lib/dash/dash_parser.js +9 -11
- package/lib/dash/mpd_utils.js +4 -5
- package/lib/dash/segment_list.js +1 -2
- package/lib/dash/segment_template.js +3 -3
- package/lib/hls/hls_parser.js +11 -9
- package/lib/hls/manifest_text_parser.js +3 -3
- package/lib/media/adaptation_set.js +1 -2
- package/lib/media/content_workarounds.js +2 -2
- package/lib/media/drm_engine.js +3 -2
- package/lib/media/media_source_engine.js +3 -2
- package/lib/media/mp4_segment_index_parser.js +1 -4
- package/lib/media/playhead.js +2 -2
- package/lib/media/presentation_timeline.js +18 -8
- package/lib/media/streaming_engine.js +6 -6
- package/lib/media/time_ranges_utils.js +1 -3
- package/lib/media/video_wrapper.js +1 -1
- package/lib/net/networking_engine.js +1 -1
- package/lib/offline/storage.js +4 -4
- package/lib/player.js +34 -16
- package/lib/polyfill/all.js +2 -3
- package/lib/polyfill/encryption_scheme.js +1 -1
- package/lib/polyfill/media_capabilities.js +3 -3
- package/lib/polyfill/mediasource.js +1 -1
- package/lib/polyfill/symbol.js +46 -0
- package/lib/text/cue.js +1 -1
- package/lib/text/simple_text_displayer.js +2 -1
- package/lib/text/ttml_text_parser.js +8 -5
- package/lib/text/ui_text_displayer.js +1 -1
- package/lib/util/buffer_utils.js +1 -3
- package/lib/util/ebml_parser.js +3 -3
- package/lib/util/error.js +1 -1
- package/lib/util/iterables.js +0 -46
- package/lib/util/mp4_box_parsers.js +1 -4
- package/lib/util/mp4_parser.js +5 -7
- package/lib/util/periods.js +10 -11
- package/lib/util/platform.js +3 -3
- package/lib/util/pssh.js +1 -4
- package/lib/util/stream_utils.js +4 -3
- package/lib/util/string_utils.js +3 -5
- package/lib/util/uint8array_utils.js +3 -5
- package/lib/util/xml_utils.js +15 -7
- package/package.json +61 -36
- package/roadmap.md +17 -17
- package/shaka-player.uncompiled.js +1 -0
- package/test/abr/simple_abr_manager_unit.js +3 -8
- package/test/ads/ad_manager_unit.js +0 -6
- package/test/cast/cast_proxy_unit.js +0 -8
- package/test/cast/cast_receiver_integration.js +1 -18
- package/test/cast/cast_receiver_unit.js +1 -9
- package/test/cast/cast_sender_unit.js +0 -6
- package/test/cast/cast_utils_unit.js +0 -13
- package/test/cea/cea608_memory_unit.js +0 -5
- package/test/cea/cea708_service_unit.js +0 -7
- package/test/cea/cea708_window_unit.js +0 -5
- package/test/cea/cea_decoder_unit.js +0 -6
- package/test/cea/dtvcc_packet_builder_unit.js +0 -3
- package/test/cea/dtvcc_packet_unit.js +0 -5
- package/test/cea/mp4_cea_parser_unit.js +0 -4
- package/test/dash/dash_parser_content_protection_unit.js +1 -10
- package/test/dash/dash_parser_live_unit.js +2 -15
- package/test/dash/dash_parser_manifest_unit.js +2 -16
- package/test/dash/dash_parser_segment_base_unit.js +1 -8
- package/test/dash/dash_parser_segment_list_unit.js +1 -7
- package/test/dash/dash_parser_segment_template_unit.js +0 -9
- package/test/dash/mpd_utils_unit.js +3 -11
- package/test/demo/demo_unit.js +0 -5
- package/test/deprecate/enforcer_unit.js +0 -4
- package/test/deprecate/version_unit.js +0 -2
- package/test/hls/hls_live_unit.js +2 -14
- package/test/hls/hls_parser_unit.js +2 -15
- package/test/hls/manifest_text_parser_unit.js +0 -10
- package/test/media/adaptation_set_criteria_unit.js +3 -7
- package/test/media/adaptation_set_unit.js +0 -2
- package/test/media/buffering_observer_unit.js +1 -4
- package/test/media/closed_caption_parser_unit.js +0 -3
- package/test/media/drm_engine_integration.js +2 -15
- package/test/media/drm_engine_unit.js +4 -24
- package/test/media/manifest_parser_unit.js +0 -4
- package/test/media/media_source_engine_integration.js +0 -7
- package/test/media/media_source_engine_unit.js +1 -14
- package/test/media/mp4_segment_index_parser_unit.js +0 -4
- package/test/media/play_rate_controller_unit.js +0 -4
- package/test/media/playhead_unit.js +8 -16
- package/test/media/presentation_timeline_unit.js +4 -7
- package/test/media/quality_observer_unit.js +0 -4
- package/test/media/region_observer_unit.js +1 -6
- package/test/media/region_timeline_unit.js +0 -3
- package/test/media/segment_index_unit.js +0 -6
- package/test/media/segment_reference_unit.js +0 -3
- package/test/media/stall_detector_unit.js +0 -5
- package/test/media/streaming_engine_integration.js +9 -36
- package/test/media/streaming_engine_unit.js +11 -35
- package/test/media/time_ranges_utils_unit.js +0 -2
- package/test/media/transmuxer_integration.js +0 -6
- package/test/media/webm_segment_index_parser_unit.js +0 -4
- package/test/net/data_uri_plugin_unit.js +0 -7
- package/test/net/http_plugin_unit.js +0 -9
- package/test/net/networking_engine_unit.js +0 -11
- package/test/offline/download_progress_estimator_unit.js +0 -2
- package/test/offline/indexeddb_storage_unit.js +0 -6
- package/test/offline/manifest_convert_unit.js +0 -8
- package/test/offline/offline_integration.js +1 -10
- package/test/offline/offline_manifest_parser_unit.js +0 -6
- package/test/offline/offline_scheme_unit.js +0 -8
- package/test/offline/offline_uri_unit.js +0 -2
- package/test/offline/storage_compatibility_unit.js +1 -14
- package/test/offline/storage_integration.js +1 -27
- package/test/player_external.js +2 -10
- package/test/player_integration.js +22 -28
- package/test/player_load_graph_integration.js +1 -6
- package/test/player_src_equals_external.js +3 -9
- package/test/player_src_equals_integration.js +0 -7
- package/test/player_unit.js +52 -37
- package/test/routing/walker_unit.js +0 -8
- package/test/test/assets/large_file.mpd +1 -1
- package/test/test/boot.js +75 -22
- package/test/test/externs/jasmine.js +2 -2
- package/test/test/externs/karma.js +4 -0
- package/test/test/namespace.js +10 -0
- package/test/test/util/canned_idb.js +0 -8
- package/test/test/util/cea_utils.js +0 -6
- package/test/test/util/dash_parser_util.js +0 -13
- package/test/test/util/fake_ad.js +0 -3
- package/test/test/util/fake_ad_manager.js +0 -9
- package/test/test/util/fake_demo_main.js +0 -5
- package/test/test/util/fake_drm_engine.js +0 -6
- package/test/test/util/fake_media_source_engine.js +0 -7
- package/test/test/util/fake_networking_engine.js +0 -5
- package/test/test/util/fake_text_displayer.js +0 -5
- package/test/test/util/indexeddb_utils.js +1 -10
- package/test/test/util/jasmine_fetch.js +0 -1
- package/test/test/util/loader.js +0 -18
- package/test/test/util/manifest_generator.js +9 -14
- package/test/test/util/manifest_parser_util.js +0 -6
- package/test/test/util/offline_utils.js +0 -5
- package/test/test/util/simple_fakes.js +9 -26
- package/test/test/util/stream_generator.js +0 -14
- package/test/test/util/streaming_engine_util.js +0 -15
- package/test/test/util/test_scheme.js +1 -19
- package/test/test/util/ttml_utils.js +0 -2
- package/test/test/util/ui_utils.js +0 -9
- package/test/test/util/util.js +5 -19
- package/test/test/util/waiter.js +84 -43
- package/test/text/cue_integration.js +0 -4
- package/test/text/lrc_text_parser_unit.js +0 -4
- package/test/text/mp4_ttml_parser_unit.js +0 -6
- package/test/text/mp4_vtt_parser_unit.js +1 -7
- package/test/text/sbv_text_parser_unit.js +0 -4
- package/test/text/simple_text_displayer_unit.js +1 -8
- package/test/text/srt_text_parser_unit.js +0 -4
- package/test/text/ssa_text_parser_unit.js +0 -5
- package/test/text/text_engine_unit.js +2 -7
- package/test/text/text_track_integration.js +0 -2
- package/test/text/ttml_text_parser_unit.js +2 -11
- package/test/text/ui_text_displayer_unit.js +44 -41
- package/test/text/vtt_text_parser_unit.js +0 -9
- package/test/text/web_vtt_generator_unit.js +0 -3
- package/test/ui/ad_ui_unit.js +0 -11
- package/test/ui/localization_unit.js +0 -3
- package/test/ui/text_displayer_layout_unit.js +1 -12
- package/test/ui/ui_customization_unit.js +0 -6
- package/test/ui/ui_integration.js +0 -16
- package/test/ui/ui_unit.js +1 -17
- package/test/util/abortable_operation_unit.js +4 -9
- package/test/util/array_utils_unit.js +0 -2
- package/test/util/buffer_utils_unit.js +0 -2
- package/test/util/cmcd_manager_unit.js +0 -3
- package/test/util/data_view_reader_unit.js +0 -4
- package/test/util/ebml_parser_unit.js +0 -4
- package/test/util/event_manager_unit.js +0 -3
- package/test/util/fake_event_target_unit.js +0 -5
- package/test/util/functional_unit.js +1 -1
- package/test/util/iterables_unit.js +0 -64
- package/test/util/language_utils_unit.js +0 -3
- package/test/util/manifest_parser_utils_unit.js +0 -2
- package/test/util/mp4_box_parsers_unit.js +0 -5
- package/test/util/mp4_parser_unit.js +0 -4
- package/test/util/multi_map_unit.js +0 -3
- package/test/util/object_utils_unit.js +0 -2
- package/test/util/periods_unit.js +14 -7
- package/test/util/pssh_unit.js +0 -5
- package/test/util/state_history_unit.js +0 -2
- package/test/util/stream_utils_unit.js +3 -8
- package/test/util/string_utils_unit.js +0 -6
- package/test/util/text_parser_unit.js +0 -2
- package/test/util/xml_utils_unit.js +0 -4
- package/ui/less/ad_controls.less +4 -4
- package/ui/less/buttons.less +5 -5
- package/ui/less/containers.less +9 -11
- package/ui/less/overflow_menu.less +4 -4
- package/ui/less/range_elements.less +5 -0
- package/ui/less/tooltip.less +1 -1
- package/ui/locales/sjn-translations.yaml +257 -0
- package/ui/locales/sjn.json +42 -0
- package/.github/workflows/build_and_test.yaml +0 -73
- package/.github/workflows/release.yaml +0 -53
- package/externs/svgelement.js +0 -18
- package/externs/webcrypto.js +0 -18
package/.csslintrc
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "stylelint-config-standard",
|
|
3
|
+
"customSyntax": "postcss-less",
|
|
3
4
|
"rules": {
|
|
4
5
|
"font-family-no-missing-generic-family-keyword": null,
|
|
5
6
|
"declaration-block-single-line-max-declarations": null,
|
|
6
7
|
"declaration-empty-line-before": null,
|
|
7
|
-
"max-line-length": [
|
|
8
|
+
"max-line-length": [80, {
|
|
8
9
|
ignorePattern: "/^@import\\s+/",
|
|
9
10
|
}],
|
|
11
|
+
"function-no-unknown": [true, {
|
|
12
|
+
ignoreFunctions: [
|
|
13
|
+
"data-uri",
|
|
14
|
+
"lighten",
|
|
15
|
+
"percentage",
|
|
16
|
+
],
|
|
17
|
+
}],
|
|
18
|
+
"property-no-vendor-prefix": null,
|
|
10
19
|
"selector-list-comma-newline-after": "always-multi-line",
|
|
20
|
+
"selector-no-vendor-prefix": null,
|
|
11
21
|
"selector-pseudo-element-colon-notation": "single",
|
|
12
22
|
"unit-allowed-list": ["em", "%", "px", "s", "deg", "vmin", "ms", "vh"]
|
|
13
23
|
}
|
|
@@ -18,7 +18,7 @@ assignees: ''
|
|
|
18
18
|
**Can you reproduce the issue with our latest release version?**
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
**Can you reproduce the issue with the latest code from `
|
|
21
|
+
**Can you reproduce the issue with the latest code from `main`?**
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
**Are you using the demo app or your own custom app?**
|
|
@@ -1,38 +1,10 @@
|
|
|
1
|
-
## Description
|
|
2
|
-
|
|
3
1
|
<!--
|
|
4
|
-
|
|
5
|
-
a summary of the change and which issue is fixed. Also include relevant
|
|
6
|
-
motivation and context. List any dependencies that are required for this
|
|
7
|
-
change.
|
|
8
|
-
|
|
9
|
-
If this fixes any issues, include lines like this:
|
|
10
|
-
Fixes #123
|
|
11
|
-
-->
|
|
2
|
+
Please remember to:
|
|
12
3
|
|
|
4
|
+
1. Use Conventional Commits syntax (fix: ..., feat: ..., etc.) in commits and
|
|
5
|
+
PR title (https://www.conventionalcommits.org/)
|
|
6
|
+
2. Tag any related or fixed issues ("Issue #123", "Closes #420")
|
|
7
|
+
3. Sign the Google CLA if you haven't (https://cla.developers.google.com)
|
|
13
8
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<!--
|
|
17
|
-
If you change the UI, add before and after screenshots demonstrating your
|
|
18
|
-
changes.
|
|
9
|
+
You may delete this comment from the PR description.
|
|
19
10
|
-->
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Type of change
|
|
23
|
-
|
|
24
|
-
- [ ] Bug fix (non-breaking change which fixes an issue)
|
|
25
|
-
- [ ] New feature (non-breaking change which adds functionality)
|
|
26
|
-
- [ ] Breaking change (fix or feature that would cause existing functionality to
|
|
27
|
-
not work as expected)
|
|
28
|
-
- [ ] This change requires a documentation update
|
|
29
|
-
|
|
30
|
-
## Checklist:
|
|
31
|
-
|
|
32
|
-
- [ ] I have signed the Google CLA <https://cla.developers.google.com>
|
|
33
|
-
- [ ] My code follows the style guidelines of this project
|
|
34
|
-
- [ ] I have made corresponding changes to the documentation
|
|
35
|
-
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
36
|
-
- [ ] I have verified my change on multiple browsers on different platforms
|
|
37
|
-
- [ ] I have run `./build/all.py` and the build passes
|
|
38
|
-
- [ ] I have run `./build/test.py` and all tests pass
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
name: Build and Test PR
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request: # Trigger for pull requests.
|
|
5
|
+
types: [opened, synchronize, reopened]
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
- v[0-9]*
|
|
9
|
+
workflow_dispatch: # Allows for manual triggering.
|
|
10
|
+
inputs:
|
|
11
|
+
ref:
|
|
12
|
+
description: "The ref to build and test."
|
|
13
|
+
required: false
|
|
14
|
+
|
|
15
|
+
# If another instance of this workflow is started for the same PR, cancel the
|
|
16
|
+
# old one. If a PR is updated and a new test run is started, the old test run
|
|
17
|
+
# will be cancelled automatically to conserve resources.
|
|
18
|
+
concurrency:
|
|
19
|
+
group: ${{ github.workflow }}-${{ github.event.inputs.ref || github.ref }}
|
|
20
|
+
cancel-in-progress: true
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
lint:
|
|
24
|
+
name: Lint
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- name: Checkout code
|
|
28
|
+
uses: actions/checkout@v2
|
|
29
|
+
with:
|
|
30
|
+
ref: ${{ github.event.inputs.ref || github.ref }}
|
|
31
|
+
|
|
32
|
+
- name: Lint
|
|
33
|
+
run: python build/check.py
|
|
34
|
+
|
|
35
|
+
build_and_test:
|
|
36
|
+
# Don't waste time doing a full matrix of test runs when there was an
|
|
37
|
+
# obvious linter error.
|
|
38
|
+
needs: lint
|
|
39
|
+
strategy:
|
|
40
|
+
matrix:
|
|
41
|
+
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
|
|
42
|
+
browser: ["Chrome", "Firefox", "Edge", "Safari", "Safari-14"]
|
|
43
|
+
exclude:
|
|
44
|
+
- os: ubuntu-latest
|
|
45
|
+
browser: Edge
|
|
46
|
+
- os: windows-latest
|
|
47
|
+
browser: Safari
|
|
48
|
+
- os: windows-latest
|
|
49
|
+
browser: Safari-14
|
|
50
|
+
- os: ubuntu-latest
|
|
51
|
+
browser: Safari
|
|
52
|
+
- os: ubuntu-latest
|
|
53
|
+
browser: Safari-14
|
|
54
|
+
include:
|
|
55
|
+
# Run Linux browsers with xvfb, so they're in a headless X session.
|
|
56
|
+
- os: ubuntu-latest
|
|
57
|
+
extra_flags: "--use-xvfb"
|
|
58
|
+
# Disable fail-fast so that one matrix-job failing doesn't make the other
|
|
59
|
+
# ones end early.
|
|
60
|
+
fail-fast: false
|
|
61
|
+
|
|
62
|
+
name: ${{ matrix.os }} ${{ matrix.browser }}
|
|
63
|
+
runs-on: ${{ matrix.os }}
|
|
64
|
+
|
|
65
|
+
steps:
|
|
66
|
+
# Firefox on Ubuntu appears to not have the right things installed in
|
|
67
|
+
# the environment used by GitHub actions, so make sure that ffmpeg is
|
|
68
|
+
# installed. Otherwise, the browser might not support some codecs that the
|
|
69
|
+
# tests assume will be supported.
|
|
70
|
+
- name: Install FFmpeg
|
|
71
|
+
if: matrix.os == 'ubuntu-latest' && matrix.browser == 'Firefox'
|
|
72
|
+
run: sudo apt -y update && sudo apt -y install ffmpeg
|
|
73
|
+
|
|
74
|
+
- name: Checkout code
|
|
75
|
+
uses: actions/checkout@v2
|
|
76
|
+
with:
|
|
77
|
+
ref: ${{ github.event.inputs.ref || github.ref }}
|
|
78
|
+
|
|
79
|
+
# Safari 14 can be installed, but not to the root, and it can't replace
|
|
80
|
+
# the standard version, at least not on GitHub's VMs. If you try to
|
|
81
|
+
# install directly to the root with sudo, it will appear to succeed, but
|
|
82
|
+
# will have no effect. If you try to script it explicitly with rm -rf
|
|
83
|
+
# and cp, this will fail. Safari may be on a read-only filesystem.
|
|
84
|
+
- name: Install Safari 14 to home directory
|
|
85
|
+
if: matrix.os == 'macos-latest' && matrix.browser == 'Safari-14'
|
|
86
|
+
run: |
|
|
87
|
+
# Download Safari 14
|
|
88
|
+
# See also https://www.macupdate.com/app/mac/15675/apple-safari/old-versions
|
|
89
|
+
curl -Lv https://www.macupdate.com/action/download/63550 > safari-14.1.2.pkg
|
|
90
|
+
|
|
91
|
+
# Install Safari 14 to homedir specifically.
|
|
92
|
+
installer -pkg safari-14.1.2.pkg -target CurrentUserHomeDirectory
|
|
93
|
+
|
|
94
|
+
# Install a launcher that can execute a shell script to launch this
|
|
95
|
+
npm install karma-script-launcher --save-dev
|
|
96
|
+
|
|
97
|
+
- name: Build Player
|
|
98
|
+
run: python build/all.py
|
|
99
|
+
|
|
100
|
+
- name: Test Player
|
|
101
|
+
shell: bash
|
|
102
|
+
run: |
|
|
103
|
+
browser=${{ matrix.browser }}
|
|
104
|
+
|
|
105
|
+
if [[ "$browser" == "Safari-14" ]]; then
|
|
106
|
+
# Replace the browser name with a script that can launch this
|
|
107
|
+
# browser from the command line.
|
|
108
|
+
browser="$PWD/.github/workflows/safari-homedir-launcher.sh"
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
python build/test.py \
|
|
112
|
+
--browsers "$browser" \
|
|
113
|
+
--reporters spec --spec-hide-passed \
|
|
114
|
+
--drm \
|
|
115
|
+
${{ matrix.extra_flags }}
|
|
116
|
+
|
|
117
|
+
build_in_docker:
|
|
118
|
+
# Don't waste time doing a full matrix of test runs when there was an
|
|
119
|
+
# obvious linter error.
|
|
120
|
+
needs: lint
|
|
121
|
+
name: Docker
|
|
122
|
+
runs-on: ubuntu-latest
|
|
123
|
+
steps:
|
|
124
|
+
- name: Checkout code
|
|
125
|
+
uses: actions/checkout@v2
|
|
126
|
+
with:
|
|
127
|
+
ref: ${{ github.event.inputs.ref || github.ref }}
|
|
128
|
+
|
|
129
|
+
- name: Docker
|
|
130
|
+
run: docker-compose -f build/docker/docker-compose.yml up
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Prep Appspot Deployment
|
|
2
|
+
|
|
3
|
+
description: |
|
|
4
|
+
A reusable action that prepares the sources to deploy the Shaka Player Demo
|
|
5
|
+
to appspot. Assumes that the source is already checked out.
|
|
6
|
+
|
|
7
|
+
runs:
|
|
8
|
+
using: composite
|
|
9
|
+
steps:
|
|
10
|
+
- name: Install dependencies
|
|
11
|
+
shell: bash
|
|
12
|
+
run: npm ci
|
|
13
|
+
|
|
14
|
+
- name: Build Shaka Player
|
|
15
|
+
shell: bash
|
|
16
|
+
run: python build/all.py
|
|
17
|
+
|
|
18
|
+
- name: Extract git version
|
|
19
|
+
shell: bash
|
|
20
|
+
run: |
|
|
21
|
+
(
|
|
22
|
+
cd build
|
|
23
|
+
python3 -c 'from shakaBuildHelpers import git_version; print(git_version())'
|
|
24
|
+
) > demo-version
|
|
25
|
+
|
|
26
|
+
- name: Tag the Player version
|
|
27
|
+
shell: bash
|
|
28
|
+
run: |
|
|
29
|
+
DEMO_VERSION="$(cat demo-version)-uncompiled"
|
|
30
|
+
sed \
|
|
31
|
+
-i lib/player.js \
|
|
32
|
+
-e "s/\(shaka.Player.version\) = .*/\1 = '$DEMO_VERSION';/"
|
|
33
|
+
rm demo-version
|
|
34
|
+
|
|
35
|
+
- name: Backup demo node modules
|
|
36
|
+
shell: bash
|
|
37
|
+
run: |
|
|
38
|
+
DEMO_NODE_MODULES=$(jq -r .shakaCustom.demoDeps[] package.json)
|
|
39
|
+
tar cf demo-modules.tar \
|
|
40
|
+
$(echo "$DEMO_NODE_MODULES" | sed -e 's@^@node_modules/@')
|
|
41
|
+
|
|
42
|
+
- name: Delete unneeded files
|
|
43
|
+
shell: bash
|
|
44
|
+
run: rm -rf .git .github build externs test node_modules
|
|
45
|
+
|
|
46
|
+
- name: Restore demo node modules
|
|
47
|
+
shell: bash
|
|
48
|
+
run: |
|
|
49
|
+
tar xf demo-modules.tar
|
|
50
|
+
rm demo-modules.tar
|
|
51
|
+
|
|
52
|
+
- name: Install App Engine code
|
|
53
|
+
shell: bash
|
|
54
|
+
run: |
|
|
55
|
+
mv app-engine/shaka-player-demo/* .
|
|
56
|
+
rm README.md
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: Set Commit Status
|
|
2
|
+
|
|
3
|
+
description: |
|
|
4
|
+
A reusable action that sets the commit status. This is used to set PR status
|
|
5
|
+
from workflows with non-PR triggers (such as manually-triggered workflows).
|
|
6
|
+
|
|
7
|
+
inputs:
|
|
8
|
+
context:
|
|
9
|
+
description: An arbitrary string to identify the status check.
|
|
10
|
+
required: true
|
|
11
|
+
state:
|
|
12
|
+
description: Either "pending", "error", "success", or "failure".
|
|
13
|
+
required: true
|
|
14
|
+
ref:
|
|
15
|
+
description: A git ref for which to set the commit status. For PRs, use the head commit, not the merge commit. Defaults to HEAD.
|
|
16
|
+
required: false
|
|
17
|
+
default: HEAD
|
|
18
|
+
token:
|
|
19
|
+
description: A GitHub access token.
|
|
20
|
+
required: true
|
|
21
|
+
|
|
22
|
+
runs:
|
|
23
|
+
using: composite
|
|
24
|
+
steps:
|
|
25
|
+
- name: Report Commit Status
|
|
26
|
+
shell: bash
|
|
27
|
+
run: |
|
|
28
|
+
# This is the URL to view this workflow run on GitHub. It will be
|
|
29
|
+
# attached to the commit status, so that when someone clicks "details"
|
|
30
|
+
# next to the status on the PR, it will link to this run where they can
|
|
31
|
+
# see the logs.
|
|
32
|
+
RUN_URL="https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}"
|
|
33
|
+
SHA1=$(git rev-parse "${{ inputs.ref }}")
|
|
34
|
+
|
|
35
|
+
GITHUB_TOKEN=${{ inputs.token }} \
|
|
36
|
+
gh api \
|
|
37
|
+
-X POST \
|
|
38
|
+
-F "context=${{ inputs.context }}" \
|
|
39
|
+
-F "state=${{ inputs.state }}" \
|
|
40
|
+
-F "target_url=$RUN_URL" \
|
|
41
|
+
"repos/${{ github.repository }}/statuses/$SHA1"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Deploy Demo Version Index
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
# Allows for manual triggering.
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
paths:
|
|
10
|
+
- .github/workflows/demo-version-index.yaml
|
|
11
|
+
- app-engine/demo-version-index/**
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
appspot:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v2
|
|
18
|
+
|
|
19
|
+
- uses: google-github-actions/auth@v0
|
|
20
|
+
with:
|
|
21
|
+
credentials_json: '${{ secrets.APPENGINE_DEPLOY_KEY }}'
|
|
22
|
+
|
|
23
|
+
- uses: google-github-actions/deploy-appengine@v0
|
|
24
|
+
with:
|
|
25
|
+
project_id: shaka-player-demo
|
|
26
|
+
version: index
|
|
27
|
+
working_directory: app-engine/demo-version-index/
|
|
28
|
+
promote: false
|
|
29
|
+
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Deploy Nightly Demo
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
# Allows for manual triggering.
|
|
6
|
+
schedule:
|
|
7
|
+
# Run every night at midnight PST / 8am UTC.
|
|
8
|
+
- cron: '0 8 * * *'
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
appspot:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v2
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
persist-credentials: false
|
|
18
|
+
|
|
19
|
+
- uses: actions/setup-node@v1
|
|
20
|
+
with:
|
|
21
|
+
node-version: 16
|
|
22
|
+
registry-url: 'https://registry.npmjs.org'
|
|
23
|
+
|
|
24
|
+
# The nightly demo has its own receiver app ID that points to the nightly
|
|
25
|
+
# demo itself for the receiver side.
|
|
26
|
+
- name: Override Cast Receiver App ID
|
|
27
|
+
run: |
|
|
28
|
+
sed \
|
|
29
|
+
-i demo/index.html \
|
|
30
|
+
-e 's/\(data-shaka-player-cast-receiver-id\)="[^"]*"/\1="07AEE832"/'
|
|
31
|
+
|
|
32
|
+
- uses: ./.github/workflows/custom-actions/prep-for-appspot
|
|
33
|
+
|
|
34
|
+
- uses: google-github-actions/auth@v0
|
|
35
|
+
with:
|
|
36
|
+
credentials_json: '${{ secrets.APPENGINE_DEPLOY_KEY }}'
|
|
37
|
+
|
|
38
|
+
- uses: google-github-actions/deploy-appengine@v0
|
|
39
|
+
with:
|
|
40
|
+
project_id: shaka-player-demo
|
|
41
|
+
version: nightly
|
|
42
|
+
promote: false
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- v[0-9]*
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
release:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
outputs:
|
|
13
|
+
release_created: ${{ steps.release.outputs.release_created }}
|
|
14
|
+
tag_name: ${{ steps.release.outputs.tag_name }}
|
|
15
|
+
steps:
|
|
16
|
+
# Create/update release PR
|
|
17
|
+
- uses: google-github-actions/release-please-action@v3
|
|
18
|
+
id: release
|
|
19
|
+
with:
|
|
20
|
+
# Required input to specify the release type (node package).
|
|
21
|
+
release-type: node
|
|
22
|
+
# Make sure we create the PR against the correct branch.
|
|
23
|
+
default-branch: ${{ github.ref_name }}
|
|
24
|
+
|
|
25
|
+
# If we didn't create a release, we may have created or updated a PR.
|
|
26
|
+
- uses: actions/checkout@v2
|
|
27
|
+
if: steps.release.outputs.release_created == false
|
|
28
|
+
- name: Custom update Player version
|
|
29
|
+
if: steps.release.outputs.release_created == false
|
|
30
|
+
run: |
|
|
31
|
+
# Check out the branch that release-please created, if it exists.
|
|
32
|
+
git fetch
|
|
33
|
+
git checkout release-please--branches--${{ github.ref_name }} || exit 0
|
|
34
|
+
# If it does exist, update lib/player.js in the PR branch, so that the
|
|
35
|
+
# -uncompiled tag remains in the player version in that context.
|
|
36
|
+
VERSION="v$(jq -r .version package.json)-uncompiled"
|
|
37
|
+
sed -e "s/^\\(shaka.Player.version =\\).*/\\1 '$VERSION';/" \
|
|
38
|
+
-i lib/player.js
|
|
39
|
+
git add lib/player.js
|
|
40
|
+
# Emulate the actions bot.
|
|
41
|
+
git config user.name "github-actions[bot]"
|
|
42
|
+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
43
|
+
# Update the PR.
|
|
44
|
+
git commit --amend --no-edit
|
|
45
|
+
git push -f
|
|
46
|
+
|
|
47
|
+
# The jobs below are all conditional on a release having been created by
|
|
48
|
+
# someone merging the release PR. They all run in parallel.
|
|
49
|
+
|
|
50
|
+
tag-main:
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
needs: release
|
|
53
|
+
if: needs.release.outputs.release_created
|
|
54
|
+
steps:
|
|
55
|
+
- uses: actions/checkout@v2
|
|
56
|
+
- name: Tag the main branch
|
|
57
|
+
run: |
|
|
58
|
+
# Emulate the actions bot.
|
|
59
|
+
git config user.name "github-actions[bot]"
|
|
60
|
+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
61
|
+
VERSION=${{ needs.release.outputs.tag_name }}
|
|
62
|
+
git tag -m "$VERSION-main" "$VERSION-main"
|
|
63
|
+
git push origin "$VERSION-main"
|
|
64
|
+
|
|
65
|
+
npm:
|
|
66
|
+
runs-on: ubuntu-latest
|
|
67
|
+
needs: release
|
|
68
|
+
if: needs.release.outputs.release_created
|
|
69
|
+
steps:
|
|
70
|
+
- uses: actions/checkout@v2
|
|
71
|
+
with:
|
|
72
|
+
fetch-depth: 0
|
|
73
|
+
persist-credentials: false
|
|
74
|
+
|
|
75
|
+
- uses: actions/setup-node@v1
|
|
76
|
+
with:
|
|
77
|
+
node-version: 16
|
|
78
|
+
registry-url: 'https://registry.npmjs.org'
|
|
79
|
+
|
|
80
|
+
- run: npm ci
|
|
81
|
+
- run: npm publish
|
|
82
|
+
env:
|
|
83
|
+
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
|
84
|
+
|
|
85
|
+
- run: npm pack
|
|
86
|
+
- uses: svenstaro/upload-release-action@483c1e56f95e88835747b1c7c60581215016cbf2
|
|
87
|
+
with:
|
|
88
|
+
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
89
|
+
tag: ${{ needs.release.outputs.tag_name }}
|
|
90
|
+
file: shaka-player-*.tgz
|
|
91
|
+
file_glob: true
|
|
92
|
+
overwrite: true
|
|
93
|
+
|
|
94
|
+
appspot:
|
|
95
|
+
runs-on: ubuntu-latest
|
|
96
|
+
needs: release
|
|
97
|
+
if: needs.release.outputs.release_created
|
|
98
|
+
steps:
|
|
99
|
+
- uses: actions/checkout@v2
|
|
100
|
+
with:
|
|
101
|
+
fetch-depth: 0
|
|
102
|
+
persist-credentials: false
|
|
103
|
+
|
|
104
|
+
- uses: actions/setup-node@v1
|
|
105
|
+
with:
|
|
106
|
+
node-version: 16
|
|
107
|
+
registry-url: 'https://registry.npmjs.org'
|
|
108
|
+
|
|
109
|
+
- name: Compute appspot subdomain and promotion
|
|
110
|
+
run: |
|
|
111
|
+
# This is the same as the version tag, but with dots replaced by
|
|
112
|
+
# dashes. For example, v3.2.2 would have the subdomain v3-2-2.
|
|
113
|
+
APPSPOT_SUBDOMAIN=$( echo ${{ needs.release.outputs.tag_name }} | sed -e 's/\./-/g' )
|
|
114
|
+
echo APPSPOT_SUBDOMAIN=$APPSPOT_SUBDOMAIN >> $GITHUB_ENV
|
|
115
|
+
|
|
116
|
+
# "Promoting" an appspot deployment makes it the default which shows
|
|
117
|
+
# up on shaka-player-demo.appspot.com (no subdomain). This should be
|
|
118
|
+
# done for the latest release version from the latest release branch.
|
|
119
|
+
RELEASE_TAGS=$(git tag | grep ^v[0-9] | grep -Ev -- '-(master|main)')
|
|
120
|
+
LATEST_RELEASE=$(echo "$RELEASE_TAGS" | sort --version-sort | tail -1)
|
|
121
|
+
TAG_NAME=${{ needs.release.outputs.tag_name }}
|
|
122
|
+
|
|
123
|
+
if [[ "$TAG_NAME" == "$LATEST_RELEASE" ]]; then
|
|
124
|
+
echo APPSPOT_PROMOTE=true >> $GITHUB_ENV
|
|
125
|
+
else
|
|
126
|
+
echo APPSPOT_PROMOTE=false >> $GITHUB_ENV
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
# Debug the decisions made here.
|
|
130
|
+
echo "Subdomain: $APPSPOT_SUBDOMAIN"
|
|
131
|
+
echo "Latest release: $LATEST_RELEASE"
|
|
132
|
+
echo "This release: $TAG_NAME"
|
|
133
|
+
echo "Promote: $APPSPOT_PROMOTE"
|
|
134
|
+
|
|
135
|
+
- uses: ./.github/workflows/custom-actions/prep-for-appspot
|
|
136
|
+
|
|
137
|
+
- uses: google-github-actions/auth@v0
|
|
138
|
+
with:
|
|
139
|
+
credentials_json: '${{ secrets.APPENGINE_DEPLOY_KEY }}'
|
|
140
|
+
|
|
141
|
+
- uses: google-github-actions/deploy-appengine@v0
|
|
142
|
+
with:
|
|
143
|
+
project_id: shaka-player-demo
|
|
144
|
+
version: ${{ env.APPSPOT_SUBDOMAIN }}
|
|
145
|
+
promote: ${{ env.APPSPOT_PROMOTE }}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# A script to launch a homedir-installed copy of Safari in Karma. Used with
|
|
4
|
+
# karma-script-launcher and --browsers path/to/script.
|
|
5
|
+
|
|
6
|
+
# There is an issue where opening a URL in a browser that is not already open
|
|
7
|
+
# will also open it in the default browser. See
|
|
8
|
+
# https://apple.stackexchange.com/a/122000/454832 and the comments below it for
|
|
9
|
+
# details.
|
|
10
|
+
|
|
11
|
+
# The workaround is to open the browser explicitly first, without a URL.
|
|
12
|
+
open -a ~/Applications/Safari.app --fresh
|
|
13
|
+
sleep 5
|
|
14
|
+
|
|
15
|
+
# Then open the browser with the URL, and wait for it to quite. In fact, the
|
|
16
|
+
# browser won't be closed automatically at all, and Karma will kill this script
|
|
17
|
+
# when the tests complete. But if we don't wait, Karma will error instead.
|
|
18
|
+
open -a ~/Applications/Safari.app --wait-apps "$1"
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
name: Selenium Lab Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
# Allows for manual triggering on PRs. They should be reviewed first, to
|
|
6
|
+
# avoid malicious code executing in the lab.
|
|
7
|
+
inputs:
|
|
8
|
+
pr:
|
|
9
|
+
description: "A PR number to build and test in the lab. If empty, will build and test from main."
|
|
10
|
+
required: false
|
|
11
|
+
schedule:
|
|
12
|
+
# Runs every night at 2am PST / 10am UTC, testing against the main branch.
|
|
13
|
+
- cron: '0 10 * * *'
|
|
14
|
+
|
|
15
|
+
# Only one run of this workflow is allowed at a time, since it uses physical
|
|
16
|
+
# resources in our lab.
|
|
17
|
+
concurrency: selenium-lab
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
lab-tests:
|
|
21
|
+
# This is a self-hosted runner in a Docker container, with access to our
|
|
22
|
+
# lab's Selenium grid on port 4444.
|
|
23
|
+
runs-on: self-hosted-selenium
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
# This runs on our self-hosted runner, and the Docker image it is based
|
|
27
|
+
# on doesn't have GitHub's CLI pre-installed. This installs it. Taken
|
|
28
|
+
# verbatim from the official installation instructions at
|
|
29
|
+
# https://github.com/cli/cli/blob/trunk/docs/install_linux.md
|
|
30
|
+
- name: Install GitHub Actions CLI
|
|
31
|
+
run: |
|
|
32
|
+
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
|
|
33
|
+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
|
|
34
|
+
sudo apt update
|
|
35
|
+
sudo apt install gh
|
|
36
|
+
|
|
37
|
+
- name: Compute ref
|
|
38
|
+
run: |
|
|
39
|
+
if [[ "${{ github.event.inputs.pr }}" != "" ]]; then
|
|
40
|
+
echo LAB_TEST_REF="refs/pull/${{ github.event.inputs.pr }}/head" >> $GITHUB_ENV
|
|
41
|
+
else
|
|
42
|
+
echo LAB_TEST_REF="main" >> $GITHUB_ENV
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
- uses: actions/checkout@v2
|
|
46
|
+
with:
|
|
47
|
+
ref: ${{ env.LAB_TEST_REF }}
|
|
48
|
+
|
|
49
|
+
- name: Set Commit Status to Pending
|
|
50
|
+
uses: ./.github/workflows/custom-actions/set-commit-status
|
|
51
|
+
with:
|
|
52
|
+
context: Selenium Lab Tests
|
|
53
|
+
state: pending
|
|
54
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
55
|
+
|
|
56
|
+
- uses: actions/setup-node@v1
|
|
57
|
+
with:
|
|
58
|
+
node-version: 16
|
|
59
|
+
registry-url: 'https://registry.npmjs.org'
|
|
60
|
+
|
|
61
|
+
# The Docker image for this self-hosted runner doesn't contain java.
|
|
62
|
+
- uses: actions/setup-java@v2
|
|
63
|
+
with:
|
|
64
|
+
distribution: zulu
|
|
65
|
+
java-version: 11
|
|
66
|
+
|
|
67
|
+
# The Docker image for this self-hosted runner has "python3" but not
|
|
68
|
+
# plain "python".
|
|
69
|
+
- name: Build Player
|
|
70
|
+
run: python3 build/all.py
|
|
71
|
+
|
|
72
|
+
# Run tests on the Selenium grid in our lab. This uses a private
|
|
73
|
+
# hostname and TLS cert to get EME tests working on all platforms
|
|
74
|
+
# (since EME only works on https or localhost).
|
|
75
|
+
- name: Test Player
|
|
76
|
+
run: |
|
|
77
|
+
python3 build/test.py \
|
|
78
|
+
--reporters spec --spec-hide-passed \
|
|
79
|
+
--drm \
|
|
80
|
+
--lets-encrypt-folder /etc/shakalab.rocks \
|
|
81
|
+
--hostname karma.shakalab.rocks \
|
|
82
|
+
--port 61731 \
|
|
83
|
+
--grid-config build/shaka-lab.yaml \
|
|
84
|
+
--grid-address selenium-grid.lab:4444
|
|
85
|
+
|
|
86
|
+
- name: Report Final Commit Status
|
|
87
|
+
# Will run on success or failure, but not if the workflow is cancelled.
|
|
88
|
+
if: ${{ success() || failure() }}
|
|
89
|
+
uses: ./.github/workflows/custom-actions/set-commit-status
|
|
90
|
+
with:
|
|
91
|
+
context: Selenium Lab Tests
|
|
92
|
+
state: ${{ job.status }}
|
|
93
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
package/AUTHORS
CHANGED
|
@@ -33,6 +33,7 @@ Enson Choy <enson.choy@harmonicinc.com>
|
|
|
33
33
|
Esteban Dosztal <edosztal@gmail.com>
|
|
34
34
|
Fadomire <fadomire@gmail.com>
|
|
35
35
|
Gil Gonen <gil.gonen@gmail.com>
|
|
36
|
+
Giorgio Gamberoni <giorgio.gamberoni@gmail.com>
|
|
36
37
|
Giuseppe Samela <giuseppe.samela@gmail.com>
|
|
37
38
|
Google Inc. <*@google.com>
|
|
38
39
|
Itay Kinnrot <Itay.Kinnrot@Kaltura.com>
|
|
@@ -41,6 +42,7 @@ Jesper Haug Karsrud <jesper.karsrud@gmail.com>
|
|
|
41
42
|
Johan Sundström <oyasumi@gmail.com>
|
|
42
43
|
Jonas Birmé <jonas.birme@eyevinn.se>
|
|
43
44
|
Jozef Chúťka <jozefchutka@gmail.com>
|
|
45
|
+
Jun Hong Chong <chongjunhong@gmail.com>
|
|
44
46
|
JW Player <*@jwplayer.com>
|
|
45
47
|
Lucas Gabriel Sánchez <unkiwii@gmail.com>
|
|
46
48
|
Matthias Van Parijs <matvp91@gmail.com>
|