aboutsummaryrefslogtreecommitdiff
path: root/aux/ci
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2021-06-07 21:42:08 -0300
committerEuAndreh <eu@euandre.org>2021-06-07 21:42:08 -0300
commit849ccbba56f7f12f983bcbb2a6cfdd04329fe2e4 (patch)
treeda07e25e8538d952e6202793665a939f28083e3e /aux/ci
parentUpdate link to project websites (diff)
downloadeuandre.org-849ccbba56f7f12f983bcbb2a6cfdd04329fe2e4.tar.gz
euandre.org-849ccbba56f7f12f983bcbb2a6cfdd04329fe2e4.tar.xz
Update files under aux/
Diffstat (limited to 'aux/ci')
-rwxr-xr-xaux/ci/ci-build.sh74
-rwxr-xr-xaux/ci/git-post-receive.sh10
-rwxr-xr-xaux/ci/git-pre-push.sh14
-rwxr-xr-xaux/ci/report.sh69
4 files changed, 86 insertions, 81 deletions
diff --git a/aux/ci/ci-build.sh b/aux/ci/ci-build.sh
index 21788f4..b6769a9 100755
--- a/aux/ci/ci-build.sh
+++ b/aux/ci/ci-build.sh
@@ -8,43 +8,45 @@ FILENAME="$(date -Is)-$SHA.log"
LOGFILE="$LOGS_DIR/$FILENAME"
{
- echo "Starting CI job at: $(date -Is)"
-
- finish() {
- STATUS="$?"
- printf "\n\n>>> exit status was %s\n" "$STATUS"
- echo "Finishing CI job at: $(date -Is)"
- cd -
- NOTE=$(cat <<EOF
+ echo "Starting CI job at: $(date -Is)"
+
+ finish() {
+ STATUS="$?"
+ printf "\n\n>>> exit status was %s\n" "$STATUS"
+ echo "Finishing CI job at: $(date -Is)"
+ cd -
+ NOTE=$(cat <<EOF
See CI logs with:
- git notes --ref=refs/notes/ci-logs show $SHA
- git notes --ref=refs/notes/ci-data show $SHA
+ git notes --ref=refs/notes/ci-logs show $SHA
+ git notes --ref=refs/notes/ci-data show $SHA
EOF
)
- git notes --ref=refs/notes/ci-data add -f -m "$STATUS $FILENAME"
- git notes --ref=refs/notes/ci-logs add -f -F "$LOGFILE"
- git notes append -m "$NOTE"
-
- printf "\n>>>\n>>> CI logs added as Git note.\n>>>\n>>> Run status was %s" "$STATUS"
- }
- trap finish EXIT
-
- unset GIT_DIR
- REMOTE="$PWD"
- cd "$(mktemp -d)"
- git clone "$REMOTE" .
- git config --global user.email git@euandre.org
- git config --global user.name 'EuAndreh CI'
- git fetch origin refs/notes/*:refs/notes/*
- git annex get ||:
-
- if [ -f aux/guix/with-container.sh ]; then
- RUNNER='./aux/guix/with-container.sh'
- else
- RUNNER='sh -c'
- fi
-
- $RUNNER 'make clean public dev-check'
-
- rsync -a public/ "/srv/http/$PACKAGE/" --delete
+ git notes --ref=refs/notes/ci-data add -f -m "$STATUS $FILENAME"
+ git notes --ref=refs/notes/ci-logs add -f -F "$LOGFILE"
+ git notes append -m "$NOTE"
+
+ cd -
+ sh aux/ci/report.sh "$PACKAGE"
+ rsync -a public/ "/srv/http/$PACKAGE/" --delete
+
+ printf "\n>>>\n>>> CI logs added as Git note.\n>>>\n>>> Run status was %s" "$STATUS"
+ }
+ trap finish EXIT
+
+ unset GIT_DIR
+ REMOTE="$PWD"
+ cd "$(mktemp -d)"
+ git clone "$REMOTE" .
+ git config --global user.email git@euandre.org
+ git config --global user.name 'EuAndreh CI'
+ git fetch origin refs/notes/*:refs/notes/*
+ git annex get ||:
+
+ if [ -f aux/guix/with-container.sh ]; then
+ RUNNER='./aux/guix/with-container.sh'
+ else
+ RUNNER='sh -c'
+ fi
+
+ $RUNNER 'make clean public dev-check'
} 2>&1 | tee "$LOGFILE"
diff --git a/aux/ci/git-post-receive.sh b/aux/ci/git-post-receive.sh
index f8986ed..ee8075f 100755
--- a/aux/ci/git-post-receive.sh
+++ b/aux/ci/git-post-receive.sh
@@ -2,11 +2,11 @@
set -eu
for n in $(seq 0 $((GIT_PUSH_OPTION_COUNT - 1))); do
- opt="$(eval "echo \$GIT_PUSH_OPTION_$n")"
- if [ "$opt" = skip-ci ] || [ "$opt" = ci-skip ]; then
- printf "\n'%s' option detected, not running ci-build.sh\n\n" "$opt"
- exit 0
- fi
+ opt="$(eval "echo \$GIT_PUSH_OPTION_$n")"
+ if [ "$opt" = skip-ci ] || [ "$opt" = ci-skip ]; then
+ printf "\n'%s' option detected, not running ci-build.sh\n\n" "$opt"
+ exit 0
+ fi
done
PACKAGE="$(basename "$PWD" | cut -d. -f1)" # remove .git suffix
diff --git a/aux/ci/git-pre-push.sh b/aux/ci/git-pre-push.sh
index 5546cb2..e73b9b8 100755
--- a/aux/ci/git-pre-push.sh
+++ b/aux/ci/git-pre-push.sh
@@ -1,6 +1,8 @@
#!/bin/sh
set -eux
+TLD="$(cat aux/tld.txt)"
+
PACKAGE="$(basename "$PWD")"
LOGS_DIR="/opt/ci/$PACKAGE/logs"
REMOTE_GIT_DIR="/srv/git/$PACKAGE.git"
@@ -8,12 +10,12 @@ REMOTE_GIT_DIR="/srv/git/$PACKAGE.git"
DESCRIPTION="$(mktemp)"
if [ -f description ]
then
- cp description "$DESCRIPTION"
+ cp description "$DESCRIPTION"
else
- git config euandreh.description > "$DESCRIPTION"
+ git config euandreh.description > "$DESCRIPTION"
fi
-scp "$DESCRIPTION" "git.euandreh.xyz:$REMOTE_GIT_DIR/description"
-ssh git.euandreh.xyz mkdir -p "$LOGS_DIR"
-scp aux/ci/ci-build.sh "git.euandreh.xyz:$(dirname "$LOGS_DIR")/ci-build.sh"
-scp aux/ci/git-post-receive.sh "git.euandreh.xyz:$REMOTE_GIT_DIR/hooks/post-receive"
+scp "$DESCRIPTION" "$TLD:$REMOTE_GIT_DIR/description"
+ssh "$TLD" mkdir -p "$LOGS_DIR"
+scp aux/ci/ci-build.sh "$TLD:$(dirname "$LOGS_DIR")/ci-build.sh"
+scp aux/ci/git-post-receive.sh "$TLD:$REMOTE_GIT_DIR/hooks/post-receive"
diff --git a/aux/ci/report.sh b/aux/ci/report.sh
index b82c061..65d3335 100755
--- a/aux/ci/report.sh
+++ b/aux/ci/report.sh
@@ -14,55 +14,56 @@ chmod 644 "$OUT"
git fetch origin refs/notes/*:refs/notes/* ||:
for c in $(git notes list | cut -d\ -f2); do
- DATA="$(git notes --ref=refs/notes/ci-data show "$c")"
- FILENAME="$(echo "$DATA" | cut -d\ -f2)"
- echo "$DATA" > "public/ci-data/$FILENAME"
- git notes --ref=refs/notes/ci-logs show "$c" > "public/ci-logs/$FILENAME"
+ DATA="$(git notes --ref=refs/notes/ci-data show "$c")"
+ FILENAME="$(echo "$DATA" | cut -d\ -f2)"
+ echo "$DATA" > "public/ci-data/$FILENAME"
+ git notes --ref=refs/notes/ci-logs show "$c" > "public/ci-logs/$FILENAME"
done
cat <<EOF >> "$OUT"
<!DOCTYPE html>
<html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="icon" type="image/svg+xml" href="favicon.svg" />
- <style>
- pre {
- display: inline;
- }
- </style>
- </head>
- <body>
- <h1>
- CI logs for $PROJECT_UC
- </h1>
- <ul>
+ <style>
+ pre {
+ display: inline;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>
+ CI logs for $PROJECT_UC
+ </h1>
+ <ul>
EOF
for f in $(find public/ci-data/ -type f | LANG=C.UTF-8 sort -r); do
- DATA="$(cat "$f")"
- STATUS="$(echo "$DATA" | cut -d\ -f1)"
- FILENAME="$(echo "$DATA" | cut -d\ -f2)"
+ DATA="$(cat "$f")"
+ STATUS="$(echo "$DATA" | cut -d\ -f1)"
+ FILENAME="$(echo "$DATA" | cut -d\ -f2)"
- if [ "$STATUS" = 0 ]; then
- STATUS_MARKER="$PASS"
- else
- STATUS_MARKER="$FAIL"
- fi
+ if [ "$STATUS" = 0 ]; then
+ STATUS_MARKER="$PASS"
+ else
+ STATUS_MARKER="$FAIL"
+ fi
- cat <<EOF >> "$OUT"
- <li>
- <a href="ci-logs/$FILENAME">
- $STATUS_MARKER <pre>$FILENAME</pre>
- </a>
- </li>
+ cat <<EOF >> "$OUT"
+ <li>
+ <a href="ci-logs/$FILENAME">
+ $STATUS_MARKER <pre>$FILENAME</pre>
+ </a>
+ </li>
EOF
done
cat <<EOF >> "$OUT"
- </ul>
- </body>
+ </ul>
+ </body>
</html>
EOF