aboutsummaryrefslogtreecommitdiff
path: root/scripts/ci/mail.sh
blob: 29420faf7964eadd2c452942178d7124a4a35870 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env bash
set -Eeuo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
cd ../../

EXIT_CODE="${1:-}"

[[ -z "${EXIT_CODE}" ]] && {
  # shellcheck disable=SC2016
  echo 'Error: missing $EXIT positional argument.'
  exit 2
}

if [[ "${EXIT_CODE}" = 0 ]]; then
  SUBJECT_SUFFIX=''
else
  SUBJECT_SUFFIX=' (FAILED BUILD)'
fi

SUBJECT="VPS CI run #${JOB_ID} logs${SUBJECT_SUFFIX}"
ATTACHMENT_PATH='logs.txt'
BODY=$(cat <<EOF
CI run for commit ${VPS_COMMIT_SHA}.
See failed run:
https://builds.sr.ht/~euandreh/job/${JOB_ID}

Logs are attached.

EOF
)

tail -n +1 ./logs/*.txt > "${ATTACHMENT_PATH}"

[[ "${USER}" = "build" ]] || {
  echo "Not running on CI."
  echo "Early exit on sending email logs."
  exit
}

gpg --always-trust          \
    -r "${GPG_TO}"          \
    -e "${ATTACHMENT_PATH}"

curl "${MAILGUN_URL}"          \
     -s                        \
     --user "${MAILGUN_USER}"  \
     -F from="${MAILGUN_FROM}" \
     -F to="${MAILGUN_TO}"     \
     -F subject="${SUBJECT}"   \
     -F text="${BODY}"         \
     -F attachment="@${ATTACHMENT_PATH}.gpg"