diff --git a/ci/bash-lib.yml b/ci/bash-lib.yml index 0679ffa273..169c6dde14 100644 --- a/ci/bash-lib.yml +++ b/ci/bash-lib.yml @@ -49,5 +49,54 @@ steps: trap - EXIT eval "$restore_trap" } + gpg_verify() { + local key gpg_dir signature_file res + signature_file=$1 + key=$(mktemp) + cat > $key <$LOG 2>&1 + PIDS="$PIDS $!" + done + for pid in $PIDS; do + wait $pid >$LOG 2>&1 + done + for f in !(*.asc); do + p=github/$VERSION/$f + if ! test -f $f.asc; then + echo $p: no signature file + else + if gpg_verify $f.asc >$LOG 2>&1; then + echo $p: signature matches + else + echo $p: signature does not match + fi + fi + done + cd "$DIR" + rm -rf "$VERSION" + done + displayName: check releases + env: + GCRED: $(GOOGLE_APPLICATION_CREDENTIALS_CONTENT)