From f5f87702fe88ebd1e26e16298375ec8ccb0541b8 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Wed, 3 Aug 2016 13:38:23 +0000 Subject: [PATCH] Modifications for automated builds on new server --- automated/.gitignore | 2 ++ automated/build.sh | 4 +++- automated/cron.sh | 15 +++++++++++++++ automated/run-nightly.sh | 8 ++++---- 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100755 automated/cron.sh diff --git a/automated/.gitignore b/automated/.gitignore index 8285928f..9c4d36e6 100644 --- a/automated/.gitignore +++ b/automated/.gitignore @@ -8,3 +8,5 @@ /lts-*/ /stackage-curator/ /stackage-update/ +/aws.sh +/crondir/ diff --git a/automated/build.sh b/automated/build.sh index ed4dbb39..98c725f5 100755 --- a/automated/build.sh +++ b/automated/build.sh @@ -5,6 +5,8 @@ set -eux ROOT=$(cd $(dirname $0) ; pwd) TARGET=$1 +source aws.sh + # For nightly-YYYY-MM-DD, tag should be nightly # For lts-X.Y, tag should be ltsX SHORTNAME=$(echo $TARGET | cut -d- -f 1) @@ -80,7 +82,7 @@ chmod +x stackage-curator ARGS_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" ARGS_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" 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" +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" # 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 diff --git a/automated/cron.sh b/automated/cron.sh new file mode 100755 index 00000000..5a351246 --- /dev/null +++ b/automated/cron.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -eux + +CRONDIR=$(pwd)/crondir +mkdir -p $CRONDIR +source aws.sh + +echo "Running stackage-server-cron..." +echo "('tail -f $CRONDIR/stackage-server-cron.log' to watch)" +docker run --rm \ + -v $CRONDIR:/home/ubuntu \ + -w /home/ubuntu \ + fpco/stackage-server-prod:latest \ + 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'" diff --git a/automated/run-nightly.sh b/automated/run-nightly.sh index d1f04485..b10e7fee 100755 --- a/automated/run-nightly.sh +++ b/automated/run-nightly.sh @@ -1,13 +1,13 @@ #!/usr/bin/env bash +cd "$(dirname "${BASH_SOURCE[0]}")" + while true; do - /opt/stackage-build/stackage/automated/build.sh nightly-$(date -u +%F) + ./build.sh nightly-$(date -u +%F) date echo - echo "Running stackage-server-cron..." - echo "('tail -f /home/ubuntu/stackage-server-cron.log' to watch)" - /home/ubuntu/stackage-server-cron.sh >> /home/ubuntu/stackage-server-cron.log 2>&1 + ./cron.sh echo "done." date