From 9270f072ccbd33bcc3806456bf397db6ca228cec Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Thu, 30 Sep 2021 12:47:20 -0300 Subject: [PATCH] ci:doc: Rewrite script to import doc on fdo ensuring the right job is used Part-of: --- ci/gitlab/freedesktop_doc_importer.py | 39 +++++++++++++++++++++++++++ ci/gitlab/freedesktop_doc_importer.sh | 36 ------------------------- 2 files changed, 39 insertions(+), 36 deletions(-) create mode 100755 ci/gitlab/freedesktop_doc_importer.py delete mode 100755 ci/gitlab/freedesktop_doc_importer.sh 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