aboutsummaryrefslogtreecommitdiff
path: root/po/fr/LC_MESSAGES/_tils/2020-11-30-storing-ci-data-on-git-notes.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/fr/LC_MESSAGES/_tils/2020-11-30-storing-ci-data-on-git-notes.po')
-rw-r--r--po/fr/LC_MESSAGES/_tils/2020-11-30-storing-ci-data-on-git-notes.po149
1 files changed, 149 insertions, 0 deletions
diff --git a/po/fr/LC_MESSAGES/_tils/2020-11-30-storing-ci-data-on-git-notes.po b/po/fr/LC_MESSAGES/_tils/2020-11-30-storing-ci-data-on-git-notes.po
new file mode 100644
index 0000000..e9cc227
--- /dev/null
+++ b/po/fr/LC_MESSAGES/_tils/2020-11-30-storing-ci-data-on-git-notes.po
@@ -0,0 +1,149 @@
+#
+msgid ""
+msgstr ""
+
+msgid "title: Storing CI data on Git notes"
+msgstr ""
+
+msgid "date: 2020-11-30"
+msgstr ""
+
+msgid "layout: post"
+msgstr ""
+
+msgid "lang: en"
+msgstr ""
+
+msgid "ref: storing-ci-data-on-git-notes"
+msgstr ""
+
+msgid ""
+"Extending the bare bones CI server I've [talked about before][previous-"
+"article], divoplade on Freenode suggested storing CI artifacts on [Git "
+"notes][git-notes], such as tarballs, binaries, logs, *etc*."
+msgstr ""
+
+msgid ""
+"I've written a small script that will put log files and CI job data on Git "
+"notes, and make it visible on the porcelain log. It is a simple extension of"
+" the previous article:"
+msgstr ""
+
+msgid ""
+"#!/usr/bin/env bash\n"
+"set -Eeuo pipefail\n"
+"set -x\n"
+"\n"
+"PREFIX='/srv/ci/vps'\n"
+"mkdir -p \"$PREFIX\"\n"
+"read -r _ SHA _ # oldrev newrev refname\n"
+"FILENAME=\"$(date -Is)-$SHA.log\"\n"
+"LOGFILE=\"$PREFIX/$FILENAME\"\n"
+"exec &> >(tee -a \"$LOGFILE\")\n"
+"\n"
+"echo \"Starting CI job at: $(date -Is)\"\n"
+"\n"
+"finish() {\n"
+" STATUS=\"$?\"\n"
+" printf \"\\n\\n>>> exit status was %s\\n\" \"$STATUS\"\n"
+" echo \"Finishing CI job at: $(date -Is)\"\n"
+" popd\n"
+" NOTE=$(cat <<EOF\n"
+"See CI logs with:\n"
+" git notes --ref=refs/notes/ci-logs show $SHA\n"
+" git notes --ref=refs/notes/ci-data show $SHA\n"
+"EOF\n"
+")\n"
+" git notes --ref=refs/notes/ci-data add -f -m \"$STATUS $FILENAME\"\n"
+" git notes --ref=refs/notes/ci-logs add -f -F \"$LOGFILE\"\n"
+" git notes add -f -m \"$NOTE\"\n"
+" printf \"\\n\\n>>> CI logs added as Git note.\"\n"
+"}\n"
+"trap finish EXIT\n"
+"\n"
+"unset GIT_DIR\n"
+"CLONE=\"$(mktemp -d)\"\n"
+"git clone . \"$CLONE\"\n"
+"pushd \"$CLONE\"\n"
+"git config --global user.email git@euandre.org\n"
+"git config --global user.name 'EuAndreh CI'\n"
+"\n"
+"./container make check site\n"
+"./container make publish\n"
+msgstr ""
+
+msgid "The important part is in the `finish()` function:"
+msgstr ""
+
+msgid ""
+"#25 stores the exit status and the generated filename separated by spaces;"
+msgstr ""
+
+msgid "#26 adds the log file in a note using the `refs/notes/ci-logs` ref;"
+msgstr ""
+
+msgid "#27 it adds a note to the commit saying how to see the logs."
+msgstr ""
+
+msgid ""
+"A commit now has an attached note, and shows it whenever you look at it:"
+msgstr ""
+
+msgid ""
+"$ git show 930ba1888f49f11e52a4a715438cd9f5f413dd9c\n"
+"commit 930ba1888f49f11e52a4a715438cd9f5f413dd9c (oldvps/master)\n"
+"Author: EuAndreh <eu@euandre.org>\n"
+"Date: Mon Nov 30 01:11:38 2020 -0300\n"
+"\n"
+" vps.scm: Uncomment mcron job time marker\n"
+"\n"
+"Notes:\n"
+" See CI logs with:\n"
+" git notes --ref=refs/notes/ci-logs show 930ba1888f49f11e52a4a715438cd9f5f413dd9c\n"
+" git notes --ref=refs/notes/ci-data show 930ba1888f49f11e52a4a715438cd9f5f413dd9c\n"
+"\n"
+"diff --git a/sync/vps.scm b/sync/vps.scm\n"
+"index 3f6ca69..02b9cc6 100644\n"
+"--- a/sync/vps.scm\n"
+"+++ b/sync/vps.scm\n"
+"@@ -280,7 +280,7 @@ pki \" mail-domain \" key \\\"\" (tls-priv-for mail-domain) \"\\\"\")))\n"
+" tls-prefixes)))\n"
+"\n"
+" (define generate-ci-index-html-job\n"
+"- #~(job \"* * * * *\" ;; \"*/5 * * * *\"\n"
+"+ #~(job \"*/5 * * * *\"\n"
+" #$(program-file\n"
+" \"generate-ci-index-html.scm\"\n"
+" (with-imported-modules (modules:source-module-closure\n"
+msgstr ""
+
+msgid ""
+"Other tools such as [cgit][cgit] will also show notes on the web interface: "
+"[https://euandreh.xyz/vps.git/commit?id=930ba1888f49f11e52a4a715438cd9f5f413dd9c](https://euandreh.xyz/vps.git/commit?id=930ba1888f49f11e52a4a715438cd9f5f413dd9c)"
+msgstr ""
+
+msgid ""
+"You can go even further: since cgit can serve raw blob directly, you can "
+"even serve such artifacts (log files, release artifacts, binaries) from cgit"
+" itself:"
+msgstr ""
+
+msgid ""
+"$ SHA=\"$(git notes --ref=refs/notes/ci-logs list 930ba1888f49f11e52a4a715438cd9f5f413dd9c)\"\n"
+"$ echo \"https://euandreh.xyz/vps.git/blob?id=$SHA\"\n"
+"https://euandreh.xyz/vps.git/blob?id=b3a6438a0c7a47864c54c61359b6ef50e864dbff\n"
+msgstr ""
+
+msgid ""
+"And like that you'll have cgit serving the artifacts for you: "
+"[https://euandreh.xyz/vps.git/blob?id=b3a6438a0c7a47864c54c61359b6ef50e864dbff](https://euandreh.xyz/vps.git/blob?id=b3a6438a0c7a47864c54c61359b6ef50e864dbff)"
+msgstr ""
+
+msgid ""
+"[previous-article]: {% link _tils/2020-11-12-diy-bare-bones-ci-server-with-"
+"bash-and-nix.md %} [git-notes]: https://git-scm.com/docs/git-notes [cgit]: "
+"https://git.zx2c4.com/cgit/"
+msgstr ""
+
+msgid "eu_categories: git,ci"
+msgstr ""