Skip to content

Merge branch 'UniversalMediaServer:main' into main #1

Merge branch 'UniversalMediaServer:main' into main

Merge branch 'UniversalMediaServer:main' into main #1

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
# Detect whether Java server code has changed, so it can be skipped
changes:
if: |
(
(github.event_name == 'push' && (github.actor == 'renovate[bot]' || github.ref_name == 'main')) ||
(github.event_name == 'pull_request')
)
name: Build list of changed files
runs-on: ubuntu-latest
# Required permissions
permissions:
pull-requests: read
# Set job outputs to values from filter step
outputs:
cifile: ${{ steps.filter.outputs.cifile }}
javafiles: ${{ steps.filter.outputs.javafiles }}
webfiles: ${{ steps.filter.outputs.webfiles }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
fetch-depth: 2
- name: Get previous commit SHA
id: prev_commit
run: echo "PREV_COMMIT_SHA=$(git rev-parse HEAD~1)" >> $GITHUB_ENV
- uses: dorny/paths-filter@v3
id: filter
with:
base: ${{ env.PREV_COMMIT_SHA }}
filters: |
javafiles:
- 'src/**'
- 'pom.xml'
- 'UMS.launch'
- '*.xml'
webfiles:
- 'react-client/**'
cifile:
- '.github/workflows/ci.yaml'
macos-browser:
needs: changes
if: |
(
(github.event_name == 'push' && (github.actor == 'renovate[bot]' || github.ref_name == 'main')) ||
(github.event_name == 'pull_request')
) && (
needs.changes.outputs.javafiles == 'true' ||
needs.changes.outputs.webfiles == 'true' ||
needs.changes.outputs.cifile == 'true'
)
name: macOS web browser tests
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: 17
cache: 'maven'
- name: Cache Node dependencies
id: cache-node-dependencies
uses: actions/cache@v4
with:
path: |
react-client/.yarn
react-client/node
react-client/node_modules
key: node-dependencies-${{ hashFiles('yarn.lock') }}
- name: Install dependencies
working-directory: ./react-client
run: yarn
- name: Install Playwright Browsers
working-directory: ./react-client
run: yarn playwright install --with-deps
- name: Prepare server for Playwright tests
working-directory: ./react-client
run: npm run test:prepareserver:macos
- name: Run Playwright tests
working-directory: ./react-client
run: DEBUG=pw:webserver yarn playwright test
macos:
needs: changes
if: |
(
(github.event_name == 'push' && (github.actor == 'renovate[bot]' || github.ref_name == 'main')) ||
(github.event_name == 'pull_request')
) && (
needs.changes.outputs.javafiles == 'true' ||
needs.changes.outputs.cifile == 'true'
)
name: macOS Java tests
runs-on: macos-13
strategy:
matrix:
# test against two different xcode version on MacOS
xcode: [ 9.4.1, latest ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: 17
cache: 'maven'
- name: Cache Node dependencies
id: cache-node-dependencies
uses: actions/cache@v4
with:
path: |
react-client/.yarn
react-client/node
react-client/node_modules
key: node-dependencies-${{ hashFiles('yarn.lock') }}
- name: Run Java tests (XCode ${{ matrix.xcode }})
run: DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer && mvn verify -P testing-macos
windows-latest:
needs: changes
if: |
(
(github.event_name == 'push' && (github.actor == 'renovate[bot]' || github.ref_name == 'main')) ||
(github.event_name == 'pull_request')
) && (
needs.changes.outputs.javafiles == 'true' ||
needs.changes.outputs.cifile == 'true'
)
name: Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: 17
cache: 'maven'
- name: Cache Node dependencies
id: cache-node-dependencies
uses: actions/cache@v4
with:
path: |
react-client/.yarn
react-client/node
react-client/node_modules
key: node-dependencies-${{ hashFiles('yarn.lock') }}
- name: Run tests
run: mvn verify -P testing-windows
linux-focal:
needs: changes
if: |
(
(github.event_name == 'push' && (github.actor == 'renovate[bot]' || github.ref_name == 'main')) ||
(github.event_name == 'pull_request')
) && (
needs.changes.outputs.javafiles == 'true' ||
needs.changes.outputs.cifile == 'true'
)
name: Linux 20.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: 17
cache: 'maven'
- name: Cache Node dependencies
id: cache-node-dependencies
uses: actions/cache@v4
with:
path: |
react-client/.yarn
react-client/node
react-client/node_modules
key: node-dependencies-${{ hashFiles('yarn.lock') }}
- name: Run tests
run: |
sudo apt-get -y install libmms0
wget --no-check-certificate https://mediaarea.net/download/binary/libzen0/0.4.41/libzen0v5_0.4.41-1_amd64.xUbuntu_20.04.deb
sudo dpkg -i libzen0v5_0.4.41-1_amd64.xUbuntu_20.04.deb
wget --no-check-certificate https://mediaarea.net/download/binary/libmediainfo0/24.01/libmediainfo0v5_24.01-1_amd64.xUbuntu_20.04.deb
sudo dpkg -i libmediainfo0v5_24.01-1_amd64.xUbuntu_20.04.deb
mvn verify -P testing -DdisableXmlReport=true
linux-jammy:
needs: changes
if: |
(
(github.event_name == 'push' && (github.actor == 'renovate[bot]' || github.ref_name == 'main')) ||
(github.event_name == 'pull_request')
) && (
needs.changes.outputs.javafiles == 'true' ||
needs.changes.outputs.cifile == 'true'
)
name: Linux 22.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: 17
cache: 'maven'
- name: Cache Node dependencies
id: cache-node-dependencies
uses: actions/cache@v4
with:
path: |
react-client/.yarn
react-client/node
react-client/node_modules
key: node-dependencies-${{ hashFiles('yarn.lock') }}
- name: Run tests
run: |
sudo apt-get -y install libmms0
wget --no-check-certificate https://mediaarea.net/download/binary/libzen0/0.4.41/libzen0v5_0.4.41-1_amd64.xUbuntu_22.04.deb
sudo dpkg -i libzen0v5_0.4.41-1_amd64.xUbuntu_22.04.deb
wget --no-check-certificate https://mediaarea.net/download/binary/libmediainfo0/24.01/libmediainfo0v5_24.01-1_amd64.xUbuntu_22.04.deb
sudo dpkg -i libmediainfo0v5_24.01-1_amd64.xUbuntu_22.04.deb
mvn verify -P testing -DdisableXmlReport=true
lint:
needs: changes
if: |
(
(github.event_name == 'push' && (github.actor == 'renovate[bot]' || github.ref_name == 'main')) ||
(github.event_name == 'pull_request')
) && (
needs.changes.outputs.javafiles == 'true' ||
needs.changes.outputs.cifile == 'true'
)
name: Lint
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: 17
cache: 'maven'
- name: Run tests
run: |
mvn verify -P linter -DdisableXmlReport=true -DskipTests
changelog:
if: |
github.actor == 'dependabot[bot]'
needs:
- macos-browser
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: dangoslen/dependabot-changelog-helper@v3
with:
activationLabels: 'dependencies'
sort: 'alpha'
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Update Changelog"