Skip to content

Commit 26836b7

Browse files
Merge pull request #35 from o-fedorov/feature/more-ways-to-set-version
More flexibility with setting the release version for `./script/dock pkg`
2 parents 5aa12bc + e174de9 commit 26836b7

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

build.sh

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ set -e
88

99
basedir=$(dirname $0)
1010
GIT_COMMIT=$(git rev-parse HEAD)
11-
RELEASE_VERSION=
12-
RELEASE_SUBVERSION=
11+
RELEASE_VERSION=${RELEASE_VERSION:-""}
12+
RELEASE_SUBVERSION=${RELEASE_SUBVERSION:-""}
1313
release_base_path=/tmp/orchestrator-release
1414
export RELEASE_VERSION release_base_path
1515

@@ -36,8 +36,8 @@ usage() {
3636
echo "-R retain existing build/deployment paths"
3737
echo "-p build prefix Default:(/usr/local)"
3838
echo "-r build with race detector"
39-
echo "-v release version (optional; default: content of RELEASE_VERSION file)"
40-
echo "-s release subversion (optional; default: empty)"
39+
echo "-v release version (optional; default: the value of RELEASE_VERSION environment variable, or content of RELEASE_VERSION file)"
40+
echo "-s release subversion (optional; default: the value of RELEASE_SUBVERSION environment variable, or empty)"
4141
echo
4242
}
4343

@@ -227,9 +227,13 @@ package_linux() {
227227
[ $do_rpm -eq 1 ] && fpm -v "${RELEASE_VERSION}" --epoch 1 -f -s dir -n orchestrator-client -m shlomi-noach --description "MySQL replication topology management and HA: client script" --url "https://github.com/openark/orchestrator" --vendor "GitHub" --license "Apache 2.0" -C $build_path/orchestrator-client --prefix=/ --depends 'jq >= 1.5' -t rpm .
228228
[ $do_deb -eq 1 ] && fpm -v "${RELEASE_VERSION}" --epoch 1 -f -s dir -n orchestrator-client -m shlomi-noach --description "MySQL replication topology management and HA: client script" --url "https://github.com/openark/orchestrator" --vendor "GitHub" --license "Apache 2.0" -C $build_path/orchestrator-client --prefix=/ --depends 'jq >= 1.5' -t deb --deb-no-default-config-files .
229229

230-
if [ ! -z "$package_name_extra" ] ; then
231-
ls *.rpm | while read f; do package_file=$(echo $f | sed -r -e "s/^(.*)-${RELEASE_VERSION}(.*)/\1${package_name_extra}-${RELEASE_VERSION}\2/g") ; mv $f $package_file ; done
232-
ls *.deb | while read f; do package_file=$(echo $f | sed -r -e "s/^(.*)_${RELEASE_VERSION}(.*)/\1${package_name_extra}-${RELEASE_VERSION}\2/g") ; mv $f $package_file ; done
230+
if [ -n "$package_name_extra" ] ; then
231+
# Strip version core out of sting like "3.2.6-pre123+g1234567" to "3.2.6".
232+
# We need it because `-` is converted to `_` in rpm package name,
233+
# and `+` have a special meaning for `sed`.
234+
VERSION_CORE=$(echo $RELEASE_VERSION | sed -r -e "s/^([0-9]+\.[0-9]+\.[0-9]+).*$/\1/g")
235+
ls *.rpm | while read f; do package_file=$(echo $f | sed -r -e "s/^(.*)-${VERSION_CORE}(.*)/\1${package_name_extra}-${VERSION_CORE}\2/g") ; mv $f $package_file ; done
236+
ls *.deb | while read f; do package_file=$(echo $f | sed -r -e "s/^(.*)_${VERSION_CORE}(.*)/\1${package_name_extra}-${VERSION_CORE}\2/g") ; mv $f $package_file ; done
233237
fi
234238

235239
debug "packeges:"

docker/Dockerfile.packaging

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ RUN apt-get install -y curl rsync gcc g++ bash git tar rpm
2626
RUN mkdir -p $GOPATH/src/github.com/openark/orchestrator
2727
WORKDIR $GOPATH/src/github.com/openark/orchestrator
2828
COPY . .
29+
ARG RELEASE_VERSION=
30+
ARG RELEASE_SUBVERSION=
2931
RUN bash build.sh -b -P
3032
RUN bash build.sh -R -N -i sysv
3133
RUN bash build.sh -R -N -i systemd

script/dock

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,23 @@ case "$command" in
4949
"pkg")
5050
packages_path="${2:-/tmp/orchestrator-release}"
5151
docker_target="orchestrator-packaging"
52-
docker build . -f docker/Dockerfile.packaging -t "${docker_target}" && docker run --rm -it -v "${packages_path}:/tmp/pkg" "${docker_target}:latest" bash -c 'find /tmp/orchestrator-release/ -maxdepth 1 -type f | xargs cp -t /tmp/pkg'
52+
docker build . --build-arg RELEASE_VERSION=${RELEASE_VERSION} \
53+
--build-arg RELEASE_SUBVERSION=${RELEASE_SUBVERSION} \
54+
-f docker/Dockerfile.packaging \
55+
-t "${docker_target}" \
56+
&& docker run --rm -it -v "${packages_path}:/tmp/pkg" "${docker_target}:latest" \
57+
bash -c 'find /tmp/orchestrator-release/ -maxdepth 1 -type f \
58+
| xargs cp -t /tmp/pkg'
5359
echo "packages generated on ${packages_path}:"
5460
ls -l "${packages_path}"
5561
;;
5662
"system")
5763
docker_target="orchestrator-system"
58-
docker build . -f docker/Dockerfile.system -t "${docker_target}" --build-arg ci_env_repo=${CI_ENV_REPO_ENV} --build-arg ci_env_branch=${CI_ENV_BRANCH_ENV} && docker run --rm -it -p 3000:3000 --env TARBALL_URL=${TARBALL_URL} --env RUN_TESTS=${RUN_TESTS} --env ALLOW_TESTS_FAILURES=${ALLOW_TESTS_FAILURES} "${docker_target}:latest"
64+
docker build . -f docker/Dockerfile.system -t "${docker_target}" --build-arg ci_env_repo=${CI_ENV_REPO_ENV} --build-arg ci_env_branch=${CI_ENV_BRANCH_ENV} && docker run --rm -it -p 3000:3000 --env TARBALL_URL=${TARBALL_URL} --env RUN_TESTS=${RUN_TESTS} --env ALLOW_TESTS_FAILURES=${ALLOW_TESTS_FAILURES} "${docker_target}:latest"
5965
;;
6066
"system-no-it")
6167
docker_target="orchestrator-system"
62-
docker build . -f docker/Dockerfile.system -t "${docker_target}" --build-arg ci_env_repo=${CI_ENV_REPO_ENV} --build-arg ci_env_branch=${CI_ENV_BRANCH_ENV} && docker run --rm --env TARBALL_URL=${TARBALL_URL} --env RUN_TESTS=${RUN_TESTS} --env ALLOW_TESTS_FAILURES=${ALLOW_TESTS_FAILURES} "${docker_target}:latest"
68+
docker build . -f docker/Dockerfile.system -t "${docker_target}" --build-arg ci_env_repo=${CI_ENV_REPO_ENV} --build-arg ci_env_branch=${CI_ENV_BRANCH_ENV} && docker run --rm --env TARBALL_URL=${TARBALL_URL} --env RUN_TESTS=${RUN_TESTS} --env ALLOW_TESTS_FAILURES=${ALLOW_TESTS_FAILURES} "${docker_target}:latest"
6369
;;
6470
"raft")
6571
docker_target="orchestrator-raft"

0 commit comments

Comments
 (0)