diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5372f309..d72827b0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -177,10 +177,19 @@ test nightly: meson shared: extends: .meson + variables: + CI_ARTIFACTS_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/" script: - meson build --default-library=shared --prefix=$(pwd)/install - ninja -C build install - ./ci/check-plugins-installed.py install + - ninja -C build docs/gst_plugins_cache.json + - ci/check-documentation-diff.py + artifacts: + when: always + expire_in: "7 days" + paths: + - plugins-cache-diffs/ meson static: extends: .meson diff --git a/ci/check-documentation-diff.py b/ci/check-documentation-diff.py new file mode 100755 index 00000000..088b0bcc --- /dev/null +++ b/ci/check-documentation-diff.py @@ -0,0 +1,20 @@ +#!/usr/bin/python3 +import os, subprocess, sys + +if __name__ == "__main__": + diffsdir = 'plugins-cache-diffs' + os.makedirs(diffsdir, exist_ok=True) + res = 0 + try: + subprocess.check_call(['git', 'diff', '--quiet'] ) + except subprocess.CalledProcessError: + diffname = os.path.join(diffsdir, 'plugins_cache.diff') + res += 1 + with open(diffname, 'w') as diff: + subprocess.check_call(['git', 'diff'], stdout=diff) + print('\033[91mYou have a diff in the documentation cache. Please update with:\033[0m') + print(' $ curl %s/%s | git apply -' % (os.environ['CI_ARTIFACTS_URL'], diffname.replace('../', ''))) + + if res != 0: + print('(note that it might take a few minutes for artefacts to be available on the server)\n') + sys.exit(res)