Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
17 changes: 11 additions & 6 deletions .github/workflows/release-build-tag-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,17 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # ghapm:v4
with:
persist-credentials: false

- name: Use Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: 24
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: Install dependencies
run: yarn
run: pnpm install --frozen-lockfile

- name: Get current package version
id: package-version
Expand All @@ -27,14 +32,14 @@ jobs:
- name: Build App
working-directory: ./platforms/web
run: |
yarn build
pnpm build
cd build
tar czf ott-web-app-build-${{steps.package-version.outputs.current-version}}.tar.gz public
zip -r ott-web-app-build-${{steps.package-version.outputs.current-version}}.zip public

- name: Parse Changelog Entry
id: changelog-reader
uses: coditory/changelog-parser@v1
uses: coditory/changelog-parser@4f567c6914ee75eff434b4d946393dfd254f8f98 # ghapm:v1
with:
version: ${{ steps.package-version.outputs.current-version }}

Expand All @@ -49,7 +54,7 @@ jobs:
run: git tag ${{ steps.package-version.outputs.current-version }}

- name: Release
uses: ncipollo/release-action@v1.13.0
uses: ncipollo/release-action@6c75be85e571768fa31b40abf38de58ba0397db5 # ghapm:v1
if: ${{ steps.package-version.outputs.current-version }}
with:
commit: 'release'
Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/release-create-release-candidate-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,33 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # ghapm:v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: release
# It would be easier to create the branch from develop,
# but unfortunately the script that creates the PR's only considers commits added during the action run
- name: Use Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: 24
- name: Merge latest from target branch
run: |
git config user.name "${{ env.GH_USER }}"
git config user.email "${{ env.GH_EMAIL }}"
git fetch origin ${{ github.ref_name }}
git merge origin/${{ github.ref_name }} --allow-unrelated-histories
yarn && yarn workspace @jwp/ott-web run i18next
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Set up pnpm after the merge, since the release branch may not define a pnpm version yet
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: Install dependencies and update translations
run: pnpm install && pnpm --filter @jwp/ott-web run i18next

- name: Generate changelog
id: changelog
uses: TriPSs/conventional-changelog-action@v5.1.0
uses: TriPSs/conventional-changelog-action@dd734f74fce61a6e02f821ee1b5930bc79a23534 # ghapm:v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
release-count: 0
Expand All @@ -46,7 +54,7 @@ jobs:
input-file: 'CHANGELOG.md'

- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # ghapm:v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
title: Release Candidate - ${{ steps.changelog.outputs.tag }}${{ github.ref_name != 'develop' && ' (Hotfix)' || ''}}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release-merge-back.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # ghapm:v4

- name: Merge release -> develop
uses: devmasx/merge-branch@master
uses: devmasx/merge-branch@6ec8363d74aad4f1615d1234ae1908b4185c4313
with:
type: now
from_branch: release
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/test-linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # ghapm:v4
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: '22.x'
- name: yarn install, lint
node-version: 24
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: pnpm install, lint
run: |
yarn install
yarn lint
pnpm install --frozen-lockfile
pnpm lint
env:
CI: true
8 changes: 4 additions & 4 deletions .github/workflows/test-static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # ghapm:v3

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@dd903d2e4f5405488e5ef1422510ee31c8b32357 # ghapm:v3
with:
languages: ${{ matrix.language }}

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@dd903d2e4f5405488e5ef1422510ee31c8b32357 # ghapm:v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@dd903d2e4f5405488e5ef1422510ee31c8b32357 # ghapm:v3
14 changes: 8 additions & 6 deletions .github/workflows/test-unit-snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # ghapm:v4
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: '22.x'
- name: yarn install and test
node-version: 24
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: pnpm install and test
run: |
yarn
yarn test
pnpm install --frozen-lockfile
pnpm test
env:
CI: true
12 changes: 9 additions & 3 deletions .github/workflows/web-release-deploy-prod-demo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,19 @@ jobs:
deploy_live_website:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # ghapm:v3
- name: Use Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: 24
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: Build
env:
APP_PLAYER_LICENSE_KEY: ${{ secrets.PLAYER_LICENSE_KEY }}
APP_GOOGLE_SITE_VERIFICATION_ID: ${{ vars.GOOGLE_SITE_VERIFICATION_ID }}
run: yarn && MODE=demo yarn build
- uses: FirebaseExtended/action-hosting-deploy@v0
run: pnpm install && MODE=demo pnpm build
- uses: FirebaseExtended/action-hosting-deploy@500ac625ca2dd40cbd15f7659af953801858032a # ghapm:v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT }}'
Expand Down
24 changes: 18 additions & 6 deletions .github/workflows/web-test-deploy-preview-and-lighthouse.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,18 @@ jobs:
outputs:
output1: ${{ steps.firebase_hosting_preview.outputs.details_url }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # ghapm:v3
- name: Use Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: "24.18.0" # https://github.com/FirebaseExtended/action-hosting-deploy/issues/460#issuecomment-4832552057
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: Build Preview Link
env:
APP_PLAYER_LICENSE_KEY: ${{ secrets.PLAYER_LICENSE_KEY }}
run: yarn && MODE=preview yarn build
- uses: FirebaseExtended/action-hosting-deploy@v0
run: pnpm install && MODE=preview pnpm build
- uses: FirebaseExtended/action-hosting-deploy@500ac625ca2dd40cbd15f7659af953801858032a # ghapm:v0
id: firebase_hosting_preview
with:
entryPoint: './platforms/web'
Expand All @@ -34,8 +40,14 @@ jobs:
runs-on: ubuntu-latest
needs: build_and_preview
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # ghapm:v3
- name: Use Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: "24.18.0" # https://github.com/FirebaseExtended/action-hosting-deploy/issues/460#issuecomment-4832552057
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: Install Lighthouse CI
run: sudo yarn global add @lhci/cli@0.12.x
run: pnpm add -D @lhci/cli@0.12.x
- name: Run Lighthouse CI
run: lhci autorun --collect.url=${{ needs.build_and_preview.outputs.output1 }}?app-config=gnnuzabk --config=./lighthouserc.cjs
run: pnpm exec lhci autorun --collect.url=${{ needs.build_and_preview.outputs.output1 }}?app-config=gnnuzabk --config=./lighthouserc.cjs
16 changes: 9 additions & 7 deletions .github/workflows/web-test-deploy-preview-aws.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,19 @@ jobs:
environment:
name: Deployment Previews
url: ${{ format('https://pr-{0}.{1}?app-config={2}', github.event.pull_request.number || '0' , vars.PREVIEW_DOMAIN, vars.PREVIEW_DEFAULT_CONFIG) }}
if: ${{ vars.DEPLOYMENT_PREVIEWS != '' }}
if: ${{ vars.DEPLOYMENT_PREVIEWS != '' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # ghapm:v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: '22'
node-version: "24.18.0" # https://github.com/FirebaseExtended/action-hosting-deploy/issues/460#issuecomment-4832552057
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: Install packages
run: yarn install --frozen-lockfile
run: pnpm install --frozen-lockfile
- name: Build
run: |
yarn build
pnpm build
env:
MODE: demo
APP_GTM_TAG_ID: ${{ vars.APP_GTM_TAG_ID }}
Expand All @@ -53,7 +55,7 @@ jobs:
APP_BODY_ALT_FONT_FAMILY: ${{ vars.APP_BODY_ALT_FONT_FAMILY }}
APP_DEFAULT_CONFIG_SOURCE: ${{ vars.APP_DEFAULT_CONFIG_SOURCE }}
APP_PLAYER_LICENSE_KEY: ${{ vars.APP_PLAYER_LICENSE_KEY }}
- uses: aws-actions/configure-aws-credentials@v4
- uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # ghapm:v4
with:
aws-access-key-id: ${{ vars.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Expand Down
18 changes: 10 additions & 8 deletions .github/workflows/web-test-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,27 @@ jobs:
config: [desktop, mobile]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # ghapm:v4
- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ghapm:v4
with:
node-version: '22.x'
node-version: 24
- name: Install pnpm
uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d # ghapm:v3
- name: Install dependencies
run: |
yarn
yarn global add wait-on
pnpm install --frozen-lockfile
pnpm add -g wait-on
- name: Start preview server
run: yarn start:test &
run: pnpm start:test &
- name: Run tests
run: wait-on -v -t 60000 -c ./scripts/waitOnConfig.js http-get://localhost:8080 && yarn codecept:${{ matrix.config }}
run: wait-on -v -t 60000 -c ./scripts/waitOnConfig.js http-get://localhost:8080 && pnpm codecept:${{ matrix.config }}
env:
TEST_RETRY_COUNT: 2
WORKER_COUNT: 2
- name: Uploading artifact
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ghapm:v4
with:
name: allure-report-${{ matrix.config }}
path: ./platforms/web/test-e2e/output/${{ matrix.config }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# project, build, and deployment
node_modules
yarn-error.log
pnpm-debug.log

# os or editor
.idea
Expand Down
2 changes: 1 addition & 1 deletion .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

yarn commit-msg
pnpm commit-msg
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

yarn pre-commit
pnpm pre-commit
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
## [6.13.0](https://github.com/jwplayer/ott-web-app/compare/v6.12.0...v6.13.0) (2026-10-09)


### Bug Fixes

* **project:** play episode as a movie when no series can be found ([#706](https://github.com/jwplayer/ott-web-app/issues/706)) ([281489c](https://github.com/jwplayer/ott-web-app/commit/281489c6d9ede8500ba2705f190f8bd9af1d8b87))

## [6.12.0](https://github.com/jwplayer/ott-web-app/compare/v6.11.0...v6.12.0) (2026-07-02)


### Features

* **epg:** add xmltv EPG provider, keep viewnexa as alias ([#703](https://github.com/jwplayer/ott-web-app/issues/703)) ([ed0862d](https://github.com/jwplayer/ott-web-app/commit/ed0862dd879df77b442cdcb8a3293dc98d0ed55d))

## [6.11.0](https://github.com/jwplayer/ott-web-app/compare/v6.10.0...v6.11.0) (2025-09-05)


Expand Down
10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,19 +95,19 @@ While far from comprehensive, following these guidelines will get the easy stuff
##### Style

1. This project uses vite to build and compile. **Code produced by the build must work across all supported browsers and devices - modern Chrome, FF, Safari, and Edge**
2. Ensure that your code matches the formatting of the codebase by running ```yarn format```
2. Ensure that your code matches the formatting of the codebase by running ```pnpm format```
3. Ensure that your code follows our styleguide by passing our ESLint, Stylelint and TypeScript rules
- You can run lint analysis by running ```yarn lint```
- You can fix lint errors by running ```yarn format```
- You can run lint analysis by running ```pnpm lint```
- You can fix lint errors by running ```pnpm format```
4. Ensure that your code passes lighthouse analysis by running ```npx lhci autorun```
5. Do your best to match our naming conventions and conform to the style of the code around you
6. If you have a large or messy commit history, please rebase & squash your commit history

##### Tests

1. Ensure that all existing tests pass
- Run unit tests through `yarn test`
- Run the e2e tests through `yarn codecept:mobile` and `yarn codecept:desktop`
- Run unit tests through `pnpm test`
- Run the e2e tests through `pnpm codecept:mobile` and `pnpm codecept:desktop`
2. We don't demand 100% coverage, but please write tests that cover at least the happy paths
- Some code is hard to test or untestable - we won't hold it against you if you're working in a particularly difficult area. Just let us know if you've had some trouble
3. If your changes cannot be automated, include a manual test page that demonstrates the functionality of your changes
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ services. It enables you to easily publish your JW Player-hosted video content w
The easiest way to get the OTT Web App running on your machine, use the following commands:

```shell
$ yarn
$ yarn web start
$ pnpm install
$ pnpm web start
```

These commands will install all dependencies and start a dev server serving the web app. Read
Expand Down
2 changes: 1 addition & 1 deletion configs/postcss-config-jwp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@
"stylelint": "^15.11.0"
},
"peerDependencies": {
"stylelint-config-jwp": "*"
"stylelint-config-jwp": "workspace:*"
}
}
Loading
Loading