diff --git a/automated/build.sh b/automated/build.sh index 23957ec3..ed4dbb39 100755 --- a/automated/build.sh +++ b/automated/build.sh @@ -82,8 +82,14 @@ ARGS_PREBUILD="$ARGS_COMMON -u $USER -v $CABAL_DIR:/home/stackage/.cabal -v $STA ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:/home/stackage/.cabal:ro -v $STACK_DIR:/home/stackage/.stack:ro -v $GHC_DIR:/home/stackage/.ghc:ro" ARGS_UPLOAD="$ARGS_COMMON -u $USER -e AWS_ACCESS_KEY=$AWS_ACCESS_KEY -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY -e AWS_SECRET_KEY=$AWS_SECRET_KEY -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY -v $AUTH_TOKEN:/auth-token:ro -v $HACKAGE_CREDS:/hackage-creds:ro -v $DOT_STACKAGE_DIR:/home/stackage/.stackage -v $SSH_DIR:/home/ubuntu/.ssh:ro -v $GITCONFIG:/home/stackage/.gitconfig:ro -v $CABAL_DIR:/home/stackage/.cabal:ro -v $STACK_DIR:/home/stackage/.stack:ro" -# Make sure we actually need this snapshot -docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "stackage-curator check-target-available --target $TARGET" +# Make sure we actually need this snapshot. We only check this for LTS releases +# since, for nightlies, we'd like to run builds even if they are unnecessary to +# get early warning information of upcoming failures. (See the duplicate check +# below for why this is safe.) +if [ $SHORTNAME = "lts" ] +then + docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "stackage-curator check-target-available --target $TARGET" +fi # Get latest stack curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C $EXTRA_BIN_DIR '*/stack' @@ -102,6 +108,13 @@ docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "/home/stackage/bin/stack update & # switch back to the current user docker run $ARGS_BUILD $IMAGE /bin/bash -c "chown $USER /home/stackage && sudo -E -u $USER env \"PATH=\$PATH:/home/stackage/bin\" stackage-curator make-bundle --plan-file $PLAN_FILE --docmap-file $DOCMAP_FILE --bundle-file $BUNDLE_FILE --target $TARGET" +# Make sure we actually need this snapshot. We used to perform this check +# exclusively before building. Now we perform it after as well for the case of +# nightly, where we don't perform this check beforehand. This is also slightly +# safer, in case someone else already uploaded a specific snapshot while we +# were building. +docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "stackage-curator check-target-available --target $TARGET" + # Successful build, so we need to: # # * Upload the docs to S3