Skip to content

server all (parent) #57

server all (parent)

server all (parent) #57

name: "server all (parent)"
on:
# Triggered manually.
workflow_dispatch:
inputs:
jobDistros:
description: "jobDistros: List of Ubuntu codenames to build for"
required: true
# There is no `list` type, so use a raw JSON array and `fromJSON()`.
# Example: '["xenial", "bionic", "focal"]'
type: "string"
default: '["noble"]'
jobGitName:
description: "jobGitName: Non-default git branch or tag that should be checked out, if it exists"
required: false
type: "string"
default: ""
jobGitNameFallback:
description: "jobGitNameFallback: Non-default git branch or tag that should be checked out, if `jobGitName` does not exist"
required: false
type: "string"
default: ""
jobRelease:
description: "jobRelease: Enable to build release versions; disable for development builds"
required: false
type: "boolean"
default: false
jobOnlyKurento:
description: "jobOnlyKurento: Enable to only build Kurento; disable to also build forks"
required: false
type: "boolean"
default: true
runnerGroup:
description: "runnerGroup: Set of runners where the workflow jobs should be run"
required: false
type: "string"
default: "Linux"
jobs:
# Not needed for 7.1.0 onwards on ubuntu 24.04
# libsrtp:
# if: ${{ ! inputs.jobOnlyKurento }}
# uses: "Kurento/libsrtp/.github/workflows/[email protected]"
# with:
# jobDistros: "${{ inputs.jobDistros }}"
# jobGitName: "7.0.0"
# jobGitNameFallback: ""
# jobRelease: ${{ inputs.jobRelease }}
#
# openh264:
# if: ${{ ! inputs.jobOnlyKurento }}
# uses: "Kurento/openh264/.github/workflows/[email protected]"
# with:
# jobDistros: "${{ inputs.jobDistros }}"
# jobGitName: "7.0.0"
# jobGitNameFallback: ""
# jobRelease: ${{ inputs.jobRelease }}
#
# openh264-gst-plugin:
# if: ${{ ! inputs.jobOnlyKurento }}
# needs: ["openh264"]
# uses: "Kurento/openh264-gst-plugin/.github/workflows/kurento-buildpackage.reusable.yaml@master"
# with:
# jobDistros: "${{ inputs.jobDistros }}"
# jobGitName: "master"
# jobGitNameFallback: ""
# jobRelease: ${{ inputs.jobRelease }}
#
# gst-plugins-good:
# if: ${{ ! inputs.jobOnlyKurento }}
# uses: "Kurento/gst-plugins-good/.github/workflows/[email protected]"
# with:
# jobDistros: "${{ inputs.jobDistros }}"
# jobGitName: "7.0.0"
# jobGitNameFallback: ""
# jobRelease: ${{ inputs.jobRelease }}
#
# libnice:
# if: ${{ ! inputs.jobOnlyKurento }}
# uses: "Kurento/libnice/.github/workflows/[email protected]"
# with:
# jobDistros: "${{ inputs.jobDistros }}"
# jobGitName: "7.0.0"
# jobGitNameFallback: ""
# jobRelease: ${{ inputs.jobRelease }}
gst-rust-plugins:
uses: "./.github/workflows/server-buildpackage-rust.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitRepo: "https://github.com/GStreamer/gst-plugins-rs"
jobGitName: "gstreamer-1.24.2"
jobRelease: ${{ inputs.jobRelease }}
directory: "./"
runnerGroup: ${{ inputs.runnerGroup }}
module-creator:
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/module-creator/"
copyArtifacts: false
cmake-utils:
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/cmake-utils/"
copyArtifacts: false
jsonrpc:
needs: ["cmake-utils"]
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/jsonrpc/"
module-core:
needs: ["module-creator", "cmake-utils", "jsonrpc", "gst-rust-plugins"]
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/module-core/"
module-elements:
needs: ["module-core"]
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/module-elements/"
module-filters:
needs: ["module-elements"]
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/module-filters/"
media-server:
needs: ["module-filters"]
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/media-server/"
module-chroma:
needs: ["module-filters"]
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/module-examples/chroma/"
module-datachannelexample:
needs: ["module-filters"]
uses: "./.github/workflows/server-buildpackage.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobGitName: "${{ inputs.jobGitName }}"
jobGitNameFallback: "${{ inputs.jobGitNameFallback }}"
jobRelease: ${{ inputs.jobRelease }}
runnerGroup: ${{ inputs.runnerGroup }}
directory: "server/module-examples/datachannelexample/"
deploy-deb:
needs: ["media-server", "module-chroma", "module-datachannelexample"]
uses: "./.github/workflows/server-deploy-debian.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobRelease: ${{ inputs.jobRelease }}
jobDeployName: "${{ inputs.jobGitName }}"
runnerGroup: ${{ inputs.runnerGroup }}
secrets:
APTLY_SSH_PRIVATE_KEY: "${{ secrets.APTLY_SSH_PRIVATE_KEY }}"
deploy-docker:
needs: ["deploy-deb"]
uses: "./.github/workflows/server-deploy-docker.child.yaml"
with:
jobDistros: "${{ inputs.jobDistros }}"
jobRelease: ${{ inputs.jobRelease }}
jobDeployName: "${{ inputs.jobGitName }}"
runnerGroup: ${{ inputs.runnerGroup }}
buildAsan: true
secrets:
KURENTO_DOCKERHUB_USERNAME: "${{ secrets.KURENTO_DOCKERHUB_USERNAME }}"
KURENTO_DOCKERHUB_TOKEN: "${{ secrets.KURENTO_DOCKERHUB_TOKEN }}"
# TODO: Move script to use Kurento ci-scripts/ and not openvidu ci-scripts/
# deploy-aws:
# needs: ["media-server"]
# uses: "./.github/workflows/server-deploy-aws.child.yaml"
# with:
# jobRelease: ${{ inputs.jobRelease }}