Skip to content

Commit 3f71257

Browse files
committed
Merge branch 'upstream/release52' into feat/mos-openmedia-hot-standby
2 parents e2fe446 + c4365ad commit 3f71257

File tree

1,556 files changed

+56250
-21000
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,556 files changed

+56250
-21000
lines changed

.github/workflows/audit.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
run: |
3030
yarn
3131
cd meteor
32-
meteor yarn validate:prod-dependencies
32+
meteor npm run validate:prod-dependencies
3333
env:
3434
CI: true
3535

@@ -57,7 +57,7 @@ jobs:
5757
run: |
5858
yarn
5959
cd meteor
60-
meteor yarn run validate:all-dependencies
60+
meteor npm run validate:all-dependencies
6161
env:
6262
CI: true
6363

.github/workflows/node.yaml

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
# setup zodern:types. No linters are setup, so this simply installs the packages
4747
meteor lint
4848
49-
meteor yarn ci:lint
49+
meteor npm run ci:lint
5050
env:
5151
CI: true
5252

@@ -85,12 +85,12 @@ jobs:
8585
# setup zodern:types. No linters are setup, so this simply installs the packages
8686
meteor lint
8787
88-
NODE_OPTIONS="--max-old-space-size=6144" meteor yarn unitci --force-exit
88+
NODE_OPTIONS="--max-old-space-size=6144" meteor npm run unitci --force-exit
8989
env:
9090
CI: true
9191
- name: Send coverage
9292
if: ((github.event_name == 'pull_request') && (!startsWith(github.head_ref, 'release'))) || ((github.event_name == 'push') && (!startsWith(github.ref_name, 'release')))
93-
uses: codecov/codecov-action@v4
93+
uses: codecov/codecov-action@v5
9494
env:
9595
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
9696

@@ -184,11 +184,18 @@ jobs:
184184
run: |
185185
cd meteor
186186
yarn inject-git-hash
187+
- name: Prepare webui for meteor build
188+
if: steps.check-build-and-push.outputs.enable == 'true'
189+
run: |
190+
rm -Rf meteor/public
191+
cp -R packages/webui/dist meteor/public
187192
- name: Meteor Build
188193
if: steps.check-build-and-push.outputs.enable == 'true'
189194
run: |
190195
cd meteor
191196
NODE_OPTIONS="--max-old-space-size=4096" METEOR_DEBUG_BUILD=1 meteor build --allow-superuser --directory .
197+
mv bundle/programs/web.browser/assets/ bundle/programs/web.browser/app/assets/ || true
198+
192199
- name: Meteor Bundle NPM Build
193200
if: steps.check-build-and-push.outputs.enable == 'true'
194201
run: |
@@ -239,7 +246,9 @@ jobs:
239246
echo "image=$image" >> $GITHUB_OUTPUT
240247
- name: Trivy scanning
241248
if: steps.check-build-and-push.outputs.enable == 'true' && steps.check-ghcr.outputs.enable == 'true' && steps.ghcr-tag.outputs.tags != 0
242-
uses: aquasecurity/[email protected]
249+
uses: aquasecurity/[email protected]
250+
env:
251+
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db
243252
with:
244253
image-ref: "${{ steps.trivy-image.outputs.image }}"
245254
format: "table"
@@ -388,7 +397,9 @@ jobs:
388397
echo "image=$image" >> $GITHUB_OUTPUT
389398
- name: Trivy scanning
390399
if: steps.check-build-and-push.outputs.enable == 'true' && steps.check-ghcr.outputs.enable == 'true' && steps.ghcr-tag.outputs.tags != 0
391-
uses: aquasecurity/[email protected]
400+
uses: aquasecurity/[email protected]
401+
env:
402+
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db
392403
with:
393404
image-ref: "${{ steps.trivy-image.outputs.image }}"
394405
format: "table"
@@ -422,9 +433,11 @@ jobs:
422433
- mos-gateway
423434
- corelib
424435
- shared-lib
436+
- meteor-lib
425437
- job-worker
426438
- openapi
427439
- live-status-gateway
440+
- webui
428441

429442
steps:
430443
- uses: actions/checkout@v4
@@ -467,7 +480,7 @@ jobs:
467480
- blueprints-integration
468481
- server-core-integration
469482
- shared-lib
470-
node-version: [14.x, 16.x, 18.x, 20.x]
483+
node-version: [14.x, 18.x, 20.x, 22.x]
471484
include:
472485
# include additional configs, to run certain packages only for a certain version of node
473486
- node-version: 14.x
@@ -477,19 +490,28 @@ jobs:
477490
package-name: job-worker
478491
send-coverage: true
479492
# manual openapi to avoid testing for 14.x
480-
- node-version: 16.x
481-
package-name: openapi
482493
- node-version: 18.x
483494
package-name: openapi
484495
- node-version: 20.x
485496
package-name: openapi
497+
- node-version: 22.x
498+
package-name: openapi
486499
# No tests for the gateways yet
487500
# - node-version: 18.x
488501
# package-name: playout-gateway
489502
# - node-version: 18.x
490503
# package-name: mos-gateway
491504
- node-version: 18.x
492505
package-name: live-status-gateway
506+
send-coverage: true
507+
- node-version: 18.x
508+
package-name: webui
509+
# manual meteor-lib as it only needs a couple of versions
510+
- node-version: 18.x
511+
package-name: meteor-lib
512+
send-coverage: true
513+
- node-version: 14.x
514+
package-name: meteor-lib
493515

494516
steps:
495517
- uses: actions/checkout@v4
@@ -520,7 +542,7 @@ jobs:
520542
env:
521543
CI: true
522544
- name: Send coverage
523-
if: (matrix.node-version == '16.x' || matrix.send-coverage == true) && ((github.event_name == 'pull_request') && ((!startsWith(github.head_ref, 'release'))) || ((github.event_name == 'push') && (!startsWith(github.ref_name, 'release'))))
545+
if: (matrix.node-version == '18.x' || matrix.send-coverage == true) && ((github.event_name == 'pull_request') && ((!startsWith(github.head_ref, 'release'))) || ((github.event_name == 'push') && (!startsWith(github.ref_name, 'release'))))
524546
uses: codecov/codecov-action@v4
525547
env:
526548
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -569,13 +591,17 @@ jobs:
569591
yarn
570592
env:
571593
CI: true
572-
- name: Run generator
594+
- name: Build OpenAPI client library
595+
run: |
596+
cd packages/openapi
597+
yarn build
598+
env:
599+
CI: true
600+
- name: Generate OpenAPI docs and server
573601
run: |
574602
cd packages/openapi
575-
576603
yarn gendocs
577604
yarn genserver
578-
yarn genclient:ts
579605
env:
580606
CI: true
581607

@@ -664,7 +690,7 @@ jobs:
664690
else
665691
# make dependencies of `determine-npm-tag` available
666692
yarn install --mode=skip-build
667-
693+
668694
cd packages
669695
PACKAGE_NAME="@sofie-automation/shared-lib"
670696
PUBLISHED_VERSION=$(yarn npm info --json $PACKAGE_NAME | jq -c '.version' -r)
@@ -682,6 +708,13 @@ jobs:
682708
yarn build
683709
env:
684710
CI: true
711+
- name: Build OpenAPI client library
712+
if: ${{ steps.do-publish.outputs.tag }}
713+
run: |
714+
cd packages/openapi
715+
yarn build
716+
env:
717+
CI: true
685718
- name: Modify dependencies to use npm packages
686719
run: node scripts/prepublish.js
687720
- name: Publish to NPM

.github/workflows/prerelease-libs.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
- blueprints-integration
5454
- server-core-integration
5555
- shared-lib
56-
node-version: [14.x, 16.x, 18.x, 20.x]
56+
node-version: [14.x, 18.x, 20.x, 22.x]
5757

5858
steps:
5959
- uses: actions/checkout@v4
@@ -131,6 +131,14 @@ jobs:
131131
yarn build
132132
env:
133133
CI: true
134+
135+
- name: Build OpenAPI client library
136+
if: ${{ steps.do-publish.outputs.publish }}
137+
run: |
138+
cd packages/openapi
139+
yarn build
140+
env:
141+
CI: true
134142
- name: Modify dependencies to use npm packages
135143
run: node scripts/prepublish.js
136144
- name: Publish to NPM

.github/workflows/prune-container-images.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ on:
77

88
jobs:
99
prune-container-images:
10+
if: ${{ github.repository_owner == 'nrkno' }}
11+
1012
uses: nrkno/sofie-github-workflows/.github/workflows/prune-container-images.yml@main
1113
strategy:
1214
max-parallel: 1

.github/workflows/prune-tags.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ on:
1616

1717
jobs:
1818
prune-tags:
19+
if: ${{ github.repository_owner == 'nrkno' }}
20+
1921
name: Prune tags
2022
runs-on: ubuntu-latest
2123
timeout-minutes: 15

.github/workflows/sonar.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ jobs:
1313
name: SonarCloud
1414
runs-on: ubuntu-latest
1515
if: ${{ github.repository_owner == 'nrkno' && !github.event.pull_request.head.repo.fork }}
16+
timeout-minutes: 15
1617

1718
steps:
1819
- uses: actions/checkout@v4

.github/workflows/trivy.yml

Lines changed: 44 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,36 @@ name: Scheduled Trivy Scan
22
on:
33
workflow_dispatch:
44
schedule:
5-
- cron: '0 10 * * 1'
5+
- cron: "0 10 * * 1"
66

77
jobs:
88
trivy:
9+
if: ${{ github.repository_owner == 'nrkno' }}
10+
911
name: Trivy scan
1012
runs-on: ubuntu-latest
1113
strategy:
1214
matrix:
1315
image: ["server-core", "playout-gateway", "mos-gateway"]
16+
timeout-minutes: 15
17+
1418
steps:
1519
- name: Run Trivy vulnerability scanner (json)
16-
uses: aquasecurity/[email protected]
20+
uses: aquasecurity/[email protected]
21+
env:
22+
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db
1723
with:
1824
image-ref: ghcr.io/nrkno/sofie-core-${{ matrix.image }}:latest
1925
format: json
20-
output: '${{ matrix.image }}-trivy-scan-results.json'
26+
output: "${{ matrix.image }}-trivy-scan-results.json"
2127

2228
- name: Run Trivy vulnerability scanner (table)
23-
uses: aquasecurity/[email protected]
29+
uses: aquasecurity/[email protected]
30+
env:
31+
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db
2432
with:
2533
image-ref: ghcr.io/nrkno/sofie-core-${{ matrix.image }}:latest
26-
output: '${{ matrix.image }}-trivy-scan-results.txt'
34+
output: "${{ matrix.image }}-trivy-scan-results.txt"
2735

2836
- name: Post all scan results to Github Summary as a table
2937
env:
@@ -36,10 +44,12 @@ jobs:
3644
echo $CODE_BLOCK >> $GITHUB_STEP_SUMMARY
3745
3846
- name: Run Trivy in GitHub SBOM mode and submit results to Dependency Graph
39-
uses: aquasecurity/[email protected]
47+
uses: aquasecurity/[email protected]
48+
env:
49+
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db
4050
with:
41-
format: 'github'
42-
output: 'dependency-results-${{ matrix.image }}.sbom.json'
51+
format: "github"
52+
output: "dependency-results-${{ matrix.image }}.sbom.json"
4353
image-ref: ghcr.io/nrkno/sofie-core-${{ matrix.image }}:latest
4454
github-pat: ${{ secrets.GITHUB_TOKEN }}
4555

@@ -54,46 +64,31 @@ jobs:
5464
echo ${{ env.SUMMARY }}
5565
5666
- name: Send Slack Notification
57-
uses: slackapi/slack-github-action@v1.26.0
67+
uses: slackapi/slack-github-action@v2.0.0
5868
with:
69+
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
70+
webhook-type: incoming-webhook
5971
payload: |
60-
{
61-
"text": "Trivy scan results",
62-
"blocks": [
63-
{
64-
"type": "header",
65-
"text": {
66-
"type": "plain_text",
67-
"text": "Trivy scan results for sofie-core-${{ matrix.image }}:latest"
68-
}
69-
},
70-
{
71-
"type": "section",
72-
"text": {
73-
"type": "mrkdwn",
74-
"text": ":thisisfine: ${{ env.SUMMARY }}"
75-
}
76-
},
77-
{
78-
"type": "section",
79-
"text": {
80-
"type": "mrkdwn",
81-
"text": "Read the full scan results on Github"
82-
},
83-
"accessory": {
84-
"type": "button",
85-
"text": {
86-
"type": "plain_text",
87-
"text": ":github: Scan results",
88-
"emoji": true
89-
},
90-
"value": "workflow_run",
91-
"url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}",
92-
"action_id": "button-action"
93-
}
94-
}
95-
]
96-
}
97-
env:
98-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
99-
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
72+
text: "Trivy scan results"
73+
blocks:
74+
- type: "header"
75+
text:
76+
type: "plain_text"
77+
text: "Trivy scan results for sofie-core-${{ matrix.image }}:latest"
78+
- type: "section"
79+
text:
80+
type: "mrkdwn"
81+
text: ":thisisfine: ${{ env.SUMMARY }}"
82+
- type: "section"
83+
text:
84+
type: "mrkdwn"
85+
text: "Read the full scan results on Github"
86+
accessory:
87+
type: "button"
88+
text:
89+
type: "plain_text"
90+
text: ":github: Scan results"
91+
emoji: true
92+
value: "workflow_run"
93+
url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
94+
action_id: "button-action"

.vscode/settings.json.default

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"packages/shared-lib",
1010
"packages/job-worker",
1111
"packages/openapi",
12-
"packages/live-status-gateway"
12+
"packages/live-status-gateway",
13+
"packages/webui"
1314
],
1415
"prettier.enable": true,
1516
"sonarlint.connectedMode.project": { "projectKey": "nrkno_sofie-core" },

CONTRIBUTING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ This repository uses the following branches:
99
* **_master_** is our main branch. We consider it stable and it is used in production.
1010
* The **_releaseXX_** branches are our in-development branches. When a release is ready, we decide to “freeze” that branch and create a new **_releaseXX+1_** branch.
1111

12-
We encourage you to base your contributions on the latest **_releaseXX_** branch, alternatively the **_master_** branch or a recently frozen **_releaseXX_** branch. The [_Sofie Releases_](https://nrkno.github.io/sofie-core/releases) page collects the status and timeline of the releases.
12+
We require contributions to be based based on the latest **_release\*_** branch.
13+
The [_Sofie Releases_](https://nrkno.github.io/sofie-core/releases) page collects the status and timeline of the releases.

0 commit comments

Comments
 (0)