forked from archlinux/arch-boxes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
generic-ci.sh
executable file
·68 lines (56 loc) · 2.64 KB
/
generic-ci.sh
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash
set -x
case $1 in
install-packer)
PACKER_CURRENT_VERSION="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | jq -r -M '.current_version')"
PACKER_URL="https://releases.hashicorp.com/packer/$PACKER_CURRENT_VERSION/packer_${PACKER_CURRENT_VERSION}_linux_amd64.zip"
PACKER_SHA256="https://releases.hashicorp.com/packer/$PACKER_CURRENT_VERSION/packer_${PACKER_CURRENT_VERSION}_SHA256SUMS"
PACKER_SHA256_SIG="https://releases.hashicorp.com/packer/$PACKER_CURRENT_VERSION/packer_${PACKER_CURRENT_VERSION}_SHA256SUMS.sig"
HASHICORP_FINGERPRINT=91a6e7f85d05c65630bef18951852d87348ffc4c
HASHICORP_KEY="https://keybase.io/hashicorp/pgp_keys.asc?fingerprint=${HASHICORP_FINGERPRINT}"
curl -LO "${PACKER_URL}"
curl -LO "${PACKER_SHA256}"
curl -LO "${PACKER_SHA256_SIG}"
wget -Lo hashicorp.key "${HASHICORP_KEY}"
gpg --with-fingerprint --with-colons hashicorp.key | grep ${HASHICORP_FINGERPRINT^^}
gpg --import hashicorp.key
gpg --verify "packer_${PACKER_CURRENT_VERSION}_SHA256SUMS.sig" "packer_${PACKER_CURRENT_VERSION}_SHA256SUMS"
grep linux_amd64 "packer_${PACKER_CURRENT_VERSION}_SHA256SUMS" >packer_SHA256SUM_linux_amd64
sha256sum --check --status packer_SHA256SUM_linux_amd64
unzip "packer_${PACKER_CURRENT_VERSION}_linux_amd64.zip"
./packer --version
;;
install-shfmt)
curl -Lo shfmt https://github.com/mvdan/sh/releases/download/v2.6.4/shfmt_v2.6.4_linux_amd64
chmod +x ./shfmt
;;
install-yapf)
pip3 install yapf --user
;;
install-flake8)
pip3 install flake8 --user
;;
verify-official)
jq ".\"post-processors\"[0] |= map(select(.\"type\" != \"vagrant-cloud\"))" vagrant.json | ./packer validate -var "iso_url=https://downloads.archlinux.de/iso/$(date +'%Y.%m').01/archlinux-$(date +'%Y.%m').01-x86_64.iso" -var "iso_checksum_url=https://downloads.archlinux.de/iso/$(date +'%Y.%m').01/sha1sums.txt" -
;;
verify-local)
jq ".\"post-processors\"[0] |= map(select(.\"type\" != \"vagrant-cloud\"))" local.json | ./packer validate -var "iso_url=https://downloads.archlinux.de/iso/$(date +'%Y.%m').01/archlinux-$(date +'%Y.%m').01-x86_64.iso" -var "iso_checksum_url=https://downloads.archlinux.de/iso/$(date +'%Y.%m').01/sha1sums.txt" -
;;
# We use + instead of \; here because find doesn't pass
# the exit code through when used with \;
shellcheck)
find . -iname "*.sh" -exec shellcheck {} +
;;
shfmt)
find . -iname "*.sh" -exec ./shfmt -i 2 -ci -d {} +
;;
yapf)
find . -iname "*.py" -exec python3 -m yapf -d {} +
;;
flake8)
find . -iname "*.py" -exec python3 -m flake8 {} +
;;
*)
exit 1
;;
esac