mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-21 15:56:42 +00:00
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
|
#!/usr/bin/python3
|
||
|
import os
|
||
|
import gitlab
|
||
|
from datetime import datetime
|
||
|
import tempfile
|
||
|
from subprocess import check_call, call, check_output
|
||
|
|
||
|
BRANCH="main"
|
||
|
NAMESPACE="gstreamer"
|
||
|
JOB="documentation"
|
||
|
DOC_BASE="/srv/gstreamer.freedesktop.org/public_html/documentation"
|
||
|
|
||
|
print(f"Running at {datetime.now()}")
|
||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||
|
os.chdir(tmpdir)
|
||
|
|
||
|
gl = gitlab.Gitlab("https://gitlab.freedesktop.org/")
|
||
|
project = gl.projects.get(1357)
|
||
|
pipelines = project.pipelines.list()
|
||
|
for pipeline in pipelines:
|
||
|
if pipeline.ref != BRANCH:
|
||
|
continue
|
||
|
|
||
|
job, = [j for j in pipeline.jobs.list() if j.name == "documentation"]
|
||
|
if job.status != "success":
|
||
|
continue
|
||
|
|
||
|
url = f"https://gitlab.freedesktop.org/gstreamer/gstreamer/-/jobs/{job.id}/artifacts/download"
|
||
|
print("============================================================================================================================")
|
||
|
print(f"Updating documentation from: {url}\n\n")
|
||
|
check_call(f"wget {url} -O gstdocs.zip", shell=True)
|
||
|
print("Unziping file.")
|
||
|
check_output("unzip gstdocs.zip", shell=True)
|
||
|
print("Running rsync.")
|
||
|
call(f"rsync -rvaz --links --delete documentation/ {DOC_BASE}", shell=True)
|
||
|
call(f"chmod -R g+w {DOC_BASE}; chgrp -R gstreamer {DOC_BASE}", shell=True)
|
||
|
|
||
|
print(f"Done updating doc")
|
||
|
break
|