Buildbot - The CICD framework of python | D谩niel Ern艖 Szab贸 | Skillshare

Playback Speed

  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Buildbot - The CICD framework of python

teacher avatar D谩niel Ern艖 Szab贸, Pythonista in the making

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

12 Lessons (2h 2m)
    • 1. Buildbot Introduction

    • 2. Buildbot the environment

    • 3. Buildbot Setting up the master

    • 4. Buildbot Setting up LIN worker

    • 5. Buildbot Setting up WIN worker

    • 6. Buildbot Setting up authentication

    • 7. Buildbot HelloWorld build

    • 8. Buildbot CICD pipeline

    • 9. Buildbot Handling secrets

    • 10. Buildbot Swap out default DB

    • 11. Buildbot The CLI

    • 12. Buildbot Outro

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels
  • Beg/Int level
  • Int/Adv level

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.





About This Class


This course is gives you understanding as to how you can build your own Buildbot infrastructure. It is based on the official 2.5.0 documentation, and every detail is introduced in the course. It starts out by building out our own infrastrucutre which聽 consists of one master and a linux worker and a windows worker. Then we set out to build our hello world example. After that we create a CI/CD pipeline based on my udemy repository, then we migrate the database from sqlite to postgreSQL. We learn how to use secrets, and the command line too.

Meet Your Teacher

Teacher Profile Image

D谩niel Ern艖 Szab贸

Pythonista in the making


Hello, I'm Dániel Ernő.

I currently work as a devops engineer. I have several years of experience with various platforms and I'm here to teach some advanced techniques which may attribute your job security ;)



See full profile

Class Ratings

Expectations Met?
  • Exceeded!
  • Yes
  • Somewhat
  • Not really
Reviews Archive

In October 2018, we updated our review system to improve the way we collect feedback. Below are the reviews written before that update.

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.


1. Buildbot Introduction: Hello there. And welcome to my course on the build both continuous integration framework. I have started to work with this framework. Why back? And I thought I would share my experience with you from the very first steps to how you can build out this framework Too happy with your continuous integration tasks. So this course were covered. The basic set up, what kind of options you have, what kind off capabilities this billable both provides. And we will be working on a small environment which allows us to test out features. So if you are interested in this kind off framework, or you have a certain need to find a continuous integration framework which you can use or even learn because you are at the beginning off your career, I suggest you take this course. See you in the next video. 2. Buildbot the environment: welcome back in the city. We are going to take a look at course materials where you can find them, how you can find them. And I'm going toe show you how ah, the environment will look like so, First of all, if you want the most accurate and detailed information about the actual version, you should definitely visit the official side because this course is my take on this framework and is not suited to fully demonstrate all the capabilities that are built into this flamer. Because that way we would have, ah, a few hundreds off hours off videos for you to watch. And that's not the point off the scores what I do. I also created ah, build. But repository that is going to be available for U. S. Course. Matori, as every commander will be, um, upload that here either as markdown file or a shell script. That depends on the actual situation, and it's will be linked to the videos on the platform. And I'm going to use, uh, um actually three species. So the 1st 1 is my laptop, and the 2nd 1 is going to be a Windows virtual machine, which will be one off our workers and the 2nd 1 is going to be a sent to us. We're chair machine That is also going to be our workers. So if you would like to follow along this example or discourse if you definitely create the rear char machines themselves. So these are standard installation. Anything build but specific will be introduced to you Help to configure or install it. And ah, I'm going toe have the master on my local PC and ah, this master is going toe Communicate with the clients in the virtual machines themselves. See you in the next video. 3. Buildbot Setting up the master: the time has come for us to set up our beard. Both master So the master is responsible, or the Masters are responsible for orchestrating the workers, sending out tasks, getting like the results, responding to specific evens and so on. So in a sense, we could say that the master is the heart, it and the soul off this framework on one hand. And ah, as I mentioned, the master is going to run on my local machine, not in a weird your machine. So now what we can and should do is to open up a common problem. And I'm using the Commander Consul a matter for Windows. I think it's pretty neat, and it's very similar to something that I used to love when I was working on line looks, machines or studying. So now we are at our you proposito ream, and I'm going to navigate one folder higher and create a master folder. If I go to the Master for the I'm going to create a virtual environment and this virtual in my room and can only be created with bite on if you have the appropriate package installed . So python dash, um, Pip install be Achuar Land and on the official side over the bill, but you will see the supported versions. So currently I'm on the 3.7 point Oh, this is for compatibility reasons, and I suggest that you should also speak a supported version when you're working with Billboard Beard, but because that will save you from lots and lots of headaches. So now that we have our realtor them package in start, let's create our master of your trailing vitamin. And this is good because it allows us to separate the master. And it's packages and openness is from other pie tone packages that we may have or may not have installed on our system. So now we have our your child environment. We need to activate it and then people installed and in order toe, install the master and set it up. We need to install the build both bundle, and this wonder contains multiple packages which support the master, and it's necessary for this tour and the ones this is installed. We are going to check how we can access and start the master. It's because this is not, ah, kind off easy or or simple step So now we are almost there. And after it is done Yeah, and one important note. If this is failing, were you fair to start the masters itself? You did not use the appropriate command, so you should install it with Bill. But bundle otherwise you may have complications with deafness. Is that are missing? So now what we can do is issued a common build but create master and we name it Master. So this common is going toe generate some fires, created database and configure our master So you can use different databases which are supported with this solution or the be Abide the bill but itself and ah, the default is a sequel. I database which is pretty convenient because if you have a fight on installation with appropriate version, it is at hand. And in order for you to try out these things, get family or with the framework, it's more than enough. So now if we inspect our master Oh, this is too much. So navigate to our master. We will see that there is a master that csg that sample and in this mustard at sea edgy that simple We have a different configuration file. And this configuration is used by the master too to work. This is what it reds before startup. So now our master needs Ah mustard. Let's see f g five. And what we should do is to move the master CSG sample to Master CF itchy. And then we should navigate higher in the level one and all we need to do is issued a beard . But start master. And if you are working on windows So this was left here on purpose. You need to install the by win 32 package So pip installed by wind 32 and ah, this real allow Ah, the mustard is born different processes because this is a depend as a package for it. So now we can start our master. And if the master is running, we will see the following on our local host. So local host 80 Time and Walla. This is how the running master looks like. So you will reach it on local host and port 80 time which you can recover here if you ever let's say multiple masters load balancing whatever. So this is the standard configuration and now we are going to look at our master that CFT. So this is nothing more than Ah, let's see. Bite on file, so to speak. So we import every planning from the bill. But we create a master config, which is a dictionary. Any side is dictionary. We will have workers protocols, Jane source and so on, which I'm going to talk to you about in the following videos. But basically what we see here and what is kind off relevant or necessary for us is the following This is the bill, but Europe. So if you would like you could simply replace it to other hosts or other port and so on. What you ah kind off also need to reconfigure your in that case is this Ah dictionary, which is the configuration here. So technically, this was all my video wanted to show you. See you in the next one. 4. Buildbot Setting up LIN worker: the time has come to create our workers or rather install and configure our workers to communicate with the master. So first, Ah, this is going to be a two part video. 1st 1 is going to be about line. Ex worker. The 2nd 1 is going to be about Windows worker. So let's start Our center s a virtual machine. So this is a standard installation and what I did is to configure it with ssh access and static i p so I can put it down to my bart. Now what we need to do is to ssh into the Santo s A machine currently Ah, the network set up looks like this. So we have a so called we're trying network which can be edited in the VM ware or the corresponding virtualization environment This way. So we have the 1 90 to 1 68 56 0 address. And, um, if I ping Mei Santo s a machine, I should now be able to ssh into it. And I'm going to use my default user on bastard and that I'm that I'm that I'm dumb. So by default, when you install sent to us machine you do not have Ah fight on three version available. You only have a fight on 2.6. I think that's that's the latest one which is supported. So in order to in stop Eitan, we need to do the following. First, we need to use the young install with the development to us and this is going to go out to the public repository, Pick up the development to us and we need to use the group. Install comment, not the another way around. Sorry. So then what we should do is to install some additional packages. I'm going to lose them in the read me file. So no, no is a text editor bhichai off the news w get is to download packages or ah, files from the Internet, the GCC's compiler. And there are some development headers which are necessary for us in order to be able to be a bite on, and we go out and grab our fight on package. And then what we would like to do is to extract the By Tom package and then CD into this fight on insta pie tone package folder and issue the configure and enable organizations So this is going to configure our package check for the dependencies if they are available, and then we are going to be able to use the make old in stock a month, so make ought in star. And ah, this usually takes some time, so to speak. But after this has completed, what we can do is tow. Use the bite on 3.7 instance and then we need to install the Peep Bytom package manager that is going to allow us to install the V actually of package and then prepare our worker . Until then, what I would like to do is to configure the master so v I, Master Master that CFT. And here, if you want to add a new worker, you need to edit this configuration file and around the top you will find this line. So currently it holds the configuration for one worker. Sorry, I need to reopen this. So this holds the configuration for a single worker and it is going to have this example worker and the past. The past is the password, so to speak. And since we would like to have a Windows worker and the Cento and Cento s worker. I'm going to make this configuration five more. Ah, transparent, so to speak. And I'm going to say that this is the send us A worker. And after we configure our master, what we need to do if toe issue the beard, But we start master Great. If we go back to our other prompt, you can see that we have this completed. And now what we should do is to issue the update. Alternatives Common. This is going to make sure that our fightin is globally available A spite on three. And now if I issue the piped on 3.7, you will see that it opens up the shelf with the appropriate version. Now, the next thing that we need is the By Tom Package Manager. And this is the common which allows you to download it. And after it was downloaded, What you can do is to issue the bite on 3.7 and get people go month and this will go out, collect the pip and installed it. And from now on, what you need to do is to install with the fight on 3.7 cm peep install be a true Allen. And after the trial and was installed, we're going to leave the route shell. And now we can issue the virtual and worker. This is going to create our worker environment. Then we can activate the worker. I think its source work scripts Book of being active it. Now we can install the big beard bought worker. So this is going to take the Beeld bought worker command. And after this was installed, we need to install something that the schools set up to trial. So be a book Dilated set up to US trial. Great. Now, if we check with the people freeze. We have prepared our reaction environment to run this worker. Now we can use the build bought workers, create worker, and this worker is going to take a master. And it's also going to take a name which is the center s A and the pass which is the password from the corresponding configuration five. So how do we know what the master should be? Ideally, a set up name resolutions for Bill, But master, so to speak or you specify the I P address on which this master is available and currently in my set up. This is the I P. Address. So now what I'm going to do is to say that this is the master and, um, we need to do the work. And now if we check, we can see that we have this worker for that. And inside this worker for her, we will find different configuration files. So if we never get here A, we can see the virtual environment, fires and the bill, but that t a C and what we need to do is to now issue the following common beautiful start worker and worker so heavy, Dan. Surely this should be able to connect to the master itself. But a Z You can see our notarize logging your work, maybe using wrong but name or password, please. Correct. So unless oh just gets worker in full and host Great. So if we specify, we can say, if you would like, we can specify informations about the worker. This is useful when you would like to say that this bill but worker is going to let's say support. Build off c++ package ease or C package ease and you have another worker which doesn't support pants on. So basically you can give it an address and the name. Now let's go back to our monster and some reason being both start Master, it is not running All right. What we are going to do now is to inspect the logs So the logs are located here under the master to east it Look. And as you can see, there might be some configuration issue so loading configuration being both call Fig Hughes aged. That use is unknown workers. So let's edit our configuration file to accommodate this part. So worker Cento say And that is another good great So cento us a And we would like the search for the example Go head on. And now since this is done, we should be able to start our master. Let's go ahead and reload this pitch very well. Now we should be able to go to the workers And now if you change a tab, we should be able to start the worker So it seems like Ah yeah, being both work uppers to have restarted correctly Very well. So now what you can see is that here in our list have our workers. So let's go ahead and check it. Actions. There are multiple ways in which you can manage your workers. Now, I would like to also show you how you can Let's say, reconfigure that part off the worker. So we I ever heard in full Bodman. So my name is Subbu? None? Yeah. No reaper by its Gmail Not come. And we would like to and it this description or so. So let's say that this is a worker running one sent us a of it bite on 3.7. Now, in order to reflect these changes, we need to restart this worker. And now if you go back to our be a book, we can see under the workers that these changes were reflected. So this is one way to kind off reconfigure the sport for the workers. And I think that is one last thing that we should modify. So now if we go back to the master, that's e f g at around the bottom. We can see this part. So now we would like to say that three per by beard, but course and also swept out the sport for the represent story. You al here. Oh, boy. Great. So now, in order for this change to be reflected on the master, we need to restart the master. Oh, escape bids. Great. So sometimes these restarts died so natively. If you want to face less strange arrows, you may want to have a line X machine, which is running these now. If you go back to our beer boat, you can see that the tighter has changed. And that was all for now. We will configure the windows worker in the next video. See? And don't next one. 5. Buildbot Setting up WIN worker: in the city or we are going to see how we can set up a Windows based worker. And, um, I'm going toe guy, you through all the nifty details or steps that you need to perform in order to make this work. So what we are going to do first is to grab on installer from the fight on the torque. And here I suggest you scroll down until you can see the 3.7 point O install there. Yeah, here. And download the appropriate installer for your version. I have chosen executed ble installer and it has ordered being dragon dropped here. So all I need to do is to start installer as administrator. That is really important. Otherwise it is going to fail. We would like to customize the installation so that it is not installed under my up data directory. But it's installed in the sea route. And once this is done, our set up is not yet complete because we need to adjust the environment valuable. So see STM that c p a and here what we would like to do is to add to the past very able the following we go here to our see by item and the 1st 1 that we will add allows us toe Xs xs the bite on execute the boat And if we are the scripts for that, it will allow us to use the pig Kama and both are necessary in our case. Now let's navigate to our That's the folder and ah install first the V A triumph package Soviet trial and great! Now what we would like to do is to create a V a trial in which is called Vin worker or of Invoca in this case and in this way invoca environment. What we would like to do yes, to install the dependence is so. There are basically two dependencies but we are going to activate this year China environment, then Pip, install, build but worker And then we are going to install the set up to trial back inches. Both are necessary for this to work. And then what we would like to do is tow create our worker and configure it appropriately so set up to try. Oh great. Now what we can do is to issue the beard. But worker create were God. I ve never card well Let's call it, we invoke. And, um, what we would like to do is to specified I p address off our master in this case, 1 90 to 1 Succeed 56 1 and call it invoca the other way. And let's give you to the bus password. Now we go with the dean for for that and specify the description off the host. So this worker is running on Windows Server 2019 with bite on 3.7. And the administrator is me So stubble. Then you know, new with the email. Others she male that come great. So it was complaining about asking characters and stuff like that. But now we should be able to start our worker. So beard, What work? Start being before God. What being about the first start in vogue? Great. Ah, it should actually fail unless we reconfigure our master. So we would like to call this a win, Voelker. So we're care worker Wien Voelker and bus. And what we would like to do is to add it to the worker names as well. So let's make it in the vault. And now uh huh. We would like to restored our master. And there might be, uh, problem. Yeah. And for God's too aunt something here because this is bite on list and you may want to separate each list item. Great. And what ah we would like to do also is to open our note, but and edit our windows system, 32 drivers, etc. Hosts five. And let's say that our worker is going to look like this 1 92 want succeed 56.5 when Voelker save. But come on. All right, then I'm going to open up a common front. We don't ministry a tive privileges and say that North Bud find him. And I would like Toa aren't here. The 1 90 told that one succeed at 56 that five Vin vote and save it. And if I go here and Ping Voelker, I will get back a reply here. No, let's restart our master and check the logs. So starting factory and and and great. So now if we visit the billboard website, we will see that our Windows worker has arrived. So from the masters perspective, it needs do things actually, so it needs a valid password from the worker for the authentication that goes into this part after me. Sure, you, This spot. And it needs to be able to resolve the name off the worker to which it would like to connect to. So if I didn't edit my hosts file, it would have failed Stating that it cannot find a worker because it cannot resolve the name and it cannot communicate with it. So technically, this waas or that I wanted to show you Thanks for watching. 6. Buildbot Setting up authentication: Hello there. And welcome back. This video is going to be about authorization or authentication, if you will. So basically what we would like to do is to, ah rest strict. Which kind of users have what kind of access to our beer? Both framework. Because by default, when you hear to this context route the different contact throat without any authorization , you can do anything. And this is Ah, not really Ah, nice thing to allow in a production environment. So we would like to restrict who has what kind of excess. And in order to do that, what we must do is to set up authorization and we can set up authorisation by visiting our master configuration. And here, if you press I and go to the bottom of the screen or close to the bottom of it, what we can do is to set up a simple authorizations scheme. So we would like to set the www dictionary keys Oates key to be equal to you till that out . And this is going to hold some very important aspect off our build. Both framework. So we will have allow guru was and is a route. Allow ruse is going to hold Ah list. And this list is going to hold the following. So you feel that any end point my church So we do this, you are able to specify which endpoints should be permitted to be used by specific ultra rise user. So we will say that our role is admits. And then what we would like to do is to specify the role marchers and throw matures is also going to be a list that is going to say that if we have the util that role Froome use their name. And I say that the role is equal to either the admittance or whatever I specify and viewers their names is going to be quote to a list which holds Danielle as a single array. Then what I would like to do is to specify the sea w w and both to be equal to you till you their password. Both and I would like to specify injury and that very holds cube ALS. So the stupor is going to be consisting about user name and the bus words. So start exclamation mark 123 And if I did everything correctly, which I doubt and save this, I can issue the Beeld. But Reese thought master command. And if I inspect with the tail, the master twisted log, I can't see that. That is an unexpected keyword argument. What? So raw from user and Rosa? I don't know why, but recently my keyboard started acting up. So I am using Lucy's keyboard and decide be the reason. So if we check with tail, we still see that there is an unexpected argument. Let's investigate this. So Ah, I was thinking if I should cut out these arrows or rather leave them in and show you what is the kind off solution to such problems. And I decided that even though it it seems to be a little bit lame, But it can show you how you can corrected this configuration problems by showing you that the weather, how surprising it is, I am not perfect. So now we have this issue in our conflict file. And in our conflict file, we have this unexpected keyword argument, which is called roles. So where do we have this so called keyword argument draws. So now I need to delete this sport and what I would like to do is the following. So we have this allow Rose and any important mature with role ad men. And now I should allow us to restart the specific masters and they'll this sport so raw from user name. Now we are getting closer. So this is, ah, kind of tricky part to set up because you need to use the appropriate function or keyword names. And now if you rest on the master and tail this one, it says the distraught from user name is still not able to be processed. So we have any employment mature. And the youth here in the rose from you is a name. And that means Eli's user names save it and restarted. Now we can inspect it on it seems like this has successfully started. So if you go back to our build, both What we will see under the home is that we have this anime Masefield. So let me bring you down here for you. So you are able to see it So we should be about to log in. And I say Daniel thought exclamation 11234! And very well. So now I was able to log in and check my workers and check my builders and so on. Answer force. So, technically, this is how you can troubleshoot this issue. What you also need to know is that you are able to set up different all ticket vacations so you are not restricted to user name or password. You can set up, get up or get lab authentication. So get about litigation is important when you are using beer bought in an enterprise closed enterprise environment and you have your own get lab instance. So that allows you to out in the game against that get lab is incest and then execute your C I framer. But you will need to visit the documentation for that. Because if I wanted to show you how you can use the Gittel about indication, I would have included an installation in the configuration for the get Libyan starts, which is not really part off this specific course. So that was all I wanted to show you and see you in the next song 7. Buildbot HelloWorld build: Welcome back in this video, we are going toe, Um, try to build our hello world example. So this is kind of crucial part because it allows you to get on inside. So what happens behind the scenes? So, first of all, what I would like to show you is toe what drives this this building process. So now, in the previous video, we have set up a authentication that allows us to use this user name and password for out indication. And what I would like to do now is to go and check with you what kind of builders that we have available for our projects. So, as you can see, the builders section is defined here in the master that C f g, and it has two different parts. So there is a part which is called the factory, and this factor defines what we would like to build. So now if I copy and pay is this here and just simply open the web browser, you will see the following. So this is an example be a project for the C I framer. And it has a hello world application with the tests, and they need hello world and as basically that we would like to execute. So since our environment consists off Santo s and the Windows host, we will have different difficulties to build this project. And ah, this is what I would like to highlight to you now. So if I go back to my build, both instance and go under the builders And here I clicked the run tests. I have something that is called Force. So this force allows me to rebuild this solution. And as you can see, I have a failure here. This failure comes because I am running this against the wind worker, as you can see and hear under the standard Io darks. I can see that by Win 32 is not installed. So let's think this fix this issue. So here, under our part, what we can do, Mr Issue, the people stop five in 32. And now what we can do after this was installed is to grow and grab a get installer. So get download. And here I would like to download the one for windows and last making this the 64 bit. So as you can see, I'm downloading it twice. So I will cancel the first. Ah, the 2nd 1 And if this was downloaded, what I can do is to go ahead under my downloads folder. And after this was downloaded wishes 45 megabytes. But it's terribly slow at the moment. I can drag and drop and cope it here and I can set it up. So I should leave this common prompt here and wait for our set up to complete and under. Then what we can do, or maybe try to do is to go to run tests force, start build. And as you can see, this has succeeded because we have bearded on the center s system and under the build steps you will see three distinct steps which allow you to get insight here. So we have get part which is all about synchronizing the git repository to the local sister . And then we would like to call the build part which is going to build the solution and run the tests which are included here in our repository. And it's steel downloading. So we would like to go back here and maybe removed despite an installer and then what we would like to Dio is to wait for it to complete. So we are assert the megabytes from 45 which is pretty good. Now we are 32 33. So now it seems like I have something kind off problematic with my Internet service provider. But this will not stop us from providing you with a decent Victoria. So we are almost there seven megabytes left. And technically, what you need to know is that when you are working with the worker process, it needs access to a specific execute herbal. So, for example, if you are ah, synchronizing from good, then you need a gift client. When you were working with no GS or Java application, you need access to know gs executed. But the job I executed Bush and so on and so forth. And those accesses are coming from nothing other than your path variable. So if you require some execute herbal here, then you need to added the past for the specific execute herbal. And now, since our download is complete, we can drag and drop it here and maybe we can also start it. So next, next, next, next, next, like snacks, snacks next, next next. So we leave everything on the foot if you have different needs than you should off course defined those install arguments differently. But now, after this was completed, what we should be able to do is to open a common prompt after viewing the release, Not then issue the get command. All right, now we have gift and we have by wind 32. So let's not forget to our desktop and activate our team worker and then build What worker start Vin Voelker. Great. Now what we should be able to do after closing these windows is to go to the actions, not the action. Sorry. So under the builders and force and start this build itself. So Santo s e have succeeded. Now we would like to rebuild it. And under the wind worker, Since our get was successfully configured and it is accessible by the Windows worker, it was able to successfully performed these weird steps. So now our tests have succeeded successfully or completed successfully, and we have kind of a fully fledged testing in my element which is able to build on santo us and on Windows environment. And that was technically all I wanted to show you in the city. You see you in the maximum 8. Buildbot CICD pipeline: Hello there. And the water Come back. This video is going to be about how you can create your own custom build with the hap off Bill. But see, I framer. So basically, what we would like to do is to take a representative which in our case, is going to be a pilot on a positive and build It tweeted the depth and then insist which were created. We are package and the Tar GZ package and then push it to the pipe ei that all So by p I that all is something which allows us to, um let's say make Bytom packages available for the general public, which then can be published Oh, and installed with the people Package manager. So in orderto let's say, use this or upload here packages. What we need to do is the following. So we would like to install the dependency package. This is going to be for doing those worker Rand. What we would like to do is to in star with the people that wine package and, uh, yeah, first the pipe the wind package will be installed. Then we would like to start the set up to us and ah, well, packets or pip install set up tools and a wheel. Great. These are already installed. Now what we need to do is to have something that is called ah wine. Use that name set, which is currently my user name for that platform and the trying password, which I'm not going to show you, but it is also sad. And that's the looking for that. And this is needed for the upload when we specified. And now what we can and should do is to go back. Start out Windows worker. And what I did is to ah recreate the whole framer. Because in the hello world Widow, and before that I have shown you authentication and I do not want toe bother with low in anymore that makes it easier and faster. And, uh, we will go to our master and inside the master. We need to edit the master that cmg so here by default. What you will see is that we have a change source so called and this change source is nothing more than something that can and should trigger Ah, be it. And ah, we can specify our opposite story. The following way. So change source and that up and and changes get boiler By the way, you can use ah other types off changed sources. So it's support spn and other version ing systems. So the first thing that we need to do is tow. Specify the gate, build so many using windows that is a strange behavior which would be called bag. So technically, if you don't specify the get binary bus, then you will have a trouble with exceptions. So since this ah, modernism is running on the master, then you need to specify the gets location on the master and ah, but the gift is installed under the program files Bill. So here we need to insert this one. And for whatever reason, this Gosselin later things that it should replace the black slashes with four r Slash is and I have just fixed that. So the next thing that we would like to do it's a specified the rapper you are out which is going to be You don't mean that get and we would like toa specify world the directory which is get poor lad you Demi and we would like to specify branch for which we would like to look for changes. So we say that this is the master and now we need to specify appalled Interpol, which will be every 60 seconds. So we want to have a rapid pick up off changes. Now if we save and exit the master conflict, there is a common that I want to introduce to you. So bid check going. Fig, This is going to go to the master that c f g five and it will verify if everything is OK now if I restored my master, What you will see is that in the they, uh, get ripples where my master is located. It should have ah, directory created. And we would like toa inspect the lows of the master. So it says that it has the gift polar step up and we will see after a minute that it started to pick up the changes themselves. So let's opening your terminal and, uh, activate our master and vitamin, and we would like to issue the let's see Great. So it seems that the get polar is processing changes from get up that com report pie, you dummy. And this created the folder which is responsible for checking for the changes. Now we should What should we do? We should further reddit our master that cmg five. And since we have our chain source which is working, what we need to do next is to create the schedule. So the scheduler is going to be a new type off schedulers. So schedule ass that up and schedule there, Patio dick. And this period, Scheduler says that every x seconds it will run the specified builders. And this will pick up the changes from the get polar and thus I need to the specific builder and ah, this period schedule are is going toe have on name. And we say that this is the patio dick and we would like to assign the builder names and these were their names is going to be called you dummy. And this will be defined with you till build factory. And what we would like to do also is too said the patio dick Time build time to 60. So every 60 seconds we would like this to run and we will say that Onley if changed equals true. Which means that only we run this builder on the builders if there were any changes Now what we would like to do if so, set a change filter and this will be coming from the util that change Feel that And we would like to watch for changes on the branch master and this will also further filter. So you confined unit in the get polar and you can find unit in the schedule even war. What he would like toa be watching. And since we have our schedule er what we would like to do is to create our builder for this So the builders are defined here and we will create have no exception in this case. So you than me is equal to you. Feel that Beeld factory And we would like to add the step which is coming Oh, our rather you know this version says that each light one step this kind of separates these things But there is an art steps function and I think it's more Ah, but more clear if you define it away But that depends on you how you would like to go about it so steps get and we would like to specify it Apple you at our and this trip were you at our boy We'll be this one and ah, that's the get here. No, no, no, no. Nobody. And then what? We would like to specify mold, which is incremento. And now we would like to add another step, which is a shame shackle month. And it's, ah, something that, uh, kind off takes some getting used to. So basically, what we would like to do is to specify an array and each common should be one. Ah, separated by whitespace is based on the argument. So we would like to execute the fighter set up the B y and as this and be this we come on and basically that waas almost or that we wanted to do so Now finally, we need to spot the builder that we have defined from the factory. So you tell peel there going fig I'm name is you than me and the worker names is going to be and Laurie and less specified. Ah, send no specify just the wind worker. And by the way, you can specify multiple workers, but you need to take off. Ah, using appropriate Coleman steer platform and I'm going Teoh show you what I mean by this later in the studio. So we were create these workers and the factory. It's going to be you tell me. And that was it. So beer, But check going. Fig stood. And if you did everything correctly so apparently we didn't do anything. Everything correctly. Yeah, that is a missing coma. Mm. I'll see. What do we messed? Uh, so apparently it's a type of once again. I think this is a useful command because it allows you to. The subject is not the raber. It allows you, toe Jack leave. The configuration is correct without trying to restart or crashing your bill. But, master, which is ah, kind of handy. So now there must be something wrong with this. Get part. So this is also troubleshooting, So configuration shackle mons. Common argument is not specified. Uh huh. So it's given argument. Great. Now we are getting closer and closer to this. So now it says that the gate object. It's not eater able. So it's see, So we have the change source boiler. That seems to be fine. The scheduler seems to be fine. Then the problem must be somewhere around here. Yeah, e So besides, steps when you are using it this way needs to be made and are a so well that well, but can iterating over each and every step there so the terror or didn't tell you? But what I have just did is too rapid in around these brackets. So each step that we would like to perform is a different one. All right, now we can restart the master. Yeah. And here if you go under the builders, we will have the you Timmy, the other. And here we should be able to see these this room worker. And this has run the run test two times. And here in the other me, we do not see any of those. So we have this. You don't appear that, um Oh, yeah. Great. So? So the beer, Their name is not you, dummy in there, but invoca itself. So now it is complaining about something so they'll and we should see the master master that c a G instead. The twisted that plug. I'm no beer there in scheduler, period. Why is it done known? So we have disobeying the broker. Come on, We have the Santos say. And the wind Walker. As builders, we have this schedule are set to the beer, their names. And this is do you Demi Bir the And they see that maybe there is going to have a worker v invoca and using the factor. The few that me worker Name some. No. Come on. This supposed to be working? Mm. So now we have our workers win Walker and Santo S C. And the builders run tests and you know me. And now what I think I'm going to do is to rest start this worker, and also restart the other worker and see if there is any change. There is no change. Okay, then let's investigate further. So here. What happens if I specify something like this and then restart my master? Great. You know me. We're on test and santo a say was attached. But why didn't it attach the master? The being broker? So pig being a broker? Um, this is strange. All right, then we will proceed. I I think. Okay, that is another command which is called build. Both return fig, or rather, upgrade master. And what it will do is ah re read the configuration off your master and ah, recreate everything that ah, configuration says to be recreated. And what we need to do then, is to restart this master. And here, if it starts successfully, we will see kind off a clean page. So, uh, we have to workers and, well, I have trig myself. So we do not have the something which is called forced button here in the u Dem appealed because this is a periodic schedule, er and ah, it does not allow us toe force it manually. But if we want, we can create the scheduler for that. So here, what we would do is to ob inside the builder names. You bet me. And now this is going toe odd the force bottom here or supposed that? Yeah. So here this button is what I meant. No, what we can do. It's a specified name A and B that come and it is going toe execute the steps. So currently what happened here is that we have successfully created our packages. And if you go to the wind worker and check the you Demi part beard, we will see the dest folder and we will see the egg in four folder, which was created by the common that we have executed. All right, now, how do we upload this to twine? So this is going to be done by the twine upload Common. And what we would like to do is to up this to our ah, let's say, master conflict. So here, as an extra step, what we would like to do before every Beeld is to clear out the beard folder or rather, the least folders steps get instead, Shell Goemon go month is equal to now. And we would like odd, uh, capita que capital f And we would like to use the this back flashbacks less star. So this is going to empty out our father before every bill. And after that, uh, we should make sure that this is working. So let's say we restored our master and place something here in the best for her. So not the folder, but rather a fine which would be called this should be gone. If we go back and try to force this beard or rebuild it, then what we will see is that the Dell Command has completed successfully and the fire was removed. That's okay, because this would interfere with our twine upload. And now what we need to do is to odd hour step, which is going to upload. So here, what we would like to do is to create steps shell common come Monday. 1/4 to twine upload apple, Was it story you went out. And the representative, the you around is going to be https uploads. But by P I the board legacy and we need to specify a folder which is called this and everything that is in that least folder. Now we're start our master and then go back to our build and and it's not working because I am a singer. Coma, I think, Yeah, I am missing. So now what we can do is to go back to our build and try to rebuild. So currently, what you see is that that is a connection air or and this collection adder came because I have made a typo. So this is not the uploads just on upload. Great. Now let's restart our master and go back and try to rebuild it. So now it failed, but it failed because this is already an existing one. And what I would like to show you is toe how you can trigger a change in this case. So this is the ending of this video. I know it had been kind off along with you, but I want to be thorough, show you some troubleshooting and how you can resolve those problems. So get clone. You don't me and ah, it already exists. Yes. You know very well. Say CD, You know me. Then get pulled. Great. Now we need to edit our set up the P y and change the version. So in the a message, you see that this 1010 version already exists. So we would like to change it to something like 01 Oh, instead, one. Now get comet the shade. I'm They did version and get Bush the shoe gin master. Okay. Is it working or working? So now our tail have been running for a while and we can go back and try to rebuild it. So now Oh, boys, I need to remove the Santos safe from this. So that's see the V I Master Laster. So our build step contains a common which cannot be understood by the Santo s A. So what we would like to do if the beard but restored master So that build failed? Because Santos A doesn't have at their command. And if you go back here and their builders Mm, they'll muster twisted log, invalid syntax. Thank God he's You feel beer? They're going fig. So before the builders, that is something which it says is him. But what could that be here in the tail line 96. But that cannot be true. Unless, let's see my still must see energy said seen ducks. But don't. Mm, I think that is. Ah, nasty corrector. Somewhere here. Santo us if you write it back here. What? Bones? Come on. So what happens if I remove this entire line? Oh, not this one, but all right. Oh, come on. I think I have realized what the problem is. So this one is missing. Great. Now it has successfully started. So if you go back to our year that maybe there we will see that we have these builders. And this year than me can be beard a equal. Be that. Come, we start this build with the wind worker and now we or also have a failure because by the time we got here, the periodic schedule er picked it up. So let's go and change it. So seedy. You than me, V. I set up bu I and let's make it two and get commit that new version. We had pushed a shoe origin master And now what should happen after we have successfully opposed it is that we are able to create it or let's say rebuild it. Yeah, we do not want to build it on Santo s A You want to build it on the windows worker And is it working or not? It has completed successfully. So we have published and you package We'd the successful appealed on these changes. Let me Akopian pace this. You are And there you go. So we come from here The git repository Pick up the changes then published the artifact toe by P I that hole. And technically this is all I wanted to show you in this video it contains on troubleshooting and so on. And the next video is going to show you how you can handle secrets 9. Buildbot Handling secrets: Hello there. And welcome back in this video, we're going to talk about secrets. So secrets allow you to have secret Ah, Vari Ables appended to your build. And these Vari ables are good because they will not be shown in the look fights or to be adult boots. So you can hide user names or passwords in this case. And there are sir party secrets providers. And there is building provider, which is called secret in a file so secret in the file works this way. Let's say we would like to have something ah hidden inside our master and inside down. Master, we were created the Secret folder. And inside the secret folder we were create the user five, which is called Dania and the past 35. And this is going to be start exclamation mark 123 Now, in order to use this, we need to edit our master dot c of g five. So we I muster must see fg and in the top we would like to add something called secrets Secret provider. So the secret provider syntax looks like this. See, see Kratz providers and we need to set an array with the secret that sea craft in a five And here comes the tricky part. So dear name needs to be specified and we will specify the directory in which our secrets live with the full path. So this is in our Chris, this one so CD CD. We I muster that csg and here we would like to paste this part. So now, after this, what we can do if to create our custom, build or customize our build accordingly. Seoul Now, what we would like to do is to create Ah Uh huh. Create a secret build. So let's say that see, correct is going to be UT of that field factory. And we would like to ub some steps and this odd steps is going to look like this. We would like toa run it on Windows worker and ah, in the Windows worker. What we would like to do is to create a file in the Dem directory with a specific name, so undersea and new folder damp. And if you go back to our master, we would say that steps that shell go month go month equals two and ah, this step is going to be interesting, because what we would like to do is to name our file accordingly. So let me pull up my Cheech it because I have pre pads this one. So we would say that we use the FSC deal and we will specify it. The fire and we will specify create new. And we would say that you feel that secret, you that and it will have zero length. So what happens here is that, um, Bill, but we'll go and look for the secret folder and inside that if I called user and whatever content of the families will be added as a very able. So now that we have our secret prepared, we would like to create a builder and upend it. So you feel that feel that config and the name is going to be dope. See, credit and worker names is going to be Vin Voelker and the factory is going to be top secret. And the next thing that we would like to do is to add this to the force scheduler, so top secret. And if you save it and beard. But check going, Fig Master, Then if there is no problem Ah, your name secret is not the find dear master work. So it says that there is and there or because this is not a secret but secret. Sir, Let's recheck this configuration. And now how What's that? This is not equal. But that sign we had almost So this also turned out to be a trouble shooting video. So restart Master, I don't know if everything goes well. We should see the top secrets builder and hear. What you can see is that we have the wind worker assigned and the top secret that can be forced. So a because, b that come And what we would like to do is to see that in the output that this five watts successfully created. So now if we go to our Invoca top secret wield Danielle Fire was created, which was the use only. So now, in order to find Eun, this what we can do is to reconfigure this part off the master. So the one responsible for the location of the fire is this one. So we would like to have it interpolated as a pass. So for that, I'm going to stop out these courts. Put here curly brackets and say that this is raw string. See back slash temp backslash. And that's not making the roasting, but just escaped the spots. And he if it's working, then we are happy. Great. Now it says that the sea damp secret user waas created this sea thump. Uh, well, there's some very syntax error. That's true. So how do we go about it? Let's say that we going to home Cantoni to these. How about that? Okay. Uh huh. Now we have a problem. Cannot can only conquer it. Any string not secret to string. No, let's wrap it around. So this f shuto may not be the best example to use because it's kind off hard to get it right due to this Syntex. But now it has at least started or restarted. So let's go to the beards. Builders top secret force A that be dot com and start to build the home. So Ah, I think that this should not be a valid demonstration, but you get the idea. So what we would like to do here is to interpolate this part. So you till that secret you was that and this is going to be ah what we demonstrated. So now if I go back to our master and after the restart, I remove from the wing Brokers folder under the top secret beard, Dunya and rerun this build. We should see that this fire was successfully created. And Ah, there is another way which is called interpolate. So interpolate allows you toe use a different kind off secret. So that would be like this. You feel that Inter pull out there, See Grete User. So with this, the sin taxes a little bit different, but the end result is the same. And, uh, technically, that was all I wanted to show you about how you can handle your secrets with the happen to be about Roemer seeming and exit. 10. Buildbot Swap out default DB: Hello there. And welcome back in this video, we're going to see how we can support the database, which is by default sequel light from underneath our people, but without, ah breaking the existing infrastructure. So currently, if you download the DB Bruiser for a sequel light, you can open the data base, which is located in your master directory, which is a state that secret light. And here you will see old tables and other stuff that build but needs to work properly. And, for example, we can broz the stable and here received the data that is associated with the buttes. And what we would like to do is to go to the post great sequel, the torque, download the installer for the appropriate platform and install it, so I already downloaded it. I'm going to start to the installation, huh? Where is the installer? Great. And walk you through how you can do it. So it is going to be located under both Grace equals 12 and we will need all these installed. The data is correct. I'm going to select a super duper secret password. Uh huh. Next, the port can be the fourth. The local also, And now we have successfully started the installer. So in order for ah, for the beard, but to pick up changes, we need to add it the master configuration. And if we go to the bottom here, what we will see here is the connection String 40 database itself and I have prepared the connection string already. So what I would like to do is to just simply paste it here. So we will use the Post Grace sequel. This is going to be our user in the past foot, the location and the database. It's after that we would like to connect. So let's just save it currently and wait for installer to complete after this was done. O R. This is done. We are going to need to shoe the beard, but upgrade master master gourmand. But that will only work after the databases ready. And after the installer has completed, we will still have a few steps that we need to do in order for this to work on and be a almost there. By the way, you can use older versions. The most important thing is that you need to check if Bill, but it's comfortable with that. So if you are using ah pretty or build butter gin, or you need to use an older version, you need to make sure that appropriate database is comfortable. But, ah, on one hand, it's pretty simple because behind the scenes ah sequel are Commie is used. That hides away the difference in these databases, because all you need to do is this. Tell sequel alchemy that you would like to go to this database and perform the section and the The idea off these over AM sequel Alchemy is to hide away all the nifty details that you need to be aware of if you are using specificity. Driver. Great. No, it is starting the day to be server. It might have kind of performance impact on you, but ah, now it's creating. The data is it's so let's start with PG admin, the management tools. It will start the UN means server and then want us toe looking. So this is the password that I have specified during the installation, and here you see that that's it. We have our post Gracie to have and let's go and create a database which is called Build both, let's say VIP and after it was created, we should refresh the spot and create a logging. And the slogan is going to be called build, but and the privileges should be This is all we need that we can log in and our membership read or starts on, and that's I'm kind off it. And under the shame us, you will find the tables field and this is currently empty. What we would like to do is still now go to our bill, but master and upgraded Great. In order for this to work, there is an additional package which is called Pip. Install Psycho up G two and then once it is installed, we should be able to upgrade our master. So it is going to check the based here and then password authentication failed for Bilbo, huh? There might be some problem with the password itself. So properties, password build, but safe, safe. And then we should be able to upgrade the master. Great. Now, if we refresh our beard but instants we should be seeing under the tables all these tables that we saw with the DB poser for sequelae. Now what? We also need to do is to issue the bill, but restart, master. Great. Now we have subbed out the DB restarted the master. And if we go to the builders and let's just try to build the UDA me A at B start this build Ansan and force. Let's rebuild it once more and rebuild it 1/3 time. So now if you go back to our PCI at me, we should be able to Breaux's the beards. And as you can see, the data has appeared here and technically, this was all I wanted to show you regarding how you can say about the database from underneath your bill. But see, I flavor see next. 11. Buildbot The CLI: Welcome back. This video is going to be a bit shorter because I would like to show you how you can ah, get more family or it's something that we have bean using all along. So namely, this is going to be about the common nine. So in the common line, we mostly used simple comments. So that is the build both command and this bill. But common takes different arguments. So with this we created our master. We used to the check on FIG, which is able to check or verify the Master CFT five and we have used the upgrade master when we have swept out the database. So the bill but command itself is used to manage the master or multiple masters. If you have, then what you also have is the Billboard two worker command and dispute about worker is used to manage the worker or workers if you have more tipple because you need to be able to stop, start, restart or even create new workers that we have demonstrated and this worker is fairly simple in a sense that it doesn't need to many fires. So build bought that deck, and as you can see, this is the configuration for the beard itself. As you can see, it has a base directory. Rotate length this for the look fires, and it uses the base. There. Either default or, if you don't specify that, is the fourth value. Otherwise, it were used, specified. If available, it is application. Which Bill? Which is beer but worker? And it is running a very simple, twisted Web server to communicate with the master. And basically, that was all I wanted to tell you. See you in the next. 12. Buildbot Outro: welcome to the out production video of this course. So by the end, off the course, you got to be family here with how you can build your own infrastructure with the hap off the bill. But, see, I framework I have shown you all the details that you need to be aware off to get started with this amazing framework to automate your deployments. Your builds your whole infrastructure itself. So the basic idea behind these bill but framework is that it allows you to do whatever the framework provides and also extend on the framework itself because it is written and vitamin. So if your family or with fightin you create, you can create plug ins and other extensions to be it both to act according to your needs. Now you are able to use workers line nooks and window systems. And what's most important and what I enjoyed the most is that you can create your own pipeline and that I have demonstrated for you so you can take a get have repository, pull the changes if there were any, and then build that and publish it to Pipi. I adore So it was also a little bit off, fight on packaging tutorial as well. And, uh, if you want, you can look me up on LinkedIn on me as a connection. And ah, if you complete this course, just send me a message added to your skill set that you are familiar with Bill. Both and I will endorse you as, ah, show off good faith or out of respect that you have taken my course. And that was all Thank you for attending.