diff options
author | EuAndreh <eu@euandre.org> | 2025-03-31 21:51:40 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2025-03-31 21:51:40 -0300 |
commit | 570ec471d1605318aeefb030cd78682ae442235b (patch) | |
tree | 51e17eabe37c6689f8799b55e6875c3480329a2c /src/content/tils/2020/11/30 | |
parent | Makefile, mkdeps.sh: Derive index.html and feed.xml from more static "sortdat... (diff) | |
download | euandre.org-570ec471d1605318aeefb030cd78682ae442235b.tar.gz euandre.org-570ec471d1605318aeefb030cd78682ae442235b.tar.xz |
src/content/: Update all files left to asciidoc
Diffstat (limited to 'src/content/tils/2020/11/30')
-rw-r--r-- | src/content/tils/2020/11/30/git-notes-ci.adoc | 63 |
1 files changed, 26 insertions, 37 deletions
diff --git a/src/content/tils/2020/11/30/git-notes-ci.adoc b/src/content/tils/2020/11/30/git-notes-ci.adoc index f8dd063..bfce42a 100644 --- a/src/content/tils/2020/11/30/git-notes-ci.adoc +++ b/src/content/tils/2020/11/30/git-notes-ci.adoc @@ -1,28 +1,19 @@ ---- += Storing CI data on Git notes -title: Storing CI data on Git notes +:git-notes: https://git-scm.com/docs/git-notes +:nix-bash-ci: link:../12/diy-nix-bash-ci.html +:cgit: https://git.zx2c4.com/cgit/ -date: 2020-11-30 +Extending the bare bones CI server I've {nix-bash-ci}[talked about before], +divoplade on Freenode suggested storing CI artifacts on {git-notes}[Git notes], +such as tarballs, binaries, logs, _etc_. -layout: post +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: -lang: en - -ref: storing-ci-data-on-git-notes - -eu_categories: git,ci - ---- - -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*. - -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: - -```shell +[source,shell] +---- #!/usr/bin/env bash set -Eeuo pipefail set -x @@ -63,16 +54,17 @@ git config --global user.name 'EuAndreh CI' ./container make check site ./container make publish -``` +---- -The important part is in the `finish()` function: -- #25 stores the exit status and the generated filename separated by spaces; -- #26 adds the log file in a note using the `refs/notes/ci-logs` ref; -- #27 it adds a note to the commit saying how to see the logs. +The important part is in the `finish()` function: - #25 stores the exit status +and the generated filename separated by spaces; - #26 adds the log file in a +note using the `refs/notes/ci-logs` ref; - #27 it adds a note to the commit +saying how to see the logs. A commit now has an attached note, and shows it whenever you look at it: -```diff +[source,diff] +---- $ git show 87c57133abd8be5d7cc46afbf107f59b26066575 commit 87c57133abd8be5d7cc46afbf107f59b26066575 Author: EuAndreh <eu@euandre.org> @@ -100,23 +92,20 @@ index d1830ca..a4ccde7 100644 (service dhcp-client-service-type) #; (service opensmtpd-service-type -``` +---- -Other tools such as [cgit][cgit] will also show notes on the web interface: -<https://euandre.org/git/servers/commit?id=87c57133abd8be5d7cc46afbf107f59b26066575>. +Other tools such as {cgit}[cgit] will also show notes on the web interface: +https://euandre.org/git/servers/commit?id=87c57133abd8be5d7cc46afbf107f59b26066575. 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: -```shell +[source,shell] +---- $ SHA="$(git notes --ref=refs/notes/ci-logs list 87c57133abd8be5d7cc46afbf107f59b26066575)" $ echo "https://euandre.org/git/servers/blob?id=$SHA" https://euandre.org/git/servers/blob?id=1707a97bae24e3864fe7943f8dda6d01c294fb5c -``` +---- And like that you'll have cgit serving the artifacts for you: -<https://euandre.org/git/servers/blob?id=1707a97bae24e3864fe7943f8dda6d01c294fb5c>. - -[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/ +https://euandre.org/git/servers/blob?id=1707a97bae24e3864fe7943f8dda6d01c294fb5c. |