on master help sign in
Modifications for automated builds on new server
f5f8770Michael Snoyman
automated/.gitignore+2
@@ -8,3 +8,5 @@
8/lts-*/
8/lts-*/
9/stackage-curator/
9/stackage-curator/
10/stackage-update/
10/stackage-update/
11+/aws.sh
12+/crondir/
automated/build.sh+3−1
@@ -5,6 +5,8 @@ set -eux
5ROOT=$(cd $(dirname $0) ; pwd)
5ROOT=$(cd $(dirname $0) ; pwd)
6TARGET=$1
6TARGET=$1
7
7
8+source aws.sh
9+
8# For nightly-YYYY-MM-DD, tag should be nightly
10# For nightly-YYYY-MM-DD, tag should be nightly
9# For lts-X.Y, tag should be ltsX
11# For lts-X.Y, tag should be ltsX
10SHORTNAME=$(echo $TARGET | cut -d- -f 1)
12SHORTNAME=$(echo $TARGET | cut -d- -f 1)
@@ -80,7 +82,7 @@ chmod +x stackage-curator
80ARGS_COMMON="--rm -v $WORKDIR:/home/stackage/work -w /home/stackage/work -v $BINDIR/stackage-curator:/usr/bin/stackage-curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v $EXTRA_BIN_DIR:/home/stackage/bin:ro"
82ARGS_COMMON="--rm -v $WORKDIR:/home/stackage/work -w /home/stackage/work -v $BINDIR/stackage-curator:/usr/bin/stackage-curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v $EXTRA_BIN_DIR:/home/stackage/bin:ro"
81ARGS_PREBUILD="$ARGS_COMMON -u $USER -v $CABAL_DIR:/home/stackage/.cabal -v $STACK_DIR:/home/stackage/.stack -v $GHC_DIR:/home/stackage/.ghc -v $DOT_STACKAGE_DIR:/home/stackage/.stackage"
83ARGS_PREBUILD="$ARGS_COMMON -u $USER -v $CABAL_DIR:/home/stackage/.cabal -v $STACK_DIR:/home/stackage/.stack -v $GHC_DIR:/home/stackage/.ghc -v $DOT_STACKAGE_DIR:/home/stackage/.stackage"
82ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:/home/stackage/.cabal:ro -v $STACK_DIR:/home/stackage/.stack:ro -v $GHC_DIR:/home/stackage/.ghc:ro"
84ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:/home/stackage/.cabal:ro -v $STACK_DIR:/home/stackage/.stack:ro -v $GHC_DIR:/home/stackage/.ghc:ro"
83−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"
85+ARGS_UPLOAD="$ARGS_COMMON -u $USER -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_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"
84
86
85# Make sure we actually need this snapshot. We only check this for LTS releases
87# Make sure we actually need this snapshot. We only check this for LTS releases
86# since, for nightlies, we'd like to run builds even if they are unnecessary to
88# since, for nightlies, we'd like to run builds even if they are unnecessary to
automated/cron.shnew file+15
@@ -0,0 +1,15 @@
1+#!/usr/bin/env bash
2+
3+set -eux
4+
5+CRONDIR=$(pwd)/crondir
6+mkdir -p $CRONDIR
7+source aws.sh
8+
9+echo "Running stackage-server-cron..."
10+echo "('tail -f $CRONDIR/stackage-server-cron.log' to watch)"
11+docker run --rm \
12+ -v $CRONDIR:/home/ubuntu \
13+ -w /home/ubuntu \
14+ fpco/stackage-server-prod:latest \
15+ bash -c "useradd $(whoami) -u $(id -u); sudo -u $(whoami) env HOME=/home/ubuntu AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY bash -c '/usr/local/bin/stackage-server-cron >> /home/ubuntu/stackage-server-cron.log 2>&1'"
automated/run-nightly.sh+4−4
@@ -1,13 +1,13 @@
1#!/usr/bin/env bash
1#!/usr/bin/env bash
2
2
3+cd "$(dirname "${BASH_SOURCE[0]}")"
4+
3while true; do
5while true; do
4− /opt/stackage-build/stackage/automated/build.sh nightly-$(date -u +%F)
6+ ./build.sh nightly-$(date -u +%F)
5 date
7 date
6 echo
8 echo
7
9
8− echo "Running stackage-server-cron..."
10+ ./cron.sh
9− echo "('tail -f /home/ubuntu/stackage-server-cron.log' to watch)"
10− /home/ubuntu/stackage-server-cron.sh >> /home/ubuntu/stackage-server-cron.log 2>&1
11 echo "done."
11 echo "done."
12 date
12 date
13
13