ci:doc: Rewrite script to import doc on fdo ensuring the right job is used
authorThibault Saunier <tsaunier@igalia.com>
Thu, 30 Sep 2021 15:47:20 +0000 (12:47 -0300)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 30 Sep 2021 20:05:00 +0000 (20:05 +0000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/999>

ci/gitlab/freedesktop_doc_importer.py [new file with mode: 0755]
ci/gitlab/freedesktop_doc_importer.sh [deleted file]

diff --git a/ci/gitlab/freedesktop_doc_importer.py b/ci/gitlab/freedesktop_doc_importer.py
new file mode 100755 (executable)
index 0000000..6a01368
--- /dev/null
@@ -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 (executable)
index bbebaf5..0000000
+++ /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