diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4c9a67ee42db4b053470f09ec488ebd270503740..abca69658793c18b93b7798eeb3b602841838153 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,7 +23,7 @@ run_test_cases: stage: test before_script: - *install_requirements - - cp config/sample.engine.yaml config/engine.yaml + - cp config/engine-tests.yaml config/engine.yaml script: - make coverage coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' diff --git a/config/engine-tests.yaml b/config/engine-tests.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c1afa8b21420dc4c32d76a29824c949dfe376077 --- /dev/null +++ b/config/engine-tests.yaml @@ -0,0 +1,127 @@ +############################################## +# Engine Configuration # +############################################## + +general: + # Path to the engine-core socket directory relative to the engine project root + socket_dir: ../engine-core/socket + # Directory to store temporary data + cache_dir: ./.cache + + # Details for the Station Fallback + fallback_show_name: Random Music + fallback_show_id: -1 + +log: + # Directory where the log file resides + directory: logs + # Possible values: debug, info, warning, error, critical + level: debug + +monitoring: + mail: + # Mail server credentials for sending email notifications (Admin and Programme Coordination) + host: mail.your-radio.org + port: 587 + user: aura@subsquare.at + pwd: ---SECRET--PASSWORD--- + + coordinator: + # Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false" + enabled: false + # If you want to address multiple programme-coordinators separate their emails by space + mail: programme-coordinator@your-radio.org + + admin: + # Set to "true" if you want to notify admins about incidents, otherwise "false" + enabled: false + # If you want to address multiple administrators separate their emails by space + mail: david@subsquare.at + + # The FROM email address used when sending + from: monitoring@aura.engine + # A subject prefix allows applying filter rules in your mail client + subject_prefix: "[AURA Engine]" # default: [AURA Engine] + + heartbeat: + # Seconds how often the vitality of Engine Core should be checked (default: 1) + frequency: 1 + # Host where heartbeat is sent to (disabled if empty string) + host: "" + # Some UDP port + port: 43334 + +api: + ## STEERING ## + steering: + # The URL to get the health status + status: http://localhost:8000/api/v1/ + # The URL to get the Calendar via Steering + calendar: http://localhost:8000/api/v1/playout + + ## TANK ## + tank: + # The session name which is used to authenticate against Tank + session: engine + # The secret which is used to authenticate against Tank + secret: rather-secret + # The URL to get the health status + status: http://localhost:8040/healthz + # The URL to get playlist details via Tank + playlist: http://localhost:8040/api/v1/playlists/${ID} + + ## ENGINE-API ## + engine: + # Engine ID (1 or 2) + number: 1 + # Engine API availability check + status: http://localhost:8008/api/v1/ui/ + # Engine API endpoint to store playlogs + store_playlog: http://localhost:8008/api/v1/playlog + # Engine API endpoint to store clock information + store_clock: http://localhost:8008/api/v1/clock + # Engine API endpoint to store health information + store_health: http://localhost:8008/api/v1/source/health/${ENGINE_NUMBER} + +scheduler: + # Database settings: Use 'postgresql', 'sqlite' or 'mysql'. In case of SQLite the "db_name" is the name of the file. + db: + type: sqlite + name: aura_engine + user: aura_engine + pwd: ---SECRET--PASSWORD--- + host: localhost + charset: utf8 + + # Base path as seen by "engine-core", not accessed by "engine"; this is required to construct the absolute audio file path (check "Audio Store" in the docs) + # Either provide an absolute base path or a relative one starting in the `engine` directory. In case of `engine-core` running in docker use `/var/audio/source` + audio: + source_folder: ../engine-core/audio/source + source_extension: .flac + # Folder holding M3U Playlists to be scheduled in form of Engine Playlists (similar as audio source folder above) + playlist_folder: ../engine-core/audio/playlist + # Offset in seconds how long it takes for Liquidsoap to actually execute a scheduler command; Crucial to keep things in sync + engine_latency_offset: 0.5 + + # How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show is aired + fetching_frequency: 30 + # The scheduling window defines when the entries of each timeslot are queued for play-out. The windows start at (timeslot.start - window_start) seconds + # and ends at (timeslot.end - window.end) seconds. Its also worth noting, that timeslots can only be deleted before the start of the window. + scheduling_window_start: 60 + scheduling_window_end: 60 + # How many seconds before the actual schedule time the entry should be pre-loaded. Note to provide enough timeout for + # contents which take longer to load (big files, bad connectivity to streams etc.). If the planned start time is in + # the past the offset is ignored and the entry is played as soon as possible + preload_offset: 15 + + # Sometimes it might take longer to get a stream connected. Here you can define a viable length. + # But note, that this may affect the preloading time (see `preload_offset`), hence affecting the + # overall playout, its delays and possible fallbacks + input_stream: + retry_delay: 1 + max_retries: 10 + buffer: 3.0 + + # Fade duration when selecting another mixer input (seconds) + fade_in_time: 1.5 + fade_out_time: 1.5