solana-with-rpc-optimizations/ci/publish-crate.sh

64 lines
1.5 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -e
2018-05-27 18:19:07 -07:00
cd "$(dirname "$0")/.."
2018-05-21 23:02:54 -07:00
# List of internal crates to publish
#
# IMPORTANT: the order of the CRATES *is* significant. Crates must be published
# before the crates that depend on them. Note that this information is already
# expressed in the various Cargo.toml files, and ideally would not be duplicated
# here. (TODO: figure the crate ordering dynamically)
#
CRATES=(
logger
2018-12-14 17:14:49 -08:00
netutil
sdk
2018-12-12 13:30:00 -08:00
keygen
metrics
2019-03-12 18:03:35 -07:00
client
drone
2019-03-11 18:44:45 -07:00
programs/{budget_api,rewards_api,storage_api,token_api,vote_api}
runtime
programs/{budget,bpf_loader,vote,rewards,storage,token,vote}
vote-signer
core
2018-12-12 16:59:29 -08:00
fullnode
genesis
ledger-tool
wallet
)
2018-05-21 23:02:54 -07:00
# Only package/publish if this is a tagged release
[[ -n $TRIGGERED_BUILDKITE_TAG ]] || {
echo TRIGGERED_BUILDKITE_TAG unset, skipped
exit 0
}
[[ -n "$CRATES_IO_TOKEN" ]] || {
echo CRATES_IO_TOKEN undefined
exit 1
}
cargoCommand="cargo publish --token $CRATES_IO_TOKEN"
for crate in "${CRATES[@]}"; do
if [[ ! -r $crate/Cargo.toml ]]; then
echo "Error: $crate/Cargo.toml does not exist"
exit 1
fi
echo "-- $crate"
# TODO: Ensure the published version matches the contents of
# TRIGGERED_BUILDKITE_TAG
(
set -x
# TODO: the rocksdb package does not build with the stock rust docker image,
# so use the solana rust docker image until this is resolved upstream
2019-03-11 18:44:45 -07:00
ci/docker-run.sh solanalabs/rust:1.32.0 bash -exc "cd $crate; $cargoCommand"
#ci/docker-run.sh rust bash -exc "cd $crate; $cargoCommand"
)
done
2018-05-21 23:02:54 -07:00
exit 0