if: tag IS blank os: linux language: python dist: focal env: global: - BUILD_PYTHON_VERSION=3.9.0 - MIN_PYTHON_VERSION=3.9.0 - BUILD_OPENSSL_VERSION=1.1.1h - MIN_OPENSSL_VERSION=1.1.1h - PATCHELF_VERSION=0.11 - PYINSTALLER_COMMIT=5bc2c4620bfc5dde5a76a007c7ff50ee74223ca5 cache: directories: - $HOME/.cache/pip - $HOME/python - $HOME/ssl jobs: allow_failures: - python: nightly fast_finish: true include: - os: linux name: "Linux 64-bit Focal" dist: focal language: shell - os: linux name: "Linux 64-bit Bionic" dist: bionic language: shell - os: linux name: "Linux 64-bit Xenial" dist: xenial language: shell - os: linux name: "Linux ARM64 Focal" dist: focal language: shell arch: arm64 filter_secrets: false - os: linux dist: bionic arch: arm64 name: "Linux ARM64 Bionic" language: shell filter_secrets: false - os: linux dist: xenial arch: arm64 name: "Linux ARM64 Xenial" language: shell filter_secrets: false - os: linux name: "Python 3.6 Source Testing" language: python python: 3.6 - os: linux name: "Python 3.7 Source Testing" language: python python: 3.7 - os: linux name: "Python 3.8 Source Testing" language: python python: 3.8 - os: linux name: "Python 3.10 dev Source Testing" language: python python: 3.10-dev - os: osx name: "MacOS 10.13" language: generic osx_image: xcode10.1 - os: osx name: "MacOS 10.14" language: generic osx_image: xcode11.3 - os: osx name: "MacOS 10.15" language: generic osx_image: xcode12 - os: osx name: "MacOS 10.15 Universal Testing" language: generic osx_image: xcode12u - os: windows name: "Windows 64-bit" language: shell - os: windows name: "Windows 32-bit" language: shell before_install: - if [ "${TRAVIS_OS_NAME}" == "osx" ]; then export GAMOS="macos"; else export GAMOS="${TRAVIS_OS_NAME}"; fi - if [ "${TRAVIS_JOB_NAME}" == "Windows 32-bit" ]; then export PLATFORM="x86"; elif [ "${TRAVIS_CPU_ARCH}" == "amd64" ]; then export PLATFORM="x86_64"; else export PLATFORM="${TRAVIS_CPU_ARCH}"; fi - source src/travis/${TRAVIS_OS_NAME}-before-install.sh install: - source src/travis/${TRAVIS_OS_NAME}-install.sh script: # Discover and run all Python unit tests. Buffer output so that it's not sent to the build log. - $python -m unittest discover --start-directory ./ --pattern "*_test.py" --buffer - touch $gampath/nobrowser.txt - $gam version extended - $gam version | grep travis # travis should be part of the path (not /tmp or such) # determine which Python version GAM is built with and ensure it's at least build version from above. - if [[ "$TRAVIS_JOB_NAME" != *"Testing" ]]; then vline=$($gam version | grep "Python "); python_line=($vline); this_python=${python_line[1]}; $python tools/a_atleast_b.py $this_python $MIN_PYTHON_VERSION; fi # determine which OpenSSL version GAM is built with and ensure it's at least build version from above. - if [[ "$TRAVIS_JOB_NAME" != *"Testing" ]]; then vline=$($gam version extended | grep "OpenSSL "); openssl_line=($vline); this_openssl=${openssl_line[1]}; $python tools/a_atleast_b.py $this_openssl $MIN_OPENSSL_VERSION; fi - if [[ "$TRAVIS_JOB_NAME" != *"Testing" ]]; then $gam version extended | grep TLSv1\.[23]; fi # Builds should default TLS 1.2 or 1.3 to Google - if [[ "$TRAVIS_JOB_NAME" != *"Testing" ]]; then GAM_TLS_MIN_VERSION=TLSv1_2 $gam version extended location tls-v1-0.badssl.com:1010; [[ $? == 3 ]]; fi # expect fail since server doesn't support our TLS version - export jid="$(cut -d'.' -f2 <<<"$TRAVIS_JOB_NUMBER")" - if [ "$TRAVIS_EVENT_TYPE" != "pull_request" ]; then export e2e=true; fi - if [ "$e2e" = true ]; then export gam_user=gam-travis-$jid@pdl.jaylee.us; fi - if [ "$e2e" = true ]; then openssl aes-256-cbc -K $encrypted_6294a53f809d_key -iv $encrypted_6294a53f809d_iv -in travis/creds.tar.enc -out travis/creds.tar -d; fi - if [ "$e2e" = true ]; then tar xvf travis/creds.tar -C $gampath; fi - if [ "$e2e" = true ]; then export OAUTHFILE=oauth2.txt-gam-travis-$jid; fi - if [ "$e2e" = true ]; then $gam oauth info; fi - if [ "$e2e" = true ]; then $gam info domain; fi - if [ "$e2e" = true ]; then $gam oauth refresh; fi - if [ "$e2e" = true ]; then $gam info user; fi - if [ "$e2e" = true ]; then export tstamp=$(date +%s%3N); export newbase=travis-test-$jid-$tstamp; export newuser=$newbase@pdl.jaylee.us; export newgroup=$newbase-group@pdl.jaylee.us; export newalias=$newbase-alias@pdl.jaylee.us; export newbuilding=$newbase-building; export newresource=$newbase-resource; export GAM_THREADS=5; fi - if [ "$e2e" = true ]; then echo email > sample.csv; for i in {01..20}; do echo $newbase-bulkuser-$i >> sample.csv; done; fi - if [ "$e2e" = true ]; then $gam create user $newuser firstname Travis lastname $jid password random recoveryphone 12125121110 recoveryemail jay0lee@gmail.com travis.jid $jid; fi - if [ "$e2e" = true ]; then $gam user $gam_user sendemail recipient $newuser subject "test message $newbase" message "Travis test message"; fi - if [ "$e2e" = true ]; then $gam user $gam_user sendemail recipient exchange@pdl.jaylee.us subject "test ${tstamp}" message "test message"; fi - if [ "$e2e" = true ]; then $gam create group $newgroup name "Travis $jid group" description "This is a description" isarchived true; fi - if [ "$e2e" = true ]; then $gam user $newuser add license gsuitebusiness; fi - if [ "$e2e" = true ]; then $gam update group $newgroup add owner $gam_user; fi - if [ "$e2e" = true ]; then $gam update group $newgroup add member $newuser; fi - if [ "$e2e" = true ]; then $gam csv sample.csv gam create user ~~email~~ firstname "Travis Bulk" lastname ~~email~~ travis.jid $jid; fi - if [ "$e2e" = true ]; then $gam csv sample.csv gam update user ~~email~~ recoveryphone 12125121110 recoveryemail jay0lee@gmail.com password random; fi - if [ "$e2e" = true ]; then $gam csv sample.csv gam update user ~~email~~ recoveryphone "" recoveryemail ""; fi - if [ "$e2e" = true ]; then $gam csv sample.csv gam user ~email add license gsuitebusiness; fi - if [ "$e2e" = true ]; then $gam csv sample.csv gam user $gam_user sendemail recipient ~~email~~@pdl.jaylee.us subject "test message $newbase" message "Travis test message"; fi - if [ "$e2e" = true ]; then $gam csv sample.csv gam update group $newgroup add member ~email; fi - if [ "$e2e" = true ]; then $gam info group $newgroup; fi - if [ "$e2e" = true ]; then $gam user $gam_user check serviceaccount; fi - if [ "$e2e" = true ]; then $gam user $newuser imap on; fi - if [ "$e2e" = true ]; then $gam user $newuser show imap; fi - if [ "$e2e" = true ]; then $gam csv sample.csv gam user $newuser delegate to ~email; fi - if [ "$e2e" = true ]; then $gam user $newuser show delegates; fi - if [ "$e2d" = true ]; then export biohazard=$(echo -e '\xe2\x98\xa3'); fi - if [ "$e2e" = true ]; then $gam user $newuser label "$biohazard unicode biohazard $biohazard"; fi - if [ "$e2e" = true ]; then $gam user $newuser show labels; fi - if [ "$e2e" = true ]; then $gam user $newuser show labels > labels.txt; fi - if [ "$e2e" = true ]; then $gam user $gam_user importemail subject "Travis import $newbase" message "This is a test import" labels IMPORTANT,UNREAD,INBOX,STARRED; fi - if [ "$e2e" = true ]; then $gam user $gam_user insertemail subject "Travis insert $newbase" file gam.py labels INBOX,UNREAD; fi # yep body is gam code - if [ "$e2e" = true ]; then $gam user $gam_user sendemail subject "Travis send $gam_user $newbase" file gam.py recipient admin@pdl.jaylee.us; fi - if [ "$e2e" = true ]; then $gam user $gam_user draftemail subject "Travis draft $newbase" message "Draft message test"; fi - if [ "$e2e" = true ]; then $gam users "$gam_user $newbase-bulkuser-01 $newbase-bulkuser-02 $newbase-bulkuser-03" delete messages query in:anywhere maxtodelete 99999 doit; fi - if [ "$e2e" = true ]; then $gam users "$newbase-bulkuser-04 $newbase-bulkuser-05 $newbase-bulkuser-06" trash messages query in:anywhere maxtotrash 99999 doit; fi - if [ "$e2e" = true ]; then $gam users "$newbase-bulkuser-07 $newbase-bulkuser-08 $newbase-bulkuser-09" modify messages query in:anywhere maxtomodify 99999 addlabel IMPORTANT addlabel STARRED doit; fi - if [ "$e2e" = true ]; then $gam user $newuser delete label --ALL_LABELS--; fi - if [ "$e2e" = true ]; then $gam create feature name Whiteboard-$newbase; fi - if [ "$e2e" = true ]; then $gam create feature name VC-$newbase; fi - if [ "$e2e" = true ]; then $gam create building "My Building - $newbase" id $newbuilding floors 1,2,3,4,5,6,7,8,9,10,11,12,14,15 description "No 13th floor here..."; fi - if [ "$e2e" = true ]; then $gam create resource $newresource "Resource Calendar $tstamp" capacity 25 features Whiteboard-$newbase,VC-$newbase building $newbuilding floor 15 type Room; fi - if [ "$e2e" = true ]; then $gam info resource $newresource; fi - if [ "$e2e" = true ]; then $gam user $newuser show filelist; fi - if [ "$e2e" = true ]; then $gam calendar $gam_user printacl | $gam csv - gam calendar $gam_user delete id ~id; fi # clear ACLs - if [ "$e2e" = true ]; then $gam calendar $gam_user update read domain; fi - if [ "$e2e" = true ]; then $gam calendar $gam_user update freebusy default; fi - if [ "$e2e" = true ]; then $gam calendar $gam_user add editor $newuser; fi - if [ "$e2e" = true ]; then $gam calendar $gam_user showacl; fi - if [ "$e2e" = true ]; then $gam calendar $gam_user printacl | $gam csv - gam calendar $gam_user delete id ~id; fi - if [ "$e2e" = true ]; then $gam calendar $gam_user addevent summary "Travis test event" start $(date '+%FT%T.%N%:z' -d "now + 1 hour") end $(date '+%FT%T.%N%:z' -d "now + 2 hours") attendee $newgroup hangoutsmeet guestscanmodify true sendupdates all; fi - if [ "$e2e" = true ]; then $gam calendar $gam_user printevents after -0d; fi - if [ "$e2e" = true ]; then matterid=uid:$($gam create vaultmatter name "Travis matter $newbase" description "test matter" collaborators $newuser | head -1 | cut -d ' ' -f 3); fi - if [ "$e2e" = true ]; then $gam create vaulthold matter $matterid name "Travis hold $newbase" corpus mail accounts $newuser; fi - if [ "$e2e" = true ]; then $gam print vaultmatters matterstate open; fi - if [ "$e2e" = true ]; then $gam print vaultholds matter $matterid; fi - if [ "$e2e" = true ]; then $gam create vaultexport matter $matterid name "Travis export $newbase" corpus mail accounts $newuser; fi - if [ "$e2e" = true ]; then $gam print exports matter $matterid | $gam csv - gam info export $matterid id:~~id~~; fi - if [ "$e2e" = true ]; then $gam csv sample.csv gam user ~email add calendar id:$newresource; fi - if [ "$e2e" = true ]; then $gam delete resource $newresource; fi - if [ "$e2e" = true ]; then $gam delete feature Whiteboard-$newbase; fi - if [ "$e2e" = true ]; then $gam delete feature VC-$newbase; fi - if [ "$e2e" = true ]; then $gam delete building $newbuilding; fi - if [ "$e2e" = true ]; then $gam delete group $newgroup; fi - if [ "$e2e" = true ]; then $gam create alias $newalias user $newuser; fi - if [ "$e2e" = true ]; then $gam whatis $newuser; fi - if [ "$e2e" = true ]; then $gam user $gam_user show tokens; fi - if [ "$e2e" = true ]; then $gam print exports matter $matterid | $gam csv - gam download export $matterid id:~~id~~; fi - if [ "$e2e" = true ]; then $gam delete hold "Travis hold $newbase" matter $matterid; fi - if [ "$e2e" = true ]; then $gam update matter $matterid action close; fi - if [ "$e2e" = true ]; then $gam update matter $matterid action delete; fi - if [ "$e2e" = true ]; then $gam delete user $newuser; fi - if [ "$e2e" = true ]; then $gam print users query "travis.jid=$jid" | $gam csv - gam delete user ~primaryEmail; fi - if [ "$e2e" = true ]; then $gam print mobile; fi - if [ "$e2e" = true ]; then $gam print devices; fi - if [ "$e2e" = true ]; then export sn="$jid$jid$jid$jid$jid-$(openssl rand -base64 32 | sed 's/[^a-zA-Z0-9]//g')"; fi - if [ "$e2e" = true ]; then $gam create device serialnumber $sn devicetype android; fi - if [ "$e2e" = true ]; then $gam print cros allfields nolists; fi - if [ "$e2e" = true ]; then $gam report usageparameters customer; fi - if [ "$e2e" = true ]; then $gam report usage customer parameters gmail:num_emails_sent,accounts:num_1day_logins; fi - if [ "$e2e" = true ]; then $gam report customer todrive; fi - if [ "$e2e" = true ]; then $gam report users fields accounts:is_less_secure_apps_access_allowed,gmail:last_imap_time,gmail:last_pop_time filters "accounts:last_login_time>2019-01-01T00:00:00.000Z" todrive; fi - if [ "$e2e" = true ]; then $gam report admin start -3d todrive; fi - if [ "$e2e" = true ]; then $gam print devices nopersonaldevices nodeviceusers filter "serial:$jid$jid$jid$jid$jid-" | $gam csv - gam delete device id ~name; fi - if ([ "$e2e" = true ] && [[ "$TRAVIS_JOB_NAME" != *"Testing" ]]); then for gamfile in gam-$GAMVERSION-*; do fileid=$($gam user $gam_user add drivefile localfile $gamfile drivefilename $GAMVERSION-${TRAVIS_COMMIT:0:7}-$gamfile parentid 1N2zbO33qzUQFsGM49-m9AQC1ijzd_ru1 returnidonly); $gam user $gam_user add drivefileacl $fileid anyone role reader withlink; done; fi before_deploy: - export TRAVIS_TAG="preview" - unset LD_LIBRARY_PATH deploy: provider: releases token: secure: bzambMcQwyv/o5c5GrKGCsZHgE5R85tg8sNFvPfpISz3+uosCjnBXas7wvCKzT75XUFi2ztfbYak6HdKf4sGnNHk0saEicB3slH+ghPyZbYzp76yvvduhFO2nWW3/F01tL+Yfqqt4/q8wFaWGjrC5km+6GLVyB4lWA/Uyu49qKnz02uSwyhBD/VFbO7DOQ65a1iWk9HngyMsu0Oi7HIbSjSLtxTHedNfOf3waW0NivTTxYXiYGX/MCu3GWhgIGj47a+H3A6FcQ/9QWvnKgnoixdgPBUz7kDb7ktsWwQsILPGStgH7iMuG49ZlXdEFmqwifBri2wvzmFEevBGZjHcupy1IGrNFRG+IUGKMotio+OkLHlLjuv7ZJtqCz/Vf5SNFgNyMSanx6jKEUJuYvndVg99IRXmYVwHFwPu5BAcJACpU6C0AfyGmmSqqwxCd46uXL62ynxNFpHuRfOqlDnmCTfZgjOciJSlDDpf+Xz9fF7+oCoeCi3mrcZVFjhd3tT6Oxw5HrsDtm0ZNld1cdLidaq8H6vOFgHMd0A9yNYZzTzXTvpmxzkXT4Zc7s+PYKN6z5fRZ+pJeckUjRXblvVEfs5HFSymavcOc5AkRwxpvOsTQMNmlnaJCBo5UNs0K/rVmRi5cFmaiwTcBCY0kTllOBJ4zWsfq8seiokWwNUNK2g= file_glob: true overwrite: true file: gam-$GAMVERSION-* skip_cleanup: true draft: true on: repo: jay0lee/GAM condition: $TRAVIS_JOB_NAME != *"Testing"