mirror of
https://github.com/YunoHost/yunorunner.git
synced 2024-09-03 20:05:52 +02:00
[enh] implement montly jobs
This commit is contained in:
parent
c408f30ef2
commit
344401d130
1 changed files with 28 additions and 1 deletions
29
run.py
29
run.py
|
@ -7,7 +7,7 @@ import random
|
|||
import logging
|
||||
import asyncio
|
||||
|
||||
from datetime import datetime
|
||||
from datetime import datetime, date, timedelta
|
||||
from collections import defaultdict
|
||||
from functools import wraps
|
||||
|
||||
|
@ -203,6 +203,32 @@ async def monitor_apps_lists(type="stable"):
|
|||
asyncio.ensure_future(monitor_apps_lists())
|
||||
|
||||
|
||||
async def launch_monthly_job(type):
|
||||
# XXX DRY
|
||||
job_command_last_part = ""
|
||||
if type == "arm":
|
||||
job_command_last_part = " (~ARM~)"
|
||||
elif type == "testing-unstable":
|
||||
job_command_last_part = [" (testing)", " (unstable)"]
|
||||
|
||||
today = date.today().day
|
||||
|
||||
for repo in Repo.select().where(Repo.random_job_day == today):
|
||||
task_logger.info(f"Launch montly job for {repo.name} on day {today} of the month ")
|
||||
await create_job(repo.name, repo.app_list_name, repo, job_command_last_part)
|
||||
|
||||
# launch tomorrow at 1 am
|
||||
now = datetime.now()
|
||||
tomorrow = now + timedelta(days=1)
|
||||
tomorrow = tomorrow.replace(hour=1, minute=0, second=0)
|
||||
seconds_until_next_run = (tomorrow - now).seconds
|
||||
|
||||
# XXX if relaunched twice the same day that will duplicate the jobs
|
||||
await asyncio.sleep(seconds_until_next_run)
|
||||
|
||||
asyncio.ensure_future(launch_monthly_job())
|
||||
|
||||
|
||||
async def jobs_dispatcher():
|
||||
if Worker.select().count() == 0:
|
||||
for i in range(1):
|
||||
|
@ -531,6 +557,7 @@ def main(path_to_analyseCI, ssl=False, keyfile_path="/etc/yunohost/certs/ci-apps
|
|||
|
||||
if not dont_minotor_apps_list:
|
||||
app.add_task(monitor_apps_lists(type=type))
|
||||
app.add_task(launch_monthly_job(type=type))
|
||||
|
||||
app.add_task(jobs_dispatcher())
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue