summaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2021-09-30 12:47:20 -0300
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-09-30 20:05:00 +0000
commit9270f072ccbd33bcc3806456bf397db6ca228cec (patch)
treeb3f61d46b42bb4ececaf212c93bf58e2456c97c9 /ci
parentb6112ca6f9dcae938c0213ee4549d226a38b0a62 (diff)
downloadgstreamer-9270f072ccbd33bcc3806456bf397db6ca228cec.tar.gz
ci:doc: Rewrite script to import doc on fdo ensuring the right job is used
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/999>
Diffstat (limited to 'ci')
-rwxr-xr-xci/gitlab/freedesktop_doc_importer.py39
-rwxr-xr-xci/gitlab/freedesktop_doc_importer.sh36
2 files changed, 39 insertions, 36 deletions
diff --git a/ci/gitlab/freedesktop_doc_importer.py b/ci/gitlab/freedesktop_doc_importer.py
new file mode 100755
index 0000000000..6a013687b7
--- /dev/null
+++ b/ci/gitlab/freedesktop_doc_importer.py
@@ -0,0 +1,39 @@
+#!/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
diff --git a/ci/gitlab/freedesktop_doc_importer.sh b/ci/gitlab/freedesktop_doc_importer.sh
deleted file mode 100755
index bbebaf5ee8..0000000000
--- a/ci/gitlab/freedesktop_doc_importer.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-set -e
-
-BRANCH=main
-NAMESPACE=gstreamer
-JOB=documentation
-
-WORK_DIR=$(mktemp -d -p "$DIR")
-
-# deletes the temp directory
-cleanup() {
- rm -rf "$WORK_DIR"
- echo "Deleted temp working directory $WORK_DIR"
-}
-
-# register the cleanup function to be called on the EXIT signal
-trap cleanup EXIT
-
-echo ""
-echo "============================================================================================================================"
-echo "Updating documentation from: https://gitlab.freedesktop.org/$NAMESPACE/gstreamer/-/jobs/artifacts/$BRANCH/download?job=$JOB"
-
-date
-
-cd $WORK_DIR
-wget https://gitlab.freedesktop.org/$NAMESPACE/gstreamer/-/jobs/artifacts/$BRANCH/download?job=$JOB -O gstdocs.zip
-
-unzip gstdocs.zip
-
-DOC_BASE="/srv/gstreamer.freedesktop.org/public_html/documentation"
-
-rsync -rvaz --links --delete documentation/ $DOC_BASE || /bin/true
-chmod -R g+w $DOC_BASE; chgrp -R gstreamer $DOC_BASE
-echo "Done updating documentation"
-echo "" \ No newline at end of file