Merge branch 'master' into add-table-row-index
This commit is contained in:
commit
58d9640089
11 changed files with 112 additions and 85 deletions
1
.github/pull_request_template.md
vendored
1
.github/pull_request_template.md
vendored
|
|
@ -1,2 +1,3 @@
|
||||||
<!-- Please title the PR with a scope prefix like cli: performance improvements. -->
|
<!-- Please title the PR with a scope prefix like cli: performance improvements. -->
|
||||||
<!-- Please add screenshots or screencasts for ui/autolayout changes. -->
|
<!-- Please add screenshots or screencasts for ui/autolayout changes. -->
|
||||||
|
<!-- Remember to update ci/release/changelogs/next.md, the manpage and cli help documentation. -->
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,7 @@ EOF
|
||||||
if ! manpath | grep -qF "$PREFIX/share/man"; then
|
if ! manpath | grep -qF "$PREFIX/share/man"; then
|
||||||
logcat >&2 <<EOF
|
logcat >&2 <<EOF
|
||||||
Extend your \$MANPATH to view d2's manpages:
|
Extend your \$MANPATH to view d2's manpages:
|
||||||
export MANPATH=$PREFIX/share/man\${MANPATH+:\$MANPATH}
|
export MANPATH=$PREFIX/share/man:\$MANPATH
|
||||||
Then run:
|
Then run:
|
||||||
man d2
|
man d2
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
|
|
@ -118,10 +118,10 @@ build() {
|
||||||
macos)
|
macos)
|
||||||
case $ARCH in
|
case $ARCH in
|
||||||
amd64)
|
amd64)
|
||||||
RHOST=$TSTRUCT_MACOS_AMD64_BUILDER build_rhost_macos
|
REMOTE_HOST=$TSTRUCT_MACOS_AMD64_BUILDER build_remote_macos
|
||||||
;;
|
;;
|
||||||
arm64)
|
arm64)
|
||||||
RHOST=$TSTRUCT_MACOS_ARM64_BUILDER build_rhost_macos
|
REMOTE_HOST=$TSTRUCT_MACOS_ARM64_BUILDER build_remote_macos
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
warn "no builder for OS=$OS ARCH=$ARCH, building locally..."
|
warn "no builder for OS=$OS ARCH=$ARCH, building locally..."
|
||||||
|
|
@ -132,10 +132,10 @@ build() {
|
||||||
linux)
|
linux)
|
||||||
case $ARCH in
|
case $ARCH in
|
||||||
amd64)
|
amd64)
|
||||||
RHOST=$TSTRUCT_LINUX_AMD64_BUILDER build_rhost_linux
|
REMOTE_HOST=$TSTRUCT_LINUX_AMD64_BUILDER build_remote_linux
|
||||||
;;
|
;;
|
||||||
arm64)
|
arm64)
|
||||||
RHOST=$TSTRUCT_LINUX_ARM64_BUILDER build_rhost_linux
|
REMOTE_HOST=$TSTRUCT_LINUX_ARM64_BUILDER build_remote_linux
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
warn "no builder for OS=$OS ARCH=$ARCH, building locally..."
|
warn "no builder for OS=$OS ARCH=$ARCH, building locally..."
|
||||||
|
|
@ -160,10 +160,12 @@ build_local() {
|
||||||
sh_c ./ci/release/_build.sh
|
sh_c ./ci/release/_build.sh
|
||||||
}
|
}
|
||||||
|
|
||||||
build_rhost_macos() {
|
build_remote_macos() {
|
||||||
sh_c ssh "$RHOST" mkdir -p src
|
sh_c lockfile_ssh "$REMOTE_HOST" .d2-build-lock
|
||||||
sh_c rsync --archive --human-readable --delete ./ "$RHOST:src/d2/"
|
trap unlockfile_ssh EXIT
|
||||||
sh_c ssh -tttt "$RHOST" "DRY_RUN=${DRY_RUN-} \
|
sh_c ssh "$REMOTE_HOST" mkdir -p src
|
||||||
|
sh_c rsync --archive --human-readable --delete ./ "$REMOTE_HOST:src/d2/"
|
||||||
|
sh_c ssh -tttt "$REMOTE_HOST" "DRY_RUN=${DRY_RUN-} \
|
||||||
HW_BUILD_DIR=$HW_BUILD_DIR \
|
HW_BUILD_DIR=$HW_BUILD_DIR \
|
||||||
VERSION=$VERSION \
|
VERSION=$VERSION \
|
||||||
OS=$OS \
|
OS=$OS \
|
||||||
|
|
@ -173,13 +175,15 @@ TERM=$TERM \
|
||||||
PATH=\\\"/usr/local/bin:/usr/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin\\\${PATH+:\\\$PATH}\\\" \
|
PATH=\\\"/usr/local/bin:/usr/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin\\\${PATH+:\\\$PATH}\\\" \
|
||||||
./src/d2/ci/release/_build.sh"
|
./src/d2/ci/release/_build.sh"
|
||||||
sh_c mkdir -p "$HW_BUILD_DIR"
|
sh_c mkdir -p "$HW_BUILD_DIR"
|
||||||
sh_c rsync --archive --human-readable "$RHOST:src/d2/$ARCHIVE" "$ARCHIVE"
|
sh_c rsync --archive --human-readable "$REMOTE_HOST:src/d2/$ARCHIVE" "$ARCHIVE"
|
||||||
}
|
}
|
||||||
|
|
||||||
build_rhost_linux() {
|
build_remote_linux() {
|
||||||
sh_c ssh "$RHOST" mkdir -p src
|
sh_c lockfile_ssh "$REMOTE_HOST" .d2-build-lock
|
||||||
sh_c rsync --archive --human-readable --delete ./ "$RHOST:src/d2/"
|
trap unlockfile_ssh EXIT
|
||||||
sh_c ssh -tttt "$RHOST" "DRY_RUN=${DRY_RUN-} \
|
sh_c ssh "$REMOTE_HOST" mkdir -p src
|
||||||
|
sh_c rsync --archive --human-readable --delete ./ "$REMOTE_HOST:src/d2/"
|
||||||
|
sh_c ssh -tttt "$REMOTE_HOST" "DRY_RUN=${DRY_RUN-} \
|
||||||
HW_BUILD_DIR=$HW_BUILD_DIR \
|
HW_BUILD_DIR=$HW_BUILD_DIR \
|
||||||
VERSION=$VERSION \
|
VERSION=$VERSION \
|
||||||
OS=$OS \
|
OS=$OS \
|
||||||
|
|
@ -188,7 +192,7 @@ ARCHIVE=$ARCHIVE \
|
||||||
TERM=$TERM \
|
TERM=$TERM \
|
||||||
./src/d2/ci/release/build_docker.sh"
|
./src/d2/ci/release/build_docker.sh"
|
||||||
sh_c mkdir -p "$HW_BUILD_DIR"
|
sh_c mkdir -p "$HW_BUILD_DIR"
|
||||||
sh_c rsync --archive --human-readable "$RHOST:src/d2/$ARCHIVE" "$ARCHIVE"
|
sh_c rsync --archive --human-readable "$REMOTE_HOST:src/d2/$ARCHIVE" "$ARCHIVE"
|
||||||
}
|
}
|
||||||
|
|
||||||
ssh() {
|
ssh() {
|
||||||
|
|
|
||||||
61
ci/release/builders/aws_copy_keys.sh
Executable file
61
ci/release/builders/aws_copy_keys.sh
Executable file
|
|
@ -0,0 +1,61 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
cd -- "$(dirname "$0")/../../.."
|
||||||
|
. ./ci/sub/lib.sh
|
||||||
|
|
||||||
|
help() {
|
||||||
|
cat <<EOF
|
||||||
|
usage: $0 [--dry-run] -i keys.pub
|
||||||
|
|
||||||
|
$0 copies keys.pub to each builder and then deduplicates its .authorized_keys.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
while :; do
|
||||||
|
flag_parse "$@"
|
||||||
|
case "$FLAG" in
|
||||||
|
h|help)
|
||||||
|
help
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
dry-run)
|
||||||
|
flag_noarg && shift "$FLAGSHIFT"
|
||||||
|
DRY_RUN=1
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
flag_nonemptyarg && shift "$FLAGSHIFT"
|
||||||
|
KEY_FILE=$FLAGARG
|
||||||
|
;;
|
||||||
|
'')
|
||||||
|
shift "$FLAGSHIFT"
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
flag_errusage "unrecognized flag $FLAGRAW"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
if [ -z "${KEY_FILE-}" ]; then
|
||||||
|
echoerr "-i is required"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
header linux-amd64
|
||||||
|
REMOTE_HOST=$TSTRUCT_LINUX_AMD64_BUILDER copy_keys
|
||||||
|
header linux-arm64
|
||||||
|
REMOTE_HOST=$TSTRUCT_LINUX_ARM64_BUILDER copy_keys
|
||||||
|
header macos-amd64
|
||||||
|
REMOTE_HOST=$TSTRUCT_MACOS_AMD64_BUILDER copy_keys
|
||||||
|
header macos-arm64
|
||||||
|
REMOTE_HOST=$TSTRUCT_MACOS_ARM64_BUILDER copy_keys
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_keys() {
|
||||||
|
sh_c ssh-copy-id -fi "$KEY_FILE" "$REMOTE_HOST"
|
||||||
|
sh_c ssh "$REMOTE_HOST" 'cat .ssh/authorized_keys \| sort -u \> .ssh/authorized_keys.dedup'
|
||||||
|
sh_c ssh "$REMOTE_HOST" 'cp .ssh/authorized_keys.dedup .ssh/authorized_keys'
|
||||||
|
sh_c ssh "$REMOTE_HOST" 'rm .ssh/authorized_keys.dedup'
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
|
@ -41,12 +41,12 @@ main() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${SKIP_CREATE-}" ]; then
|
if [ -z "${SKIP_CREATE-}" ]; then
|
||||||
create_rhosts
|
create_remote_hosts
|
||||||
fi
|
fi
|
||||||
init_rhosts
|
init_remote_hosts
|
||||||
}
|
}
|
||||||
|
|
||||||
create_rhosts() {
|
create_remote_hosts() {
|
||||||
KEY_NAME=$(aws ec2 describe-key-pairs | jq -r .KeyPairs[0].KeyName)
|
KEY_NAME=$(aws ec2 describe-key-pairs | jq -r .KeyPairs[0].KeyName)
|
||||||
VPC_ID=$(aws ec2 describe-vpcs | jq -r .Vpcs[0].VpcId)
|
VPC_ID=$(aws ec2 describe-vpcs | jq -r .Vpcs[0].VpcId)
|
||||||
|
|
||||||
|
|
@ -194,15 +194,15 @@ create_rhosts() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
init_rhosts() {
|
init_remote_hosts() {
|
||||||
header linux-amd64
|
header linux-amd64
|
||||||
RHOST=$TSTRUCT_LINUX_AMD64_BUILDER init_rhost_linux
|
REMOTE_HOST=$TSTRUCT_LINUX_AMD64_BUILDER init_remote_linux
|
||||||
header linux-arm64
|
header linux-arm64
|
||||||
RHOST=$TSTRUCT_LINUX_ARM64_BUILDER init_rhost_linux
|
REMOTE_HOST=$TSTRUCT_LINUX_ARM64_BUILDER init_remote_linux
|
||||||
header macos-amd64
|
header macos-amd64
|
||||||
RHOST=$TSTRUCT_MACOS_AMD64_BUILDER init_rhost_macos
|
REMOTE_HOST=$TSTRUCT_MACOS_AMD64_BUILDER init_remote_macos
|
||||||
header macos-arm64
|
header macos-arm64
|
||||||
RHOST=$TSTRUCT_MACOS_ARM64_BUILDER init_rhost_macos
|
REMOTE_HOST=$TSTRUCT_MACOS_ARM64_BUILDER init_remote_macos
|
||||||
|
|
||||||
COLOR=2 header summary
|
COLOR=2 header summary
|
||||||
log "export TSTRUCT_LINUX_AMD64_BUILDER=$TSTRUCT_LINUX_AMD64_BUILDER"
|
log "export TSTRUCT_LINUX_AMD64_BUILDER=$TSTRUCT_LINUX_AMD64_BUILDER"
|
||||||
|
|
@ -211,32 +211,32 @@ init_rhosts() {
|
||||||
log "export TSTRUCT_MACOS_ARM64_BUILDER=$TSTRUCT_MACOS_ARM64_BUILDER"
|
log "export TSTRUCT_MACOS_ARM64_BUILDER=$TSTRUCT_MACOS_ARM64_BUILDER"
|
||||||
}
|
}
|
||||||
|
|
||||||
init_rhost_linux() {
|
init_remote_linux() {
|
||||||
while true; do
|
while true; do
|
||||||
if sh_c ssh "$RHOST" :; then
|
if sh_c ssh "$REMOTE_HOST" :; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
sh_c ssh "$RHOST" 'sudo yum upgrade -y'
|
sh_c ssh "$REMOTE_HOST" 'sudo yum upgrade -y'
|
||||||
sh_c ssh "$RHOST" 'sudo yum install -y docker'
|
sh_c ssh "$REMOTE_HOST" 'sudo yum install -y docker'
|
||||||
sh_c ssh "$RHOST" 'sudo systemctl start docker'
|
sh_c ssh "$REMOTE_HOST" 'sudo systemctl start docker'
|
||||||
sh_c ssh "$RHOST" 'sudo systemctl enable docker'
|
sh_c ssh "$REMOTE_HOST" 'sudo systemctl enable docker'
|
||||||
sh_c ssh "$RHOST" 'sudo usermod -a -G docker ec2-user'
|
sh_c ssh "$REMOTE_HOST" 'sudo usermod -a -G docker ec2-user'
|
||||||
sh_c ssh "$RHOST" 'sudo reboot' || true
|
sh_c ssh "$REMOTE_HOST" 'sudo reboot' || true
|
||||||
}
|
}
|
||||||
|
|
||||||
init_rhost_macos() {
|
init_remote_macos() {
|
||||||
while true; do
|
while true; do
|
||||||
if sh_c ssh "$RHOST" :; then
|
if sh_c ssh "$REMOTE_HOST" :; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
sh_c ssh "$RHOST" '": | /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""'
|
sh_c ssh "$REMOTE_HOST" '": | /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""'
|
||||||
sh_c ssh "$RHOST" 'PATH="/usr/local/bin:/opt/homebrew/bin:\$PATH" brew update'
|
sh_c ssh "$REMOTE_HOST" 'PATH="/usr/local/bin:/opt/homebrew/bin:\$PATH" brew update'
|
||||||
sh_c ssh "$RHOST" 'PATH="/usr/local/bin:/opt/homebrew/bin:\$PATH" brew upgrade'
|
sh_c ssh "$REMOTE_HOST" 'PATH="/usr/local/bin:/opt/homebrew/bin:\$PATH" brew upgrade'
|
||||||
sh_c ssh "$RHOST" 'PATH="/usr/local/bin:/opt/homebrew/bin:\$PATH" brew install go'
|
sh_c ssh "$REMOTE_HOST" 'PATH="/usr/local/bin:/opt/homebrew/bin:\$PATH" brew install go'
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -eu
|
|
||||||
cd -- "$(dirname "$0")/../../.."
|
|
||||||
. ./ci/sub/lib.sh
|
|
||||||
|
|
||||||
help() {
|
|
||||||
cat <<EOF
|
|
||||||
usage: $0 [--dry-run] [...args]
|
|
||||||
|
|
||||||
$0 runs ssh-copy-id on each builder.
|
|
||||||
args are passed to ssh-copy-id directly.
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
while :; do
|
|
||||||
flag_parse "$@"
|
|
||||||
case "$FLAG" in
|
|
||||||
h|help)
|
|
||||||
help
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
dry-run)
|
|
||||||
flag_noarg && shift "$FLAGSHIFT"
|
|
||||||
DRY_RUN=1
|
|
||||||
;;
|
|
||||||
'')
|
|
||||||
shift "$FLAGSHIFT"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
flag_errusage "unrecognized flag $FLAGRAW"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
sh_c ssh-copy-id "$@" "\$TSTRUCT_LINUX_AMD64_BUILDER"
|
|
||||||
sh_c ssh-copy-id "$@" "\$TSTRUCT_LINUX_ARM64_BUILDER"
|
|
||||||
sh_c ssh-copy-id "$@" "\$TSTRUCT_MACOS_AMD64_BUILDER"
|
|
||||||
sh_c ssh-copy-id "$@" "\$TSTRUCT_MACOS_ARM64_BUILDER"
|
|
||||||
}
|
|
||||||
|
|
||||||
main "$@"
|
|
||||||
|
|
@ -4,14 +4,14 @@ cd -- "$(dirname "$0")/.."
|
||||||
. ./scripts/lib.sh
|
. ./scripts/lib.sh
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
if [ ! -e "${PREFIX-}" ]; then
|
if [ -z "${PREFIX-}" ]; then
|
||||||
echoerr "\$PREFIX must be set to a unix prefix directory in which to install d2 like /usr/local"
|
echoerr "\$PREFIX must be set to a unix prefix directory in which to install d2 like /usr/local"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sh_c mkdir -p "$PREFIX/bin"
|
sh_c mkdir -p "$PREFIX/bin"
|
||||||
sh_c mkdir -p "$PREFIX/share/man/man1"
|
|
||||||
sh_c install ./bin/d2 "$PREFIX/bin/d2"
|
sh_c install ./bin/d2 "$PREFIX/bin/d2"
|
||||||
|
sh_c mkdir -p "$PREFIX/share/man/man1"
|
||||||
sh_c install ./man/d2.1 "$PREFIX/share/man/man1"
|
sh_c install ./man/d2.1 "$PREFIX/share/man/man1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -n "${DEBUG-}" ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
rand() {
|
rand() {
|
||||||
seed="$1"
|
seed="$1"
|
||||||
range="$2"
|
range="$2"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ cd -- "$(dirname "$0")/.."
|
||||||
. ./scripts/lib.sh
|
. ./scripts/lib.sh
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
if [ ! -e "${PREFIX-}" ]; then
|
if [ -z "${PREFIX-}" ]; then
|
||||||
echoerr "\$PREFIX must be set to a unix prefix directory from which to uninstall d2 like /usr/local"
|
echoerr "\$PREFIX must be set to a unix prefix directory from which to uninstall d2 like /usr/local"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
2
ci/sub
2
ci/sub
|
|
@ -1 +1 @@
|
||||||
Subproject commit 2fd92e49721b984e3a3ce9ea64810947c5eaf442
|
Subproject commit 65baeaa0e48fff12b12b1d04a0b013ba71e20add
|
||||||
|
|
@ -628,7 +628,7 @@ EOF
|
||||||
if ! manpath | grep -qF "$PREFIX/share/man"; then
|
if ! manpath | grep -qF "$PREFIX/share/man"; then
|
||||||
logcat >&2 <<EOF
|
logcat >&2 <<EOF
|
||||||
Extend your \$MANPATH to view d2's manpages:
|
Extend your \$MANPATH to view d2's manpages:
|
||||||
export MANPATH=$PREFIX/share/man\${MANPATH+:\$MANPATH}
|
export MANPATH=$PREFIX/share/man:\$MANPATH
|
||||||
Then run:
|
Then run:
|
||||||
man d2
|
man d2
|
||||||
EOF
|
EOF
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue