diff --git a/.shippable.yml b/.shippable.yml
index ec97e37..dde9bc0 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -35,18 +35,6 @@
       - make host-tools
       - export PREBUILT_HOST_TOOLS=${ZEPHYR_BASE}/bin
       - >
-          if [ "$IS_PULL_REQUEST" = "true" ]; then
-            S3_PATH="s3://zephyr-logs/pull-requests/${REPO_FULL_NAME}/${PULL_REQUEST}"
-          else
-            if [ "$JOB_TRIGGERED_BY_NAME" = "undefined" ]; then
-              LOG_TYPE="manual";
-            else
-              LOG_TYPE=${JOB_TRIGGERED_BY_NAME};
-            fi;
-
-            S3_PATH="s3://zephyr-logs/${LOG_TYPE}/${REPO_FULL_NAME}/${BUILD_NUMBER}";
-          fi;
-      - >
           if [ "$MATRIX_BUILD" = "3" -a "$IS_PULL_REQUEST" = "true" ]; then
             export COMMIT_RANGE=origin/${PULL_REQUEST_BASE_BRANCH}..HEAD
             echo "Building a Pull Request";
@@ -90,40 +78,29 @@
       - >
           if [ -e compliance.xml ]; then
             cp compliance.xml shippable/testresults/;
-            aws s3 cp compliance.xml ${S3_PATH}/;
           fi;
       - >
           if [ -e ./scripts/sanity_chk/last_sanity.xml ]; then
             cp ./scripts/sanity_chk/last_sanity.xml shippable/testresults/;
-            aws s3 cp ./scripts/sanity_chk/last_sanity.xml ${S3_PATH}/sanitycheck.${MATRIX_BUILD}.xml;
           fi;
       - >
           if [ -e ./modified_tests.xml ]; then
             cp ./modified_tests.xml shippable/testresults/;
-            aws s3 cp ./modified_tests.xml ${S3_PATH}/modified_tests.xml;
           fi;
     on_success:
       - rm -rf sanity-out out-2nd-pass
       - mkdir -p shippable/testresults
       - >
-          if [ "$MATRIX_BUILD" = "3" -a "$IS_PULL_REQUEST" = "true" ]; then
-            aws s3 sync --quiet  doc/_build/html ${S3_PATH}/doc;
-            aws s3 sync --quiet  doc/doxygen/html ${S3_PATH}/api;
-          fi
-      - >
           if [ -e compliance.xml ]; then
             cp compliance.xml shippable/testresults/;
-            aws s3 cp compliance.xml ${S3_PATH}/;
           fi;
       - >
           if [ -e ./scripts/sanity_chk/last_sanity.xml ]; then
             cp ./scripts/sanity_chk/last_sanity.xml shippable/testresults/;
-            aws s3 cp ./scripts/sanity_chk/last_sanity.xml ${S3_PATH}/sanitycheck.${MATRIX_BUILD}..xml;
           fi;
       - >
           if [ -e ./modified_tests.xml ]; then
             cp ./modified_tests.xml shippable/testresults/;
-            aws s3 cp ./modified_tests.xml ${S3_PATH}/modified_tests.xml;
           fi;
 
 integrations:
