@@ -18,7 +18,8 @@ fi
18IMAGE=commercialhaskell/stackage:$TAG
18IMAGE=commercialhaskell/stackage:$TAG
20CABAL_DIR=$ROOT/cabal
20CABAL_DIR=$ROOT/cabal
21+PANTRY_DIR=$ROOT/pantry
21−STACK_DIR=$ROOT/stack
22+STACK_DIR=$ROOT/stack-$TAG
22GHC_DIR=$ROOT/ghc
23GHC_DIR=$ROOT/ghc
23DOT_STACKAGE_DIR=$ROOT/dot-stackage
24DOT_STACKAGE_DIR=$ROOT/dot-stackage
24WORKDIR=$ROOT/$TAG/work
25WORKDIR=$ROOT/$TAG/work
@@ -28,6 +29,7 @@ USERID=$(id -u)
30 "$CABAL_DIR" \
31 "$CABAL_DIR" \
31 "$STACK_DIR" \
33 "$STACK_DIR" \
32 "$GHC_DIR" \
34 "$GHC_DIR" \
33 "$DOT_STACKAGE_DIR" \
35 "$DOT_STACKAGE_DIR" \
@@ -69,8 +71,10 @@ mv $CURATOR2 stackage-curator
69./stackage-curator --version
71./stackage-curator --version
72−
74+# We share pantry directory between snapshots while the other content in .stack
75+# is stored separately (because e.g. Ubuntu releases between LTS and nightly
76+# could differ). Also the order of binds is important.
73−ARGS_COMMON="--rm -v $WORKDIR:$HOME/work -w $HOME/work -v $BINDIR/stackage-curator:/usr/bin/stackage-curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v $BINDIR/stack:/usr/bin/stack:ro -v $STACK_DIR:$HOME/.stack"
77+ARGS_COMMON="--rm -v $WORKDIR:$HOME/work -w $HOME/work -v $BINDIR/stackage-curator:/usr/bin/stackage-curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v $BINDIR/stack:/usr/bin/stack:ro -v $STACK_DIR:$HOME/.stack -v $PANTRY_DIR:$HOME/.stack/pantry"
74ARGS_PREBUILD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $CABAL_DIR:$HOME/.cabal -v $GHC_DIR:$HOME/.ghc -v $DOT_STACKAGE_DIR:$HOME/.stackage"
78ARGS_PREBUILD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $CABAL_DIR:$HOME/.cabal -v $GHC_DIR:$HOME/.ghc -v $DOT_STACKAGE_DIR:$HOME/.stackage"
75ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:$HOME/.cabal:ro -v $GHC_DIR:$HOME/.ghc:ro"
79ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:$HOME/.cabal:ro -v $GHC_DIR:$HOME/.ghc:ro"
76# instance-data is an undocumented feature of S3 used by amazonka,
80# instance-data is an undocumented feature of S3 used by amazonka,