+ |
- fast_build() (in module api)
diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv
index 3671bea205..e097b1bb32 100644
Binary files a/docs/_build/html/objects.inv and b/docs/_build/html/objects.inv differ
diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js
index 8ed7a80f78..b8473849ea 100644
--- a/docs/_build/html/searchindex.js
+++ b/docs/_build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["api","code_of_conduct","docker_compose","example_projects","faq","fast_build","first_example","helm","index","install","skaffold","tiltfile_concepts","tutorial"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["api.rst","code_of_conduct.md","docker_compose.md","example_projects.md","faq.md","fast_build.md","first_example.md","helm.md","index.md","install.md","skaffold.md","tiltfile_concepts.md","tutorial.md"],objects:{"":{api:[0,0,0,"-"]},api:{Blob:[0,1,1,""],LocalPath:[0,1,1,""],docker_build:[0,2,1,""],fast_build:[0,2,1,""],helm:[0,2,1,""],k8s_resource:[0,2,1,""],k8s_yaml:[0,2,1,""],kustomize:[0,2,1,""],local:[0,2,1,""],local_git_repo:[0,2,1,""],read_file:[0,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:function"},terms:{"case":[4,5,7,11,12],"class":0,"default":[0,4,11],"final":11,"function":[5,7,11,12],"int":0,"new":[4,5,8],"public":[1,10],"return":[0,7,11],"static":[4,11],"switch":2,"throw":0,"try":[3,4,9,12],"while":[2,5,6],Being:1,But:4,For:[2,4,5,6,9,11],NOT:6,One:[3,5],TLS:4,That:5,The:[0,1,3,4,5,6,7,8,10,11,12],There:4,These:[3,5],Use:[7,12],Using:[1,8,11],abandon:11,abid:8,abl:0,about:[6,8,12],absolut:[0,4],accept:1,access:[0,11,12],accident:4,accomplish:11,account:1,accus:1,act:1,action:[1,2],activ:[1,11],adapt:1,add:[0,5,11,12],adding:5,addit:[1,11,12],address:1,advanc:1,advantag:5,after:[1,9,11],again:[4,5],age:1,aim:11,algorithm:11,align:1,alik:8,all:[1,5,11,12],allow:[2,4,10],almost:10,alon:1,alreadi:12,also:[1,2,3,7,9,10,11,12],altern:11,alwai:4,ani:[0,1,5,6,8,9],anoth:4,answer:6,anyon:1,api:[4,5,8,11],apivers:10,app:[3,8,11,12],appear:1,appli:[0,1,8],appoint:1,approach:5,appropri:1,arg:[0,11],argument:[0,11,12],aris:1,around:4,arrai:11,artifact:10,ask:[8,12],assum:12,assumpt:1,attack:1,attent:1,automat:[4,8,12],avail:[4,9],avoid:4,awai:1,back:4,backend:[0,2,3,8,11,12],background:1,backrub:1,bad:1,ban:1,bar:[11,12],base:[0,11],baselin:1,baz:11,becaus:[4,11,12],befor:[1,5,12],begin:[5,12],behavior:1,belief:1,believ:1,below:[4,8],best:1,better:2,bin:[5,9],binari:4,blob:[0,11],blog:8,bodi:1,both:[0,1],bottom:12,botton:[3,6],boundari:1,box:[3,6,7],brew:9,bring:8,broken:8,browser:[3,6],bug:[2,12],build:[0,5,6,8,9,10],build_arg:[0,11],built:[3,6,7,9,11,12],button:4,cach:[0,5],call:[0,4,7,11,12],can:[0,1,2,3,5,10,11,12],cannot:5,caus:11,ceas:1,certif:4,chang:[5,6,8,11,12],channel:[8,12],characterist:1,chart:[0,7],chart_dir:[11,12],chat:12,cheat:11,check:[3,6,12],choic:1,choos:[4,11],cisphobia:1,cissexist:1,clarifi:1,click:[4,9],clone:[3,5,6],closer:5,cloud:[4,12],cluster:[0,6,9],cmd:[0,5,9],code:[0,5,8,11],com:[3,5,6,8,9],combin:11,come:[3,6],comfort:1,command:[0,3,4,5,12],comment:[1,8],commit:1,common:4,commun:1,companynam:[8,11,12],compar:10,compil:5,complain:12,complaint:1,complet:[5,8],complex:10,compos:8,comprehens:11,concept:[1,8,10,12],conduct:8,config:[2,4,6,9,10,11],config_dir:[11,12],configur:[2,4,5,6,8,11,12],confirm:3,conflict:4,congeni:1,congratul:[3,6],connect:[0,8,11,12],consent:1,consid:1,consist:12,construct:[1,11],contact:1,contain:[0,3,5,6,8,9,10,11,12],content:[0,1],context:[0,4,6,9,10,12],continu:1,contribut:1,contributor:[1,8],control:[1,11],copi:[4,5],corner:4,correct:1,correctli:[1,9],correspond:[0,10],could:[1,7,11],coven:1,cover:7,crash:12,creat:[0,1],critic:1,cuddl:9,curl:9,current:[4,6,9],custom:12,cwd:0,data:[8,11],date:8,deadnam:1,debat:1,debug:2,declar:12,dedic:1,deem:1,def:11,defin:[0,1,11],delet:[4,5],deliber:1,demonstr:8,demoserv:5,demoserver1:5,depend:[4,11],deploi:[0,2,7,8,10],deploy:[5,10,12],derogatori:1,describ:[2,3,10,11,12],descript:1,desktop:[4,6,9],destruct:1,detail:[1,8,12],detect:4,determin:1,dev:[6,8,10,11],develop:[5,8,12],dialect:[11,12],dialog:4,dict:0,did:6,didn:6,differ:[1,2,3,5],dig:[2,10],direct:1,directli:[1,4,10],directori:[0,3,5,6,7,8,9,12],disabl:[1,4],disagr:1,discret:1,discuss:1,disk:0,displai:[3,6,12],disput:1,disrespect:1,divers:1,dm1_img_nam:5,doc:[2,3,10,11],docker:[0,5,6,8,9,11,12],docker_api_vers:4,docker_build:[0,5,8,10,11,12],docker_cert_path:4,docker_compos:2,docker_host:4,docker_tls_verifi:4,dockerfil:[0,5,11],dockerfile_cont:0,dockerfile_path:0,dockerimag:0,document:[0,2],doe:[1,4,5],doesn:[4,11],don:[1,3,5,11],doubl:6,down:[3,6],download:[8,9],dox:1,drug:1,each:[3,11,12],easi:6,easier:[10,11],easili:1,econom:1,edg:4,edit:[1,8,11,12],editor:12,educ:1,effect:1,either:[11,12],electron:1,elsewher:0,email:1,emit:4,empathi:1,employ:1,employe:8,enabl:[4,9],encount:1,encourag:1,end:[11,12],eng:8,engag:1,engin:[1,8],enough:11,enter:12,entrypoint:[0,5],environ:[0,1,3,4,5,8],equival:0,ergonom:11,error:[0,2,8,9,10,11,12],essenti:1,etc:11,ethnic:1,even:[4,5,10],event:1,everi:[1,5,11],everyon:[1,8],examin:2,exampl:[0,1,5,6,8,10,11],except:4,execut:0,exist:[0,2,6,8,11],expand:11,expect:[0,1,3,8],experi:[1,2],experiment:4,explain:[1,5,11],explicit:1,explor:[5,12],express:1,expuls:1,extend:7,extens:11,extract:0,extrem:11,fair:1,familiar:11,fan:1,faq:[6,9],fast:[0,5],fast_build:[0,5],fastbuild:0,faster:8,featur:[3,11,12],feel:[1,12],few:[5,11],file:[0,2,5,8,11,12],file_path:0,filenam:11,filesystem:[2,5],find:[1,8,11,12],finish:[0,3,6],firehos:[2,10],first:[0,1,3,8,11],fix:[2,4,8],flux:11,focus:1,follow:1,foo:[11,12],food:1,fork:11,forward:12,foster:1,free:[1,12],frequent:8,friendli:1,from:[0,1,2,4,5,8,12],front:11,frontend:[8,11,12],full:[2,10],fulli:0,further:1,gcr:[5,10],gen_k8s_yaml:12,gender:1,gener:[7,11,12],get:[2,6,8,9],git:[0,3,5,6],github:[3,5,6,8,9],give:[1,12],given:0,glanc:[2,10],global:[2,10],golang:5,gracefulli:1,graphql:11,great:[10,12],green:[3,6],group:[1,11,12],guid:[5,6,12],hand:[2,3,4],handl:[1,2],harass:1,hard:11,harm:1,has:[2,4,5,6,10,11],have:[1,3,6,9,11,12],head:12,health:1,healthi:1,helm:[0,8,11,12],help:[4,8,11],here:[5,11],hit:2,home:9,homepag:3,how:[1,2,5,6,10,11,12],howev:1,http:[3,5,6,9],hug:1,human:5,icon:[3,4,6],ident:1,imag:[0,5,8,10,12],imageneverpul:4,imageri:1,img_nam:0,immedi:11,impact:1,implement:[3,11],inappropri:1,incid:1,incit:1,includ:[1,4],inclus:1,increment:5,independ:0,individu:[1,11],infer:0,inflammatori:1,info:9,inform:[1,11],ing:12,initi:0,inject:12,input:5,insid:[4,5],instal:[4,5,6,12],instanc:1,instead:[2,4,5,11,12],instruct:0,insult:1,integr:[3,6],interact:12,interest:1,interpret:[5,11],introduc:[5,12],intuit:11,investig:[1,11],invit:8,involv:1,ism:1,issu:[1,2],its:[0,1,11],javascript:5,join:12,judici:11,just:[2,5,6,8,10,12],justic:1,k8s:[0,8],k8s_resourc:[0,11,12],k8s_yaml:[0,5,7,8,10,11,12],keep:5,kind:[1,4,10],know:[6,7,8,11],known:1,kubeconfig:4,kubectl:[4,6,8,9,10],kubernet:[0,2,5,6,8,9,11,12],kustom:[0,11,12],languag:[1,3,5],larg:2,latest:8,learn:6,leav:1,legend:12,let:[3,4,5,6,7,10,11,12],level:1,lifestyl:1,lightn:5,like:[0,1,5,8,11,12],line:[2,5,11],list:[0,11,12],listen:6,load:4,local:[0,5,6,7,8,9,10,11,12],local_git_repo:[0,5],localhost:[0,3,6,11],localpath:0,log:[1,2,3,6,8,10],longer:1,look:[3,5,6,8,9,11,12],loop:11,love:[7,11],mac:[4,9],machin:4,made:11,mai:[0,1,2,12],mail:1,maintain:1,major:5,make:[1,8,9,10,11],mani:[1,3,12],manifest:10,manual:2,map:[10,11],margin:1,match:[0,12],matter:1,mean:4,mechan:1,media:1,medium:8,member:1,memori:2,messag:9,method:5,microservic:[3,8,11],microservice_config:11,might:5,minikub:[4,6,9],minut:[2,8,9,10],misbehav:4,misgend:1,mode:4,modern:5,modifi:4,moral:12,more:[1,2,4,5,11,12],most:[2,4,5,11],much:5,multipl:[3,8,11,12],muscl:2,must:[0,1],myproj:0,myregistri:0,name:[0,1,5,11,12],nation:1,navig:[2,10],necessari:11,need:[1,5,7,9,11],neg:1,neurodiverg:1,never:1,newer:2,non:9,none:0,normal:5,note:[0,11],notic:1,notifi:1,now:[2,12],object:12,off:[2,3,4,6,10],offens:1,offici:1,offlin:1,often:1,okai:1,omit:1,onc:12,one:[1,2,3,4,5,10,11,12],oneup:6,ongo:1,onli:[5,6,11],onlin:1,open:[1,3,4,6,8,9,12],opinion:1,opportun:1,oppress:1,optim:[8,12],option:[0,4,11],orchestr:2,organ:11,orient:1,other:[1,4],otherwis:1,our:[2,3,5,6,7,8,9,10,11],out:[3,6,7,11,12],outcom:1,output:11,outsid:[1,2,5],over:[1,11],overlook:11,own:6,pane:[3,6],paragraph:11,param:0,paramet:0,parent:1,part:5,particip:1,pass:0,path:[0,4,5,7,9],pathtochartdir:0,pathtodir:0,pattern:12,peopl:[1,3],perform:4,perman:1,permiss:1,persist:1,person:[1,3],photographi:1,physic:1,plai:8,pleas:[1,2,11],plu:2,pod:[0,12],point:2,polit:1,popular:[11,12],port:[0,3,6,11,12],port_forward:[0,11,12],posit:1,possibl:[10,11],post:1,potenti:1,power:4,practic:[1,12],prefer:[4,9],prerequist:8,previou:5,print:12,priorit:1,privat:1,privileg:1,problem:12,product:1,profession:1,program:[8,11,12],project:[1,2,4,8,9,11,12],pronoun:1,provid:[1,2],psycholog:1,publish:1,pull:[4,8],purpos:1,python:[5,10,11,12],question:[6,8],quickli:1,quit:[3,6],quux:11,race:1,racism:1,racist:1,ran:12,rang:[1,11],raw:0,reach:11,read:[0,4,5,8,12],read_fil:[0,11],readi:[3,6,9],real:[5,8],reason:1,rebuild:5,receiv:1,recompil:5,record:[1,11],reexecut:[11,12],ref:0,refer:[3,5,8,11],reflect:1,refus:1,regard:1,regardless:1,regist:[11,12],regular:0,reject:1,rel:0,relat:[1,11],releas:8,relev:[8,11,12],religion:1,remain:0,remov:1,renam:4,render:0,repo:[0,3,5,6],report:1,repres:1,represent:1,request:[1,12],requir:[2,7,11],reset:4,resolv:1,resourc:[0,12],respect:[0,1],respectfulli:1,respond:12,restart:4,result:[0,1,11],revers:1,rewrit:11,right:[1,4,8,11,12],roll:2,root:[5,9],roughli:0,rubi:4,rule:4,run:[0,2,3,5,7,8,9,11,12],runtim:12,safe:1,safeti:1,sai:[5,8,12],same:[2,4,5],save:12,scratch:5,screen:[2,4,10],screencast:8,script:[2,11,12],scroll:[2,10],second:1,section:12,see:[0,1,2,3,6,12],selector:0,self:1,sens:11,sensit:12,separ:2,serv:[3,6],servant:10,server:[3,5],servic:[2,3,8,10,11],session:8,set:[0,1,4,5,8,12],settl:11,setup:[9,12],sexism:1,sexist:1,sexual:1,sheet:11,shell:5,shorter:10,should:[1,2,3,6,11,12],show:[1,2,10],similar:[1,5],simpl:[3,6,10,11],simpler:2,simul:1,situat:1,size:1,skaffold:8,slack:[2,8,12],slow:5,snack:10,social:1,socio:1,solut:4,some:[11,12],someon:1,someth:[11,12],soon:12,sourc:[1,8,11,12],space:1,spec:0,specif:[4,11],specifi:[0,1],sponsor:1,spooner:10,src:5,stabl:4,starlark:[10,11,12],start:[3,4,5,8,9,12],startup:11,state:[2,4],statu:[1,2,3,6,10,11],stdout:[0,11],step:[5,7],still:11,stop:[1,4,8],str:0,stress:8,string:[0,11],style:1,subsequ:0,subset:10,substitut:11,success:1,sudo:9,suicid:1,suitabl:3,supplement:3,suppli:1,support:[0,2,4,7,11,12],sure:[9,11,12],surfac:[8,12],system:0,tab:4,take:[1,2,5,12],taken:[1,12],talk:[1,12],tap:9,tar:9,target:[0,11],team:8,technic:[1,12],tell:[2,8,12],templat:[0,7],temporarili:1,termin:[2,3,6,8,9,10],test:[5,6],text:[3,6,11],textual:1,than:[2,5,11],thei:[1,5,12],them:[1,5,8,11],theme:11,thi:[0,2,3,4,5,6,7,9,10,11,12],thing:4,think:[4,8,11],third:1,those:[1,11],thought:1,threat:1,threaten:1,through:[5,12],tilt:[0,2,3,5,7,10,11,12],tiltdemo1:5,tiltdemo:5,tiltfil:[8,10],time:[0,4,5,8,11,12],todai:11,todo:1,tone:1,too:5,tool:[2,5,11,12],top:5,toward:1,treat:1,tri:4,trick:[2,5],troll:1,troubl:9,turn:[3,4,6],tutori:[3,5,6,7,8,9,10,11],tweet:8,two:[2,3,4,8,10],txt:11,type:[0,3,6],typic:8,unabl:1,unaccept:1,under:6,union:0,unlik:11,unwelcom:1,updat:2,upgrad:10,upper:4,url:4,usag:11,use:[0,1,2,3,5,6,7,9,11,12],used:0,useful:3,user:[1,2,9,11],usernam:1,uses:[0,2,3,11],using:[0,1,2,4,9,11],usr:9,usual:9,v18:4,v1alpha5:10,valu:[0,1],variabl:[0,4],varieti:11,verif:4,version:[6,9,11],via:1,viewpoint:1,violat:1,violenc:1,wai:[2,4,11],wait:[0,11],walk:12,want:[2,3,4,5,8,10,11,12],warn:12,wast:4,watch:[2,3,5,6,8,11],welcom:1,well:5,what:[0,1,5,8,11,12],when:[1,3,6,8,11,12],where:[1,5],whether:[11,12],which:[1,2,8,10,12],who:3,why:[5,11],wide:11,widget:3,wiki:1,windmil:[1,5,8,10],windmilleng:[3,5,6,9],window:[3,6],within:1,without:[1,2,11],won:11,work:[3,5,6,8,9,11,12],worri:6,worth:2,would:[4,5],write:12,written:11,x86_64:9,xzv:9,yaml:[0,5,7,8,10,11,12],yet:6,yield:1,yml:2,you:[0,1,2,3,5,6,7,8,9,10,11,12],your:[0,2,3,4,5,7,9,10,11,12],yourself:11,zoom:5},titles:["Tiltfile API Reference","Code of Conduct","Docker Compose","Example Projects","Frequently Asked Questions","Optimizing a Tiltfile","Running your First Tilt Project","Helm","Tilt User Guide","Install","Skaffold","Tiltfile Concepts","Tutorial: First 15 Minutes"],titleterms:{One:6,The:2,Use:2,all:4,api:0,ask:4,attribut:1,binari:9,build:[4,11,12],buildkit:4,caveat:2,chang:4,cluster:4,code:1,command:11,commun:8,comparison:[2,10],compos:2,concept:11,conduct:1,configur:10,conflict:1,congrat:12,connect:4,contain:4,cool:4,custom:[7,11],deploi:[4,11,12],describ:8,develop:4,docker:[2,4],document:1,don:4,engin:4,error:4,exampl:[3,4,12],execut:11,fail:4,first:[6,12],found:4,frequent:4,from:9,further:7,gcr:4,get:4,goal:1,googl:4,guid:8,have:4,hello:12,helm:7,homebrew:9,hood:2,how:4,imag:4,instal:[8,9],isn:4,kubernet:4,like:4,linux:9,local:4,maco:9,minut:12,model:11,more:8,need:4,next:[6,9],oneup:3,optim:5,option:[9,12],our:1,permiss:4,pledg:1,prerequisit:6,project:[3,6],push:4,question:4,realli:4,recommend:9,refer:0,releas:9,remot:4,repositori:4,resolut:1,resourc:11,respons:1,run:[4,6],scope:1,see:[4,8],servant:3,server:[4,6],skaffold:10,slow:4,sourc:9,standard:1,start:6,step:[6,9,12],store:4,summari:[1,11],tell:4,templat:4,thi:1,tilt:[4,6,8,9],tiltfil:[0,2,5,11,12],translat:10,troubleshoot:[4,6,9],tutori:[2,12],unabl:4,unauthor:4,under:2,use:4,user:8,uses:4,verifi:9,version:4,watch:12,what:4,when:4,workflow:8,world:12,you:4,your:[6,8]}})
\ No newline at end of file
+Search.setIndex({docnames:["api","code_of_conduct","docker_compose","example_projects","faq","fast_build","first_example","helm","index","install","skaffold","tiltfile_concepts","tutorial"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["api.rst","code_of_conduct.md","docker_compose.md","example_projects.md","faq.md","fast_build.md","first_example.md","helm.md","index.md","install.md","skaffold.md","tiltfile_concepts.md","tutorial.md"],objects:{"":{api:[0,0,0,"-"]},api:{Blob:[0,1,1,""],LocalPath:[0,1,1,""],docker_build:[0,2,1,""],fail:[0,2,1,""],fast_build:[0,2,1,""],helm:[0,2,1,""],k8s_resource:[0,2,1,""],k8s_yaml:[0,2,1,""],kustomize:[0,2,1,""],local:[0,2,1,""],local_git_repo:[0,2,1,""],read_file:[0,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:function"},terms:{"case":[4,5,7,11,12],"class":0,"default":[0,4,11],"final":11,"function":[5,7,11,12],"int":0,"new":[4,5,8],"public":[1,10],"return":[0,7,11],"static":[4,11],"switch":2,"throw":0,"try":[3,4,9,12],"while":[2,5,6],Being:1,But:4,For:[2,4,5,6,9,11],NOT:6,One:[3,5],TLS:4,That:5,The:[0,1,3,4,5,6,7,8,10,11,12],There:4,These:[3,5],Use:[7,12],Using:[1,8,11],abandon:11,abid:8,abl:0,about:[6,8,12],absolut:[0,4],accept:1,access:[0,11,12],accident:4,accomplish:11,account:1,accus:1,act:1,action:[1,2],activ:[1,11],adapt:1,add:[0,5,11,12],adding:5,addit:[1,11,12],address:1,advanc:1,advantag:5,after:[1,9,11],again:[4,5],age:1,aim:11,algorithm:11,align:1,alik:8,all:[1,5,11,12],allow:[2,4,10],almost:10,alon:1,alreadi:12,also:[1,2,3,7,9,10,11,12],altern:11,alwai:4,ani:[0,1,5,6,8,9],anoth:4,answer:6,anyon:1,anywher:0,api:[4,5,8,11],apivers:10,app:[3,8,11,12],appear:1,appli:[0,1,8],appoint:1,approach:5,appropri:1,arg:[0,11],argument:[0,11,12],aris:1,around:4,arrai:11,artifact:10,ask:[8,12],assum:12,assumpt:1,attack:1,attent:1,automat:[4,8,12],avail:[4,9],avoid:4,awai:1,back:4,backend:[0,2,3,8,11,12],background:1,backrub:1,bad:1,ban:1,bar:[11,12],base:[0,11],baselin:1,baz:11,becaus:[4,11,12],befor:[1,5,12],begin:[5,12],behavior:1,belief:1,believ:1,below:[4,8],best:1,better:2,bin:[5,9],binari:4,blob:[0,11],blog:8,bodi:1,both:[0,1],bottom:12,botton:[3,6],boundari:1,box:[3,6,7],brew:9,bring:8,broken:8,browser:[3,6],bug:[2,12],build:[0,5,6,8,9,10],build_arg:[0,11],built:[3,6,7,9,11,12],button:4,cach:[0,5],call:[0,4,7,11,12],can:[0,1,2,3,5,10,11,12],cannot:[0,5],caus:11,ceas:1,certif:4,chang:[5,6,8,11,12],channel:[8,12],characterist:1,chart:[0,7],chart_dir:[11,12],chat:12,cheat:11,check:[3,6,12],choic:1,choos:[4,11],cisphobia:1,cissexist:1,clarifi:1,click:[4,9],clone:[3,5,6],closer:5,cloud:[4,12],cluster:[0,6,9],cmd:[0,5,9],code:[0,5,8,11],com:[3,5,6,8,9],combin:11,come:[3,6],comfort:1,command:[0,3,4,5,12],comment:[1,8],commit:1,common:4,commun:1,companynam:[8,11,12],compar:10,compil:5,complain:12,complaint:1,complet:[5,8],complex:10,compos:8,comprehens:11,concept:[1,8,10,12],conduct:8,config:[2,4,6,9,10,11],config_dir:[11,12],configur:[2,4,5,6,8,11,12],confirm:3,conflict:4,congeni:1,congratul:[3,6],connect:[0,8,11,12],consent:1,consid:1,consist:12,construct:[1,11],contact:1,contain:[0,3,5,6,8,9,10,11,12],content:[0,1],context:[0,4,6,9,10,12],continu:1,contribut:1,contributor:[1,8],control:[1,11],copi:[4,5],corner:4,correct:1,correctli:[1,9],correspond:[0,10],could:[1,7,11],coven:1,cover:7,crash:12,creat:[0,1],critic:1,cuddl:9,curl:9,current:[4,6,9],custom:12,cwd:0,data:[8,11],date:8,deadnam:1,debat:1,debug:2,declar:12,dedic:1,deem:1,def:11,defin:[0,1,11],delet:[4,5],deliber:1,demonstr:8,demoserv:5,demoserver1:5,depend:[4,11],deploi:[0,2,7,8,10],deploy:[5,10,12],derogatori:1,describ:[2,3,10,11,12],descript:1,desktop:[4,6,9],destruct:1,detail:[1,8,12],detect:4,determin:1,dev:[6,8,10,11],develop:[5,8,12],dialect:[11,12],dialog:4,dict:0,did:6,didn:6,differ:[1,2,3,5],dig:[2,10],direct:1,directli:[1,4,10],directori:[0,3,5,6,7,8,9,12],disabl:[1,4],disagr:1,discret:1,discuss:1,disk:0,displai:[3,6,12],disput:1,disrespect:1,divers:1,dm1_img_nam:5,doc:[2,3,10,11],docker:[0,5,6,8,9,11,12],docker_api_vers:4,docker_build:[0,5,8,10,11,12],docker_cert_path:4,docker_compos:2,docker_host:4,docker_tls_verifi:4,dockerfil:[0,5,11],dockerfile_cont:0,dockerfile_path:0,dockerimag:0,document:[0,2],doe:[1,4,5],doesn:[4,11],don:[1,3,5,11],doubl:6,down:[3,6],download:[8,9],dox:1,drug:1,each:[3,11,12],easi:6,easier:[10,11],easili:1,econom:1,edg:4,edit:[1,8,11,12],editor:12,educ:1,effect:1,either:[11,12],electron:1,elsewher:0,email:1,emit:4,empathi:1,employ:1,employe:8,enabl:[4,9],encount:1,encourag:1,end:[11,12],eng:8,engag:1,engin:[1,8],enough:11,enter:12,entrypoint:[0,5],environ:[0,1,3,4,5,8],equival:0,ergonom:11,error:[0,2,8,9,10,11,12],essenti:1,etc:11,ethnic:1,even:[4,5,10],event:1,everi:[1,5,11],everyon:[1,8],examin:2,exampl:[0,1,5,6,8,10,11],except:4,execut:0,exist:[0,2,6,8,11],expand:11,expect:[0,1,3,8],experi:[1,2],experiment:4,explain:[1,5,11],explicit:1,explor:[5,12],express:1,expuls:1,extend:7,extens:11,extract:0,extrem:11,fail:0,fair:1,familiar:11,fan:1,faq:[6,9],fast:[0,5],fast_build:[0,5],fastbuild:0,faster:8,featur:[3,11,12],feel:[1,12],few:[5,11],file:[0,2,5,8,11,12],file_path:0,filenam:11,filesystem:[2,5],find:[1,8,11,12],finish:[0,3,6],firehos:[2,10],first:[0,1,3,8,11],fix:[2,4,8],flux:11,focus:1,follow:1,foo:[11,12],food:1,fork:11,forward:12,foster:1,free:[1,12],frequent:8,friendli:1,from:[0,1,2,4,5,8,12],front:11,frontend:[8,11,12],full:[2,10],fulli:0,further:1,gcr:[5,10],gen_k8s_yaml:12,gender:1,gener:[7,11,12],get:[2,6,8,9],git:[0,3,5,6],github:[3,5,6,8,9],give:[1,12],given:0,glanc:[2,10],global:[2,10],golang:5,gracefulli:1,graphql:11,great:[10,12],green:[3,6],group:[1,11,12],guid:[5,6,12],hand:[2,3,4],handl:[1,2],harass:1,hard:11,harm:1,has:[2,4,5,6,10,11],have:[1,3,6,9,11,12],head:12,health:1,healthi:1,helm:[0,8,11,12],help:[4,8,11],here:[5,11],hit:2,home:9,homepag:3,how:[1,2,5,6,10,11,12],howev:1,http:[3,5,6,9],hug:1,human:5,icon:[3,4,6],ident:1,imag:[0,5,8,10,12],imageneverpul:4,imageri:1,img_nam:0,immedi:11,impact:1,implement:[3,11],inappropri:1,incid:1,incit:1,includ:[1,4],inclus:1,increment:5,independ:0,individu:[1,11],infer:0,inflammatori:1,info:9,inform:[1,11],ing:12,initi:0,inject:12,input:5,insid:[4,5],instal:[4,5,6,12],instanc:1,instead:[2,4,5,11,12],instruct:0,insult:1,integr:[3,6],interact:12,intercept:0,interest:1,interpret:[5,11],introduc:[5,12],intuit:11,investig:[1,11],invit:8,involv:1,ism:1,issu:[1,2],its:[0,1,11],javascript:5,join:12,judici:11,just:[2,5,6,8,10,12],justic:1,k8s:[0,8],k8s_resourc:[0,11,12],k8s_yaml:[0,5,7,8,10,11,12],keep:5,kind:[1,4,10],know:[6,7,8,11],known:1,kubeconfig:4,kubectl:[4,6,8,9,10],kubernet:[0,2,5,6,8,9,11,12],kustom:[0,11,12],languag:[1,3,5],larg:2,latest:8,learn:6,leav:1,legend:12,let:[3,4,5,6,7,10,11,12],level:1,lifestyl:1,lightn:5,like:[0,1,5,8,11,12],line:[2,5,11],list:[0,11,12],listen:6,load:4,local:[0,5,6,7,8,9,10,11,12],local_git_repo:[0,5],localhost:[0,3,6,11],localpath:0,log:[1,2,3,6,8,10],longer:1,look:[3,5,6,8,9,11,12],loop:11,love:[7,11],mac:[4,9],machin:4,made:11,mai:[0,1,2,12],mail:1,maintain:1,major:5,make:[1,8,9,10,11],mani:[1,3,12],manifest:10,manual:2,map:[10,11],margin:1,match:[0,12],matter:1,mean:4,mechan:1,media:1,medium:8,member:1,memori:2,messag:9,method:5,microservic:[3,8,11],microservice_config:11,might:5,minikub:[4,6,9],minut:[2,8,9,10],misbehav:4,misgend:1,mode:4,modern:5,modifi:4,moral:12,more:[1,2,4,5,11,12],most:[2,4,5,11],msg:0,much:5,multipl:[3,8,11,12],muscl:2,must:[0,1],myproj:0,myregistri:0,name:[0,1,5,11,12],nation:1,navig:[2,10],necessari:11,need:[1,5,7,9,11],neg:1,neurodiverg:1,never:1,newer:2,non:9,none:0,normal:5,note:[0,11],notic:1,notifi:1,now:[2,12],object:12,off:[2,3,4,6,10],offens:1,offici:1,offlin:1,often:1,okai:1,omit:1,onc:12,one:[1,2,3,4,5,10,11,12],oneup:6,ongo:1,onli:[5,6,11],onlin:1,open:[1,3,4,6,8,9,12],opinion:1,opportun:1,oppress:1,optim:[8,12],option:[0,4,11],orchestr:2,organ:11,orient:1,other:[1,4],otherwis:1,our:[2,3,5,6,7,8,9,10,11],out:[3,6,7,11,12],outcom:1,output:11,outsid:[1,2,5],over:[1,11],overlook:11,own:6,pane:[3,6],paragraph:11,param:0,paramet:0,parent:1,part:5,particip:1,pass:0,path:[0,4,5,7,9],pathtochartdir:0,pathtodir:0,pattern:12,peopl:[1,3],perform:4,perman:1,permiss:1,persist:1,person:[1,3],photographi:1,physic:1,plai:8,pleas:[1,2,11],plu:2,pod:[0,12],point:2,polit:1,popular:[11,12],port:[0,3,6,11,12],port_forward:[0,11,12],posit:1,possibl:[10,11],post:1,potenti:1,power:4,practic:[1,12],prefer:[4,9],prerequist:8,previou:5,print:12,priorit:1,privat:1,privileg:1,problem:12,product:1,profession:1,program:[8,11,12],project:[1,2,4,8,9,11,12],pronoun:1,provid:[1,2],psycholog:1,publish:1,pull:[4,8],purpos:1,python:[5,10,11,12],question:[6,8],quickli:1,quit:[3,6],quux:11,race:1,racism:1,racist:1,rais:0,ran:12,rang:[1,11],raw:0,reach:11,read:[0,4,5,8,12],read_fil:[0,11],readi:[3,6,9],real:[5,8],reason:1,rebuild:5,receiv:1,recompil:5,record:[1,11],reexecut:[11,12],ref:0,refer:[3,5,8,11],reflect:1,refus:1,regard:1,regardless:1,regist:[11,12],regular:0,reject:1,rel:0,relat:[1,11],releas:8,relev:[8,11,12],religion:1,remain:0,remov:1,renam:4,render:0,repo:[0,3,5,6],report:1,repres:1,represent:1,request:[1,12],requir:[2,7,11],reset:4,resolv:1,resourc:[0,12],respect:[0,1],respectfulli:1,respond:12,restart:4,result:[0,1,11],revers:1,rewrit:11,right:[1,4,8,11,12],roll:2,root:[5,9],roughli:0,rubi:4,rule:4,run:[0,2,3,5,7,8,9,11,12],runtim:12,safe:1,safeti:1,sai:[5,8,12],same:[2,4,5],save:12,scratch:5,screen:[2,4,10],screencast:8,script:[2,11,12],scroll:[2,10],second:1,section:12,see:[0,1,2,3,6,12],selector:0,self:1,sens:11,sensit:12,separ:2,serv:[3,6],servant:10,server:[3,5],servic:[2,3,8,10,11],session:8,set:[0,1,4,5,8,12],settl:11,setup:[9,12],sexism:1,sexist:1,sexual:1,sheet:11,shell:5,shorter:10,should:[1,2,3,6,11,12],show:[1,2,10],similar:[1,5],simpl:[3,6,10,11],simpler:2,simul:1,situat:1,size:1,skaffold:8,slack:[2,8,12],slow:5,snack:10,social:1,socio:1,solut:4,some:[11,12],someon:1,someth:[11,12],soon:12,sourc:[1,8,11,12],space:1,spec:0,specif:[4,11],specifi:[0,1],sponsor:1,spooner:10,src:5,stabl:4,starlark:[10,11,12],start:[3,4,5,8,9,12],startup:11,state:[2,4],statu:[1,2,3,6,10,11],stdout:[0,11],step:[5,7],still:11,stop:[1,4,8],str:0,stress:8,string:[0,11],style:1,subsequ:0,subset:10,substitut:11,success:1,sudo:9,suicid:1,suitabl:3,supplement:3,suppli:1,support:[0,2,4,7,11,12],sure:[9,11,12],surfac:[8,12],system:0,tab:4,take:[1,2,5,12],taken:[1,12],talk:[1,12],tap:9,tar:9,target:[0,11],team:8,technic:[1,12],tell:[2,8,12],templat:[0,7],temporarili:1,termin:[2,3,6,8,9,10],test:[5,6],text:[3,6,11],textual:1,than:[2,5,11],thei:[1,5,12],them:[1,5,8,11],theme:11,thi:[0,2,3,4,5,6,7,9,10,11,12],thing:4,think:[4,8,11],third:1,those:[1,11],thought:1,threat:1,threaten:1,through:[5,12],tilt:[0,2,3,5,7,10,11,12],tiltdemo1:5,tiltdemo:5,tiltfil:[8,10],time:[0,4,5,8,11,12],todai:11,todo:1,tone:1,too:5,tool:[2,5,11,12],top:5,toward:1,treat:1,tri:4,trick:[2,5],troll:1,troubl:9,turn:[3,4,6],tutori:[3,5,6,7,8,9,10,11],tweet:8,two:[2,3,4,8,10],txt:11,type:[0,3,6],typic:8,unabl:1,unaccept:1,under:6,union:0,unlik:11,unwelcom:1,updat:2,upgrad:10,upper:4,url:4,usag:11,use:[0,1,2,3,5,6,7,9,11,12],used:0,useful:3,user:[1,2,9,11],usernam:1,uses:[0,2,3,11],using:[0,1,2,4,9,11],usr:9,usual:9,v18:4,v1alpha5:10,valu:[0,1],variabl:[0,4],varieti:11,verif:4,version:[6,9,11],via:1,viewpoint:1,violat:1,violenc:1,wai:[2,4,11],wait:[0,11],walk:12,want:[2,3,4,5,8,10,11,12],warn:12,wast:4,watch:[2,3,5,6,8,11],welcom:1,well:5,what:[0,1,5,8,11,12],when:[1,3,6,8,11,12],where:[1,5],whether:[11,12],which:[1,2,8,10,12],who:3,why:[5,11],wide:11,widget:3,wiki:1,windmil:[1,5,8,10],windmilleng:[3,5,6,9],window:[3,6],within:1,without:[1,2,11],won:11,work:[3,5,6,8,9,11,12],worri:6,worth:2,would:[4,5],write:12,written:11,x86_64:9,xzv:9,yaml:[0,5,7,8,10,11,12],yet:6,yield:1,yml:2,you:[0,1,2,3,5,6,7,8,9,10,11,12],your:[0,2,3,4,5,7,9,10,11,12],yourself:11,zoom:5},titles:["Tiltfile API Reference","Code of Conduct","Docker Compose","Example Projects","Frequently Asked Questions","Optimizing a Tiltfile","Running your First Tilt Project","Helm","Tilt User Guide","Install","Skaffold","Tiltfile Concepts","Tutorial: First 15 Minutes"],titleterms:{One:6,The:2,Use:2,all:4,api:0,ask:4,attribut:1,binari:9,build:[4,11,12],buildkit:4,caveat:2,chang:4,cluster:4,code:1,command:11,commun:8,comparison:[2,10],compos:2,concept:11,conduct:1,configur:10,conflict:1,congrat:12,connect:4,contain:4,cool:4,custom:[7,11],deploi:[4,11,12],describ:8,develop:4,docker:[2,4],document:1,don:4,engin:4,error:4,exampl:[3,4,12],execut:11,fail:4,first:[6,12],found:4,frequent:4,from:9,further:7,gcr:4,get:4,goal:1,googl:4,guid:8,have:4,hello:12,helm:7,homebrew:9,hood:2,how:4,imag:4,instal:[8,9],isn:4,kubernet:4,like:4,linux:9,local:4,maco:9,minut:12,model:11,more:8,need:4,next:[6,9],oneup:3,optim:5,option:[9,12],our:1,permiss:4,pledg:1,prerequisit:6,project:[3,6],push:4,question:4,realli:4,recommend:9,refer:0,releas:9,remot:4,repositori:4,resolut:1,resourc:11,respons:1,run:[4,6],scope:1,see:[4,8],servant:3,server:[4,6],skaffold:10,slow:4,sourc:9,standard:1,start:6,step:[6,9,12],store:4,summari:[1,11],tell:4,templat:4,thi:1,tilt:[4,6,8,9],tiltfil:[0,2,5,11,12],translat:10,troubleshoot:[4,6,9],tutori:[2,12],unabl:4,unauthor:4,under:2,use:4,user:8,uses:4,verifi:9,version:4,watch:12,what:4,when:4,workflow:8,world:12,you:4,your:[6,8]}})
\ No newline at end of file
diff --git a/docs/api/api.py b/docs/api/api.py
index de1e54bca8..bad2e7ce3a 100644
--- a/docs/api/api.py
+++ b/docs/api/api.py
@@ -110,3 +110,6 @@ def kustomize(pathToDir: str) -> Blob:
def helm(pathToChartDir: Union[str, LocalPath]) -> Blob:
"""Run `helm template `_ on a given directory that contains a chart and return the fully rendered YAML as a Blob"""
+
+def fail(msg: str) -> None:
+ """Raises an error that cannot be intercepted. Can be used anywhere in a Tiltfile."""
diff --git a/internal/tiltfile/fail.go b/internal/tiltfile/fail.go
new file mode 100644
index 0000000000..6fe2702ead
--- /dev/null
+++ b/internal/tiltfile/fail.go
@@ -0,0 +1,17 @@
+package tiltfile
+
+import (
+ "fmt"
+
+ "go.starlark.net/starlark"
+)
+
+func (s *tiltfileState) fail(thread *starlark.Thread, fn *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error) {
+ var msg string
+ err := starlark.UnpackArgs(fn.Name(), args, kwargs, "msg", &msg)
+ if err != nil {
+ return nil, err
+ }
+
+ return nil, fmt.Errorf(msg)
+}
diff --git a/internal/tiltfile/tiltfile_state.go b/internal/tiltfile/tiltfile_state.go
index 244d42c5ba..0a70b86183 100644
--- a/internal/tiltfile/tiltfile_state.go
+++ b/internal/tiltfile/tiltfile_state.go
@@ -91,6 +91,9 @@ const (
readFileN = "read_file"
kustomizeN = "kustomize"
helmN = "helm"
+
+ // other functions
+ failN = "fail"
)
func (s *tiltfileState) builtins() starlark.StringDict {
@@ -117,6 +120,7 @@ func (s *tiltfileState) builtins() starlark.StringDict {
addBuiltin(r, localGitRepoN, s.localGitRepo)
addBuiltin(r, kustomizeN, s.kustomize)
addBuiltin(r, helmN, s.helm)
+ addBuiltin(r, failN, s.fail)
s.builtinsMap = r
diff --git a/internal/tiltfile/tiltfile_test.go b/internal/tiltfile/tiltfile_test.go
index 828d5741bf..0d988d44ed 100644
--- a/internal/tiltfile/tiltfile_test.go
+++ b/internal/tiltfile/tiltfile_test.go
@@ -977,6 +977,19 @@ k8s_yaml('foo.yaml')
f.loadErrString("foo", "image gcr.io/foo:stable is not used in any resource")
}
+func TestFail(t *testing.T) {
+ f := newFixture(t)
+ defer f.TearDown()
+
+ f.file("Tiltfile", `
+fail("this is an error")
+print("not this")
+fail("or this")
+`)
+
+ f.loadErrString("this is an error")
+}
+
type fixture struct {
ctx context.Context
t *testing.T
|