Continuous Integration in C++

Give Linode a try now - Sign up using my link to get $20 of free credit ► linode.com/cherno
Patreon ► / thecherno
Instagram ► / thecherno
Twitter ► / thecherno
Discord ► thecherno.com/discord
Series Playlist ► thecherno.com/cpp
This video is sponsored by Linode.

Пікірлер: 145

  • @IsaacAsante17
    @IsaacAsante174 жыл бұрын

    It's literally the first time I'm seeing a quality instructor cover that topic in C++. Cherno's definitely the best guy to educate us on it.

  • @antoniocs8873

    @antoniocs8873

    4 жыл бұрын

    And he also did it in 6m no 14m+

  • @IsaacAsante17

    @IsaacAsante17

    4 жыл бұрын

    @@antoniocs8873 short and sweet

  • @WillFaustCuber

    @WillFaustCuber

    4 жыл бұрын

    @@antoniocs8873 14nm+++++++++++^2

  • @nextlifeonearth

    @nextlifeonearth

    4 жыл бұрын

    And we didn't have to decipher an Indian accent. Total win.

  • @zes3813

    @zes3813

    2 жыл бұрын

    wrrr

  • @Fobber92
    @Fobber924 жыл бұрын

    "My family will starve" 😂

  • @nexovec

    @nexovec

    4 жыл бұрын

    AAAwesoooome!!

  • @SaifUlIslam-db1nu

    @SaifUlIslam-db1nu

    4 жыл бұрын

    I laughed really hard at that! :D

  • @wutoby1052

    @wutoby1052

    3 жыл бұрын

    HAHAHAHAHHA

  • @zes3813

    @zes3813

    2 жыл бұрын

    @@SaifUlIslam-db1nu wrrrrr

  • @ryusaki6902
    @ryusaki69024 жыл бұрын

    the 𝘈𝘸𝘦𝘴𝘰𝘖𝘰𝘖𝘰𝘮𝘦 was actually a jump scare

  • @TheChondriac
    @TheChondriac4 жыл бұрын

    Thought this was gonna be a calculus tutorial in c++ haha

  • @EmbeddedSorcery

    @EmbeddedSorcery

    4 жыл бұрын

    He should totally do a video on integrator wind up.

  • @davinonnenmacher5355

    @davinonnenmacher5355

    4 жыл бұрын

    Me too

  • @pivotal-ai
    @pivotal-ai4 жыл бұрын

    Jenkins is an automation tool for builds. Continuous Integration is about taking separate code changes and integrating them together to see how well they play. This is basically testing the complete picture with your code merged in. Jenkins provides automation ability through a server that triggers based off of configured web hooks. These hooks can be applied to a git repository to automatically trigger integration builds and tests.

  • @267praveen
    @267praveen4 жыл бұрын

    Few more topics request a) Move Semantics b) Std::future c) Regex d) random generator f) Jenkins g) Docker h) maven I) make TIA

  • @RiverBeard

    @RiverBeard

    3 жыл бұрын

    can we write our own c++ program to interact with other applications on our machine?

  • @RiverBeard

    @RiverBeard

    3 жыл бұрын

    @ThePrivateJoker no im just new to c++

  • @RiverBeard

    @RiverBeard

    3 жыл бұрын

    @ThePrivateJoker Thank you for the bool answer and thank you for the keywords! you make my life easier

  • @davibergamin5943

    @davibergamin5943

    2 жыл бұрын

    @@RiverBeard the guy deleted the comments, what are the keywords?

  • @RiverBeard

    @RiverBeard

    2 жыл бұрын

    @@davibergamin5943 I totally don't even remember, I might have been looking for the right terms to google or something like that? uggg. I recently found someone automate his mouse controls to c++ and find a memory map for some applications, which might be enough for my desired intentions if i ever get around to it. so sorry for lack of helpfulness

  • @applejuice1496
    @applejuice14964 жыл бұрын

    I just stumbled upon this channel when I was trying to learn constructors because I struggle with learning from my instructor. Looking forward to watching the whole series! Will update every now and then

  • @WellItsHarsh
    @WellItsHarsh2 ай бұрын

    2:52 "Otherwise My family is going to starve" Yeh that's some contextual humour 😂

  • @mazirius11
    @mazirius114 жыл бұрын

    Hi, great to see some quality material on good practices using C++. Have you thought about doing more videos regarding DevOps stuff in C++? Jason Turner over at C++ Weekly did some videos on those topics, but I find your presentation abilities far better. It would be great to see a video series from you on good, modern project setup using unit tests, dependencies managers (preferably Conan), CI and maybe even CD. Keep up the good work and stay healthy! Greetings from Poland!

  • @_Ani_
    @_Ani_4 жыл бұрын

    10:14 A unique voice waiting for you

  • @sandipan17
    @sandipan174 жыл бұрын

    Was waiting for this video from Cherno... Thank you Cherno!

  • @gauravawasthi7692
    @gauravawasthi7692 Жыл бұрын

    my fav POC for all sort of IT doubts... bravo buddy for enlightening us :) .. hats off to your efforts !!!

  • @nsmkhn
    @nsmkhn4 жыл бұрын

    Awesome video! Thank you Cherno!

  • @davidrubio.24
    @davidrubio.242 жыл бұрын

    I love the fact that that you talk about everything that's involved in C++ programing.

  • @mario_luis_dev
    @mario_luis_dev2 жыл бұрын

    The CI/CD workflow is just amazing

  • @GlassHouseBiking
    @GlassHouseBiking4 жыл бұрын

    Literally been using jenkins for awhile now. I think this was a really good short intro into jenkins! I also use linode and never knew about the jenkins server option!

  • @Qualk9000
    @Qualk90004 жыл бұрын

    Great video! Love the “awesoooooooooome”

  • @gvcallen
    @gvcallen4 жыл бұрын

    Please do a video on iterators!

  • @RobGirdler
    @RobGirdler4 жыл бұрын

    Thank you for yet another fantastic and informative video. Could I ask, if you are planning on bringing Continuous Integration to the Hazel Engine series? I, and I suspect many other people, would be interested to learn more about how to use C.I. on a larger project where libraries and other dependencies come into play. I also have never got my head around how to use C.I. with applications that are not designed to just give a console output. I am working on a simple engine based around SDL and while I understand C.I. enough to be able to form a build pipeline, I have never understood how to get create a test one, other than something that simply looks for an exit code, either success or failure. Many thanks for all the videos you create, keep up the great work and please keep yourself and family safe during these times.

  • @ShivamJha00
    @ShivamJha004 жыл бұрын

    Awesome. Would you be make video on your game engine series adding jenkins support to it?

  • @tm_digita
    @tm_digita4 жыл бұрын

    Very easy to follow and learn videos @The Cherno. Thanks for all this. I would like to request if you can make one video about C++ copy and assignment difference . It confuses a lot of people including me. Thanks in advance.

  • @joshperry9468
    @joshperry94684 жыл бұрын

    Congrats on 200k subs. Deserved - this is a fantastic C++ series. Q: Could you do a couple videos on design paradigms, program architecture? More abstract than empirical cases of how C++ works. Error handling philosophy would be a good subject example.

  • @thebarylowi
    @thebarylowi4 жыл бұрын

    I hope in the future will be more videos like this (I mean on similar subject) :)

  • @badrbellaj1212
    @badrbellaj12124 жыл бұрын

    Free* travis is another option to explore for CI. (

  • @TheRoy714
    @TheRoy7144 жыл бұрын

    Awesome tutorial!

  • @meltpoolmartin772
    @meltpoolmartin7724 жыл бұрын

    Great video for an introduction into C++ and CI 👏

  • @chris27011986
    @chris270119862 жыл бұрын

    Awesome description

  • @CViniciusSDias
    @CViniciusSDias3 жыл бұрын

    It would be awesome to have videos about tools like make, cmake, etc

  • @ycombinator765
    @ycombinator765 Жыл бұрын

    I absolutely love it!!!

  • @jeromeclintonjustin895
    @jeromeclintonjustin8952 жыл бұрын

    Awesome video as usual man! Can you please do a similar video when you have a bigger project with third-party source code that must be built to create DLL and also static linking is necessary?

  • @princekm5902
    @princekm59022 жыл бұрын

    You deserve more subscribers.

  • @StefanHendriks
    @StefanHendriks3 жыл бұрын

    If you're adding your own github-webhook, make sure to add the trailing slash in the url. Else you will get a 302.

  • @FreeDomSy-nk9ue
    @FreeDomSy-nk9ue4 жыл бұрын

    Does it have to be on a server? If I am working on my own project that runs on multiple platforms, can't I just do the tests on my local PC?

  • @marbangens
    @marbangens4 жыл бұрын

    My personal C++ psychologist

  • @sirynka
    @sirynka4 жыл бұрын

    2:52 otherwise my family is going to starve.

  • @RagTagPwner
    @RagTagPwner Жыл бұрын

    I wasn't expecting to hear that EA uses Jenkins. Used that in a Java shop at a bank I worked for.

  • @OnePiece-fy2kt
    @OnePiece-fy2kt4 жыл бұрын

    You know you're living C++ life, when you use expression "You dump something down to its core".

  • @SeanForeman
    @SeanForeman4 жыл бұрын

    I worked at a healthcare dev shop with automated tests to prevent merges without tests passing and x% code coverage with tests. All of these tests make perfect sense and are easy to implement because the business case is either simulating clicking on web pages or backend tests. When you have a robust test framework with 95%+ code coverage you can sleep well at night as you make changes. I honestly do not know how to test something visually in 3D to make sure it "looks" right. Did you break the 24 hour cycle lighting/weather/ambient sound? How do you test that? I would really like to hear how this is handled in large game dev shops. If you change a framework and all non-visual tests pass, this is no guarantee you have not broken your game in a significant way. This currently forces me to put my game in a variety of test scenarios eyeballing everything to make sure it is fine which is time consuming.

  • @amrwael4990
    @amrwael49904 жыл бұрын

    Me : I'm gonna fail my C++ class The Cherno : *No I don't think you will*

  • @NskLabs
    @NskLabs2 жыл бұрын

    And here I was expecting to see some analog C++ computation.

  • @MultiWiff
    @MultiWiff3 жыл бұрын

    What is the music being played in this video?

  • @ermakamre
    @ermakamre4 жыл бұрын

    How about CI for C++ on Windows or Mac with third-party dependencies like boost and Qt?

  • @graceoverall
    @graceoverall Жыл бұрын

    What about using containers to build and run instead of Linode. Like CI in Docker or something?

  • @MaraisRossouw
    @MaraisRossouw4 жыл бұрын

    Just a note for you mate; if you chmod +x that build file, and then push to git - git stores file flags. So that step isn't needed :)

  • @a_alhadhrami
    @a_alhadhrami2 жыл бұрын

    Is it possible to show how this can be done in conjunction with writing tests please?

  • @foxvulpes8245
    @foxvulpes82454 жыл бұрын

    Any better ideas on getting vs2017 code to compile via Jenkins on a linux box?

  • @stevenvanharen

    @stevenvanharen

    4 жыл бұрын

    Fox Vulpes Use cmake

  • @foxvulpes8245

    @foxvulpes8245

    4 жыл бұрын

    @@stevenvanharen Cmake lets you make "projects" for different platforms, but I want to compile a .dll for a windows based application natively in linux. I don't want to go the VM route. I would accept compiling the whole application in linux as well. Just seems no way to... Like how you can coompile applications for linux in MS Visual studio, but in reverse.

  • @stevenvanharen

    @stevenvanharen

    4 жыл бұрын

    @@foxvulpes8245 Ah ok, in that case use mingw

  • @amrwael4990
    @amrwael49904 жыл бұрын

    Maybe talk about friend classes and functions , and abstract classes ?

  • @wang_7665
    @wang_7665 Жыл бұрын

    Github now supports CI/CD as well. How fast things changed!

  • @milo20060
    @milo200602 жыл бұрын

    Muhaha. I still remember my last game engine project our CI/CD Pipeline never worked fully coz the runner is linux based and we all working from windows PCs. Teachers were like joking "Well it works on my pc" :D

  • @42mix22
    @42mix224 жыл бұрын

    Right after I needed it

  • @42mix22

    @42mix22

    4 жыл бұрын

    Thanks tho, absolutely great video

  • @retroryuu7254
    @retroryuu72544 жыл бұрын

    ugh... had to set this up with azure yesterday, damn u job

  • @nextlifeonearth

    @nextlifeonearth

    4 жыл бұрын

    Azure is fine for that. Only installing it requires an extra step of adding an SSH key. Then on it's the same pretty much.

  • @retroryuu7254

    @retroryuu7254

    4 жыл бұрын

    @@nextlifeonearth not for VueJS project auto build and build transfer over FTP to the production server xD

  • @nextlifeonearth

    @nextlifeonearth

    4 жыл бұрын

    @@retroryuu7254 Then why isn't the production server on Azure as well? Silly job constraints always.

  • @retroryuu7254

    @retroryuu7254

    4 жыл бұрын

    @@nextlifeonearth what i told them... xD

  • @burakbash
    @burakbash4 жыл бұрын

    I know it is out of topic but could u please make a video about CLI? Because when I want to write a Form Application in Visual Studio, I need to deal with CLI and handling operator. So this makes essential C++ things useless such as Dynamic Memory Allocation, pointers and etc.

  • @toxicore1190
    @toxicore11904 жыл бұрын

    lol, I just did this yesterday for my GitLab

  • @kapilverma2668
    @kapilverma26684 жыл бұрын

    Please make a video on CI on Windows and MSVC.

  • @coder2k

    @coder2k

    4 жыл бұрын

    This! +1

  • @kirasmith1147

    @kirasmith1147

    4 жыл бұрын

    It's not that different, you just setup your jenkins file to use MSVC to compile instead, and use windows version of all the shell commands obviously.

  • @stevenvanharen

    @stevenvanharen

    4 жыл бұрын

    I am developing on windows, but run my CI on Linux. Use cmake to make your project compile and run on windows and Linux. I started of trying to run CI on windows. Switched to Linux for CI because of the huge docker containers that would be required for windows CI.

  • @angela_jx

    @angela_jx

    3 жыл бұрын

    I know this is late and I will say I haven’t tried this out myself but using something like wsl might be a good solution for you

  • @chakibchemso
    @chakibchemso4 жыл бұрын

    and what d u mean by cherno++ in the thumbnail ;)

  • @muhammadaamirzaman
    @muhammadaamirzaman4 жыл бұрын

    Amazing

  • @junxiheng4039
    @junxiheng40394 жыл бұрын

    Awesome~~~

  • @lordmushroom723
    @lordmushroom7234 жыл бұрын

    imagine having an abstraction over aws/azure

  • @ayush.kumar.13907
    @ayush.kumar.139074 жыл бұрын

    when he says linode, it sounds like he is saying Leonard

  • @maximilianoraulmalvicino4844
    @maximilianoraulmalvicino48449 ай бұрын

    10:14 awesooome!

  • @yekna459
    @yekna4594 жыл бұрын

    You forgot to link Jenkins in the description

  • @chakibchemso
    @chakibchemso4 жыл бұрын

    hey thx mat for the video but can u cover topics abt C# its also a great language! thx again

  • @Caellyan
    @Caellyan3 жыл бұрын

    What you're describing is build automation, not CI. CI requires developers to keep master up date instead of using branches lasting more than a day.

  • @aradhayaarora6155
    @aradhayaarora61553 жыл бұрын

    Please make a video on complicated Regex

  • @BosakMaw
    @BosakMaw4 жыл бұрын

    do you work for Epic now?

  • @fxexile
    @fxexile2 жыл бұрын

    i want to see differentiation as well

  • @Stefan-tw3fo
    @Stefan-tw3fo4 жыл бұрын

    Have you heard of Jonathan Blow's Jai programming language project ? Pretty interesting stuff imo

  • @nextlifeonearth

    @nextlifeonearth

    4 жыл бұрын

    Yes, but none of it is public jet and the spec is still far from frozen. I don't think we should consider it until he finishes the game he's working on, freezes the 1.0 spec and makes it public. Until then you should look elsewhere. You could try Odin, which has similar design features, but is already public. It's less thought out though.

  • @AhmadHassan-ey6hp
    @AhmadHassan-ey6hp4 жыл бұрын

    Bro can you please make a video on rest(...) parameter 😢

  • @jacob_90s
    @jacob_90s4 жыл бұрын

    Last time I was this early we were still using B

  • @ghazaleftekharian9349
    @ghazaleftekharian93494 жыл бұрын

    I love your tutorials . best C++ course ever. Please do python tutorials as well

  • @surferriness
    @surferriness3 жыл бұрын

    lel I thought this would be about good ol' ∫ _f(x)_ _dx_ as opposed to _lim_ _deltaX_ -> 0 Σ _f(x)_ _delX_ dude why tf didn't I just write *discrete* EDIT: didn't even bother to make sure _deltaX_ stays _deltaX_ EDIT 2: wait the "as opppsed to" part doesn't even really make sense wtf

  • @detectiveinspekta
    @detectiveinspekta4 жыл бұрын

    I'm still at a stage of writing one line of code and compiling. :(

  • @Okieah
    @Okieah4 жыл бұрын

    Cherno tutz for callback function please and MACRO callback

  • @BDYH-ey8kd
    @BDYH-ey8kd4 жыл бұрын

    Wish this could be done in embedded systems :/

  • @sirenti9384
    @sirenti93844 жыл бұрын

    Why am I getting the notification 2 minutes later and not at Upload time :(

  • @luaking84
    @luaking843 жыл бұрын

    +1 for A++

  • @englishmotherfucker1058
    @englishmotherfucker10584 жыл бұрын

    I thought this was about calculus well fuck

  • @NathanHedglin

    @NathanHedglin

    Жыл бұрын

    😂

  • @yashjoshi
    @yashjoshi3 жыл бұрын

    "so here we have a repository inside a butt.." wait what?!!

  • @zes3813
    @zes38132 жыл бұрын

    no such thing as sorryx about it, voice any nmw and any s perfx, doesnt matter

  • @user-gl9yo8rz8k
    @user-gl9yo8rz8k4 жыл бұрын

    Yan Chernikov. Name looks like from Eastern Europe or ex-USSR. What is your native language?

  • @OmarChida

    @OmarChida

    4 жыл бұрын

    He is from Ukraine

  • @EnkoVlog

    @EnkoVlog

    4 жыл бұрын

    ​@@OmarChida I don't think so. Maybe his parents, but not he. Definitely his native language is English.

  • @xxtghxx
    @xxtghxx4 жыл бұрын

    Well Cherno is one of the best and i love all his videos. But don't get Linode, if you have no Credit Card. You need one ... You will just get spam E-Mails, that's all. And for all ... hey than get a credit card .... guys. Shut up, that are 40-60 Euro/Dollars. And sry for my bad English.

  • @powernemo
    @powernemo3 жыл бұрын

    If you submit code and you did not even took the time to compile it you should be arrested.

  • @atrumluminarium
    @atrumluminarium4 жыл бұрын

    So it's like version-control on steroids? Right?

  • @APaleDot

    @APaleDot

    4 жыл бұрын

    Nah, it's just an automated build system that runs every time you commit to version control.

  • @andrewfielden284
    @andrewfielden2844 жыл бұрын

    A developer committing code without first compiling it should be shot :)

  • @meto4545
    @meto4545 Жыл бұрын

    1:53

  • @mohamadmansoor3933
    @mohamadmansoor39332 жыл бұрын

    bugs maybe sometimes logical. Not a code not functional not hardware specific but it was logically implemented wrong functionality. Keep it up man.

  • @yashsaxena9
    @yashsaxena94 жыл бұрын

    Please make a Java series Tooo.... Like your c++ series!!!

  • @Natural_Mindset
    @Natural_Mindset4 жыл бұрын

    first!

  • @theairaccumulator7144

    @theairaccumulator7144

    4 жыл бұрын

    yay

  • @platinoob__2495
    @platinoob__24954 жыл бұрын

    3:05 EA, Electronic Arts, is this where you work, are you behind all the things people is blaming EA?(joking not blaming)

  • @valizeth4073

    @valizeth4073

    4 жыл бұрын

    IIRC he quit his work on EA.