mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-28 18:01:36 +00:00
246 lines
14 KiB
YAML
246 lines
14 KiB
YAML
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"
|