14.7.0 #1967
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: Cache compiled server binary | |
id: cache-compiled-server-binary | |
uses: actions/cache@v4 | |
with: | |
path: ums-testserver.jar | |
key: compiled-server-binary | |
- name: Install dependencies | |
working-directory: ./react-client | |
run: yarn | |
- name: Install Playwright with dependencies | |
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.06/libmediainfo0v5_24.06-1_amd64.xUbuntu_20.04.deb | |
sudo dpkg -i libmediainfo0v5_24.06-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.06/libmediainfo0v5_24.06-1_amd64.xUbuntu_22.04.deb | |
sudo dpkg -i libmediainfo0v5_24.06-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" |