Files
influx-cli/.circleci/scripts/upload-artifacts
Brandon Pfeifer 1164ca57ff chore: use fpm for packaging (#476)
* chore: remove goreleaser configuration and scripts

* chore: replace goreleaser with fpm

goreleaser handled signing and uploading packages. So, that
functionality had to be implemented here as well.
2023-03-01 17:26:34 -05:00

53 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
set -o errexit \
-o nounset \
-o pipefail
# Determine if "${CIRCLE_TAG}" matches the semantic version regex. Otherwise,
# assume that "${CIRCLE_TAG}" is not intended to tag a release. The regex is
# permissive of what occurs after the semantic version. This allows for
# alphas, betas, and release candidates.
if [[ "${CIRCLE_TAG:-}" =~ ^v[0-9]+.[0-9]+.[0-9]+ ]]
then
VERSION_REGEX="${CIRCLE_TAG/#v/}"
else
# When "${CIRCLE_TAG}" cannot be used to construct the package version,
# use "${CIRCLE_SHA1}". Since "${CIRCLE_SHA1}" can start with an alpha
# (non-numeric) character, prefix it with "2.x-".
VERSION_REGEX="2.x[-_]${CIRCLE_SHA1:0:8}"
fi
REGEX='^packages/influxdb2-client[-_]'"${VERSION_REGEX}"'(.*)'
for target in packages/*
do
if [[ "${target}" =~ ${REGEX} ]]
then
# After renaming the artifact to the "latest/nightly" version, append
# the artifact to the `invalidations` file. Since `dl.influxdata.com`
# contains many 100GBs, this should only invalidate artifacts
# that have changed.
case ${1} in
nightly)
mv -v "${target}" "packages/influxdb2-client-nightly${BASH_REMATCH[1]}"
printf '/platform/nightlies/influxdb2-client-nightly%s\n' "${BASH_REMATCH[1]}" >>invalidations
;;
release)
cp -v "${target}" "packages/influxdb2-client-latest${BASH_REMATCH[1]}"
printf '/influxdb/releases/influxdb2-client-latest%s\n' "${BASH_REMATCH[1]}" >>invalidations
;;
esac
fi
done
case ${1} in
nightly)
aws s3 sync packages s3://dl.influxdata.com/platform/nightlies
;;
release)
aws s3 sync packages s3://dl.influxdata.com/influxdb/releases
;;
esac
aws cloudfront create-invalidation --distribution-id "${AWS_DISTRIBUTION_ID}" --paths $(<invalidations)