#!/usr/bin/env bash . $(dirname ${BASH_SOURCE[0]})/common.sh PACK_PATH="$CURR_DIR"/issue2262-exact-cached-version-match # make sure that there are no left-over selections files rm -f $PACK_PATH/dub.selections.json # make sure that there are no cached versions of the dependency dub remove gitcompatibledubpackage@* -n || true # build normally, should select 1.0.4 if ! ${DUB} build --root $PACK_PATH | grep "gitcompatibledubpackage 1\.0\.4:"; then die $LINENO 'The initial build failed.' fi dub remove gitcompatibledubpackage@* -n || true # build with git dependency to a specific commit cat > $PACK_PATH/dub.selections.json << EOF { "fileVersion": 1, "versions": { "gitcompatibledubpackage": { "repository": "git+https://github.com/dlang-community/gitcompatibledubpackage.git", "version": "ccb31bf6a655437176ec02e04c2305a8c7c90d67" } } } EOF if ! ${DUB} build --root $PACK_PATH | grep "gitcompatibledubpackage 1\.0\.4+commit\.2\.gccb31bf:"; then die $LINENO 'The build with a specific commit failed.' fi # select 1.0.4 again cat > $PACK_PATH/dub.selections.json << EOF { "fileVersion": 1, "versions": { "gitcompatibledubpackage": "1.0.4" } } EOF if ! ${DUB} build --root $PACK_PATH | grep "gitcompatibledubpackage 1\.0\.4:"; then die $LINENO 'The second 1.0.4 build failed.' fi # clean up rm -f $PACK_PATH/dub.selections.json