Continuous Integration in C++

Поділитися
Вставка
  • Опубліковано 6 чер 2024
  • 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
    @IsaacAsante17 4 роки тому +282

    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 роки тому +7

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

    • @IsaacAsante17
      @IsaacAsante17 4 роки тому +4

      @@antoniocs8873 short and sweet

    • @WillFaustCuber
      @WillFaustCuber 4 роки тому

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

    • @nextlifeonearth
      @nextlifeonearth 4 роки тому +15

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

    • @zes3813
      @zes3813 2 роки тому

      wrrr

  • @Fobber92
    @Fobber92 4 роки тому +139

    "My family will starve" 😂

  • @ryusaki6902
    @ryusaki6902 4 роки тому +12

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

  • @TheChondriac
    @TheChondriac 4 роки тому +44

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

  • @applejuice1496
    @applejuice1496 4 роки тому +1

    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

  • @pivotal-ai
    @pivotal-ai 4 роки тому +6

    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.

  • @sandipan17
    @sandipan17 4 роки тому

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

  • @mazirius11
    @mazirius11 4 роки тому +45

    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!

  • @davidrubio.24
    @davidrubio.24 2 роки тому +1

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

  • @nsmkhn
    @nsmkhn 4 роки тому

    Awesome video! Thank you Cherno!

  • @gauravawasthi7692
    @gauravawasthi7692 Рік тому

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

  • @mario_luis_dev
    @mario_luis_dev 2 роки тому +1

    The CI/CD workflow is just amazing

  • @267praveen
    @267praveen 4 роки тому +43

    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 роки тому +1

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

    • @RiverBeard
      @RiverBeard 3 роки тому +1

      @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 роки тому +1

      @@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

  • @Qualk9000
    @Qualk9000 4 роки тому +1

    Great video! Love the “awesoooooooooome”

  • @_Ani_
    @_Ani_ 4 роки тому +10

    10:14 A unique voice waiting for you

  • @GlassHouseBiking
    @GlassHouseBiking 4 роки тому

    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!

  • @RobGirdler
    @RobGirdler 4 роки тому +1

    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
    @ShivamJha00 4 роки тому +9

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

  • @gvcallen
    @gvcallen 4 роки тому +3

    Please do a video on iterators!

  • @TheRoy714
    @TheRoy714 4 роки тому +2

    Awesome tutorial!

  • @meltpoolmartin772
    @meltpoolmartin772 4 роки тому

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

  • @tm_digita
    @tm_digita 4 роки тому

    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.

  • @thebarylowi
    @thebarylowi 4 роки тому +1

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

  • @WellItsHarsh
    @WellItsHarsh 3 місяці тому

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

  • @badrbellaj1212
    @badrbellaj1212 4 роки тому +6

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

  • @CViniciusSDias
    @CViniciusSDias 3 роки тому +2

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

  • @chris27011986
    @chris27011986 2 роки тому

    Awesome description

  • @princekm5902
    @princekm5902 2 роки тому

    You deserve more subscribers.

  • @ycombinator765
    @ycombinator765 Рік тому

    I absolutely love it!!!

  • @joshperry9468
    @joshperry9468 4 роки тому +2

    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.

  • @jeromeclintonjustin895
    @jeromeclintonjustin895 2 роки тому

    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?

  • @FreeDomSy-nk9ue
    @FreeDomSy-nk9ue 4 роки тому

    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?

  • @StefanHendriks
    @StefanHendriks 3 роки тому

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

  • @SeanForeman
    @SeanForeman 4 роки тому +2

    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.

  • @OnePiece-fy2kt
    @OnePiece-fy2kt 4 роки тому

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

  • @graceoverall
    @graceoverall Рік тому

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

  • @amrwael4990
    @amrwael4990 4 роки тому

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

  • @marbangens
    @marbangens 4 роки тому +1

    My personal C++ psychologist

  • @ermakamre
    @ermakamre 4 роки тому

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

  • @amrwael4990
    @amrwael4990 4 роки тому

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

  • @a_alhadhrami
    @a_alhadhrami 2 роки тому

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

  • @42mix22
    @42mix22 4 роки тому

    Right after I needed it

    • @42mix22
      @42mix22 4 роки тому

      Thanks tho, absolutely great video

  • @MultiWiff
    @MultiWiff 3 роки тому

    What is the music being played in this video?

  • @burakbash
    @burakbash 4 роки тому

    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.

  • @RagTagPwner
    @RagTagPwner Рік тому

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

  • @muhammadaamirzaman
    @muhammadaamirzaman 4 роки тому

    Amazing

  • @sirynka
    @sirynka 4 роки тому +10

    2:52 otherwise my family is going to starve.

  • @junxiheng4039
    @junxiheng4039 4 роки тому

    Awesome~~~

  • @NskLabs
    @NskLabs 2 роки тому

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

  • @chakibchemso
    @chakibchemso 4 роки тому +1

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

  • @MaraisRossouw
    @MaraisRossouw 4 роки тому

    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 :)

  • @yekna459
    @yekna459 4 роки тому

    You forgot to link Jenkins in the description

  • @chakibchemso
    @chakibchemso 4 роки тому

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

  • @foxvulpes8245
    @foxvulpes8245 4 роки тому +3

    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

  • @toxicore1190
    @toxicore1190 4 роки тому +1

    lol, I just did this yesterday for my GitLab

  • @ayush.kumar.13907
    @ayush.kumar.13907 4 роки тому

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

  • @lordmushroom723
    @lordmushroom723 4 роки тому +1

    imagine having an abstraction over aws/azure

  • @ghazaleftekharian9349
    @ghazaleftekharian9349 4 роки тому +1

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

  • @Caellyan
    @Caellyan 3 роки тому

    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.

  • @retroryuu7254
    @retroryuu7254 4 роки тому +6

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

    • @nextlifeonearth
      @nextlifeonearth 4 роки тому +1

      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

  • @wang_7665
    @wang_7665 Рік тому

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

  • @fxexile
    @fxexile 2 роки тому

    i want to see differentiation as well

  • @aradhayaarora6155
    @aradhayaarora6155 3 роки тому

    Please make a video on complicated Regex

  • @BosakMaw
    @BosakMaw 4 роки тому

    do you work for Epic now?

  • @Stefan-tw3fo
    @Stefan-tw3fo 4 роки тому +3

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

    • @nextlifeonearth
      @nextlifeonearth 4 роки тому +1

      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.

  • @milo20060
    @milo20060 2 роки тому

    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

  • @kapilverma2668
    @kapilverma2668 4 роки тому +6

    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

  • @AhmadHassan-ey6hp
    @AhmadHassan-ey6hp 4 роки тому

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

  • @sirenti9384
    @sirenti9384 4 роки тому +10

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

  • @maximilianoraulmalvicino4844
    @maximilianoraulmalvicino4844 9 місяців тому

    10:14 awesooome!

  • @jacob_90s
    @jacob_90s 4 роки тому +6

    Last time I was this early we were still using B

  • @surferriness
    @surferriness 3 роки тому +2

    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

  • @Okieah
    @Okieah 4 роки тому

    Cherno tutz for callback function please and MACRO callback

  • @detectiveinspekta
    @detectiveinspekta 4 роки тому

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

  • @BDYH-ey8kd
    @BDYH-ey8kd 4 роки тому

    Wish this could be done in embedded systems :/

  • @yashjoshi
    @yashjoshi 3 роки тому

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

  • @user-gl9yo8rz8k
    @user-gl9yo8rz8k 4 роки тому

    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.

  • @luaking84
    @luaking84 3 роки тому

    +1 for A++

  • @englishmotherfucker1058
    @englishmotherfucker1058 4 роки тому +1

    I thought this was about calculus
    well fuck

  • @atrumluminarium
    @atrumluminarium 4 роки тому +2

    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.

  • @meto4545
    @meto4545 Рік тому

    1:53

  • @zes3813
    @zes3813 2 роки тому

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

  • @xxtghxx
    @xxtghxx 4 роки тому

    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
    @powernemo 3 роки тому

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

  • @andrewfielden284
    @andrewfielden284 4 роки тому

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

  • @yashsaxena9
    @yashsaxena9 4 роки тому

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

  • @mohamadmansoor3933
    @mohamadmansoor3933 2 роки тому

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

  • @Natural_Mindset
    @Natural_Mindset 4 роки тому +6

    first!

  • @platinoob__2495
    @platinoob__2495 4 роки тому

    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 роки тому +1

      IIRC he quit his work on EA.