gstreamer/ci/gitlab/freedesktop_doc_importer.py

40 lines
1.4 KiB
Python
Executable file

#!/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