From 5b4a10368f702311bb88f8ba74c9c8f65c7e4d82 Mon Sep 17 00:00:00 2001 From: Simon Mo Date: Tue, 11 Aug 2020 11:46:00 -0700 Subject: [PATCH] Upload Travis in after_script phase (#10046) The deploy phase is skipped when script/tests fails. This prevent us from uploading failed result to S3. This PR change it to after_script phase and the secret is injected via Travis Env Var. https://docs.travis-ci.com/user/job-lifecycle/ --- .travis.yml | 23 +++-------------------- ci/travis/get_build_info.py | 2 +- ci/travis/upload_build_info.sh | 23 +++++++++++++++++++++++ 3 files changed, 27 insertions(+), 21 deletions(-) create mode 100755 ci/travis/upload_build_info.sh diff --git a/.travis.yml b/.travis.yml index be0b7664f..0e17dd5f8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -360,6 +360,9 @@ script: - if [ $RAY_CI_PYTHON_AFFECTED == "1" ]; then ./ci/keep_alive bazel test --config=ci $(./scripts/bazel_export_options) --test_tag_filters=-jenkins_only python/ray/tests/...; fi # NO MORE TESTS BELOW, keep them above. +after_script: + - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then ./ci/travis/upload_build_info.sh; fi + deploy: - provider: s3 edge: true # This supposedly opts in to deploy v2. @@ -426,26 +429,6 @@ deploy: branch: master condition: $MULTIPLATFORM_JARS = 1 || $MAC_JARS = 1 - - provider: script - edge: true # This supposedly opts in to deploy v2. - script: ./ci/travis/get_build_info.py > /tmp/bazel_event_logs/metadata.json - skip_cleanup: true - - # Upload bazel event logs to s3 - - provider: s3 - edge: true - access_key_id: AKIAQQPDA73RF7PSLH5N - secret_access_key: - secure: ai2YP/R3G86HuARvaMKG6tjzei5EqL/TR5pMDuT5JKjpWt4YFcvdAXcN4F2EEvKdJ+gwVEbACa37M5fJ3YMlforCrk/YiOQI15Ixjo9NhNonLp95NhCDKgKwQIgXXKBzk2ylXUm8FbLqnW6MRJyOb7ioufRLEtpy35XcYCyzqeDZgdhn9eIsP4O2W17ws3WqKvbbMFs2rTnDqlRYqDBO+dCGcaWdaKdX8VDjoCMkko7Yh8Mh1zne3KFHZvcknGTI3DggJMtaY77Fx3FfJSO2Gp7R8ARWGWTJqNkK/H0YGnlnJ84Za15qeozkvP5Ct9SvRQf0Pg96oj73IevVrs0lLjFfCkp+fC+gVYAXfMhDfXO7rVRUyXoXrsFcEBbGNGzu3awCsZIkECD0JVadsV4ypxUCmygd2+3aHgRY1+crwbnBvNmHk+qyoN82TH1FmtOP4FyvF3/OJaL0Cn9KVoeoRW3yH2SLbyE/yNDHwsADMJEFVXv4VuHctdRoAPujt+mxU8Jz0AzJd2CqUPXePriWTyRqPBDi3mOhAu0KyX+G/r7o7C+ZIUU1bTXRHtKQqFuWq9KF43H80G7EnN1Bwq1wXpGQjzGH6SdflLRC8uf2vCUeD9Xgd/E2b0wJM07PfQ0aPuKUoZfJZECuA7o+5adB7mSfVg+brF0xvl67DIp2lDE= - bucket: ray-travis-log - # acl: public_read # This data won't be used externally. We can always turn on public_read later. - region: us-west-2 - local_dir: /tmp/bazel_event_logs - upload-dir: "bazel_events/$TRAVIS_BRANCH/$TRAVIS_COMMIT/$TRAVIS_JOB_ID" - on: - repo: ray-project/ray - branch: master - - provider: script edge: true # This supposedly opts in to deploy v2. script: ./ci/keep_alive bash $TRAVIS_BUILD_DIR/ci/travis/build-docker-images.sh diff --git a/ci/travis/get_build_info.py b/ci/travis/get_build_info.py index 3fa20747b..9f82f94f8 100755 --- a/ci/travis/get_build_info.py +++ b/ci/travis/get_build_info.py @@ -21,7 +21,7 @@ def get_build_env(): "TRAVIS_BRANCH", "TRAVIS_BUILD_ID", "TRAVIS_BUILD_NUMBER", "TRAVIS_BUILD_WEB_URL", "TRAVIS_COMMIT", "TRAVIS_COMMIT_MESSAGE", "TRAVIS_DIST", "TRAVIS_JOB_ID", "TRAVIS_JOB_NUMBER", - "TRAVIS_JOB_WEB_URL", "TRAVIS_OS_NAME" + "TRAVIS_JOB_WEB_URL", "TRAVIS_OS_NAME", "TRAVIS_TEST_RESULT" ] return {key: os.environ.get(key) for key in keys} diff --git a/ci/travis/upload_build_info.sh b/ci/travis/upload_build_info.sh new file mode 100755 index 000000000..1e9a0b81b --- /dev/null +++ b/ci/travis/upload_build_info.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# Cause the script to exit if a single command fails. +set -e + +ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE:-$0}")"; pwd) +RAY_DIR=$(cd "${ROOT_DIR}/../../"; pwd) + +cd "${RAY_DIR}" + +mkdir -p /tmp/bazel_event_logs +./ci/travis/get_build_info.py > /tmp/bazel_event_logs/metadata.json + +pip install -q awscli + +export AWS_ACCESS_KEY_ID=AKIAQQPDA73RF7PSLH5N +export AWS_SECRET_ACCESS_KEY=${BAZEL_LOG_BUCKET_ACCESS_KEY} +export AWS_DEFAULT_REGION=us-west-2 + +DST="s3://ray-travis-log/bazel_events/$TRAVIS_BRANCH/$TRAVIS_COMMIT/$TRAVIS_JOB_ID" +echo "Uploading log to ${DST}" + +aws s3 cp --recursive /tmp/bazel_event_logs "${DST}" \ No newline at end of file