Continuous Integration in C++

Sdílet
Vložit
  • čas přidán 28. 05. 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.

Komentáře • 145

  • @IsaacAsante17
    @IsaacAsante17 Před 4 lety +281

    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.

  • @Fobber92
    @Fobber92 Před 4 lety +139

    "My family will starve" 😂

  • @ryusaki6902
    @ryusaki6902 Před 4 lety +11

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

  • @TheChondriac
    @TheChondriac Před 4 lety +41

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

  • @pivotal-ai
    @pivotal-ai Před 4 lety +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.

  • @267praveen
    @267praveen Před 4 lety +42

    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 Před 3 lety +1

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

    • @RiverBeard
      @RiverBeard Před 3 lety +1

      @ThePrivateJoker no im just new to c++

    • @RiverBeard
      @RiverBeard Před 3 lety

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

    • @davibergamin5943
      @davibergamin5943 Před 2 lety

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

    • @RiverBeard
      @RiverBeard Před 2 lety +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

  • @applejuice1496
    @applejuice1496 Před 4 lety +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

  • @WellItsHarsh
    @WellItsHarsh Před 2 měsíci

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

  • @mazirius11
    @mazirius11 Před 4 lety +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!

  • @_Ani_
    @_Ani_ Před 4 lety +10

    10:14 A unique voice waiting for you

  • @sandipan17
    @sandipan17 Před 4 lety

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

  • @gauravawasthi7692
    @gauravawasthi7692 Před rokem

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

  • @nsmkhn
    @nsmkhn Před 4 lety

    Awesome video! Thank you Cherno!

  • @davidrubio.24
    @davidrubio.24 Před 2 lety +1

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

  • @mario_luis_dev
    @mario_luis_dev Před 2 lety +1

    The CI/CD workflow is just amazing

  • @GlassHouseBiking
    @GlassHouseBiking Před 4 lety

    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
    @Qualk9000 Před 4 lety +1

    Great video! Love the “awesoooooooooome”

  • @gvcallen
    @gvcallen Před 4 lety +3

    Please do a video on iterators!

  • @RobGirdler
    @RobGirdler Před 4 lety +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 Před 4 lety +9

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

  • @tm_digita
    @tm_digita Před 4 lety

    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
    @joshperry9468 Před 4 lety +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.

  • @thebarylowi
    @thebarylowi Před 4 lety +1

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

  • @badrbellaj1212
    @badrbellaj1212 Před 4 lety +6

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

  • @TheRoy714
    @TheRoy714 Před 4 lety +2

    Awesome tutorial!

  • @meltpoolmartin772
    @meltpoolmartin772 Před 4 lety

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

  • @chris27011986
    @chris27011986 Před 2 lety

    Awesome description

  • @CViniciusSDias
    @CViniciusSDias Před 3 lety +2

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

  • @ycombinator765
    @ycombinator765 Před rokem

    I absolutely love it!!!

  • @jeromeclintonjustin895

    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
    @princekm5902 Před 2 lety

    You deserve more subscribers.

  • @StefanHendriks
    @StefanHendriks Před 3 lety

    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-nk9ue Před 4 lety

    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
    @marbangens Před 4 lety +1

    My personal C++ psychologist

  • @sirynka
    @sirynka Před 4 lety +10

    2:52 otherwise my family is going to starve.

  • @RagTagPwner
    @RagTagPwner Před rokem

    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-fy2kt Před 4 lety

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

  • @SeanForeman
    @SeanForeman Před 4 lety +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.

  • @amrwael4990
    @amrwael4990 Před 4 lety

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

  • @NskLabs
    @NskLabs Před 2 lety

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

  • @MultiWiff
    @MultiWiff Před 3 lety

    What is the music being played in this video?

  • @ermakamre
    @ermakamre Před 4 lety

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

  • @graceoverall
    @graceoverall Před rokem

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

  • @MaraisRossouw
    @MaraisRossouw Před 4 lety

    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_alhadhrami Před 2 lety

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

  • @foxvulpes8245
    @foxvulpes8245 Před 4 lety +3

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

    • @stevenvanharen
      @stevenvanharen Před 4 lety

      Fox Vulpes Use cmake

    • @foxvulpes8245
      @foxvulpes8245 Před 4 lety

      @@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 Před 4 lety

      @@foxvulpes8245 Ah ok, in that case use mingw

  • @amrwael4990
    @amrwael4990 Před 4 lety

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

  • @wang_7665
    @wang_7665 Před rokem

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

  • @milo20060
    @milo20060 Před 2 lety

    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
    @42mix22 Před 4 lety

    Right after I needed it

    • @42mix22
      @42mix22 Před 4 lety

      Thanks tho, absolutely great video

  • @retroryuu7254
    @retroryuu7254 Před 4 lety +6

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

    • @nextlifeonearth
      @nextlifeonearth Před 4 lety +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 Před 4 lety

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

    • @nextlifeonearth
      @nextlifeonearth Před 4 lety

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

    • @retroryuu7254
      @retroryuu7254 Před 4 lety

      @@nextlifeonearth what i told them... xD

  • @burakbash
    @burakbash Před 4 lety

    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
    @toxicore1190 Před 4 lety +1

    lol, I just did this yesterday for my GitLab

  • @kapilverma2668
    @kapilverma2668 Před 4 lety +6

    Please make a video on CI on Windows and MSVC.

    • @coder2k
      @coder2k Před 4 lety

      This! +1

    • @kirasmith1147
      @kirasmith1147 Před 4 lety

      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 Před 4 lety

      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 Před 3 lety

      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
    @chakibchemso Před 4 lety +1

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

  • @muhammadaamirzaman
    @muhammadaamirzaman Před 4 lety

    Amazing

  • @junxiheng4039
    @junxiheng4039 Před 4 lety

    Awesome~~~

  • @lordmushroom723
    @lordmushroom723 Před 4 lety +1

    imagine having an abstraction over aws/azure

  • @ayush.kumar.13907
    @ayush.kumar.13907 Před 4 lety

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

  • @maximilianoraulmalvicino4844

    10:14 awesooome!

  • @yekna459
    @yekna459 Před 4 lety

    You forgot to link Jenkins in the description

  • @chakibchemso
    @chakibchemso Před 4 lety

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

  • @Caellyan
    @Caellyan Před 3 lety

    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
    @aradhayaarora6155 Před 3 lety

    Please make a video on complicated Regex

  • @BosakMaw
    @BosakMaw Před 4 lety

    do you work for Epic now?

  • @fxexile
    @fxexile Před 2 lety

    i want to see differentiation as well

  • @Stefan-tw3fo
    @Stefan-tw3fo Před 4 lety +3

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

    • @nextlifeonearth
      @nextlifeonearth Před 4 lety +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.

  • @AhmadHassan-ey6hp
    @AhmadHassan-ey6hp Před 4 lety

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

  • @jacob_90s
    @jacob_90s Před 4 lety +6

    Last time I was this early we were still using B

  • @ghazaleftekharian9349
    @ghazaleftekharian9349 Před 4 lety +1

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

  • @surferriness
    @surferriness Před 3 lety +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

  • @detectiveinspekta
    @detectiveinspekta Před 4 lety

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

  • @Okieah
    @Okieah Před 4 lety

    Cherno tutz for callback function please and MACRO callback

  • @BDYH-ey8kd
    @BDYH-ey8kd Před 4 lety

    Wish this could be done in embedded systems :/

  • @sirenti9384
    @sirenti9384 Před 4 lety +10

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

  • @luaking84
    @luaking84 Před 3 lety

    +1 for A++

  • @englishmotherfucker1058
    @englishmotherfucker1058 Před 4 lety +1

    I thought this was about calculus
    well fuck

  • @yashjoshi
    @yashjoshi Před 3 lety

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

  • @zes3813
    @zes3813 Před 2 lety

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

  • @user-gl9yo8rz8k
    @user-gl9yo8rz8k Před 4 lety

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

    • @OmarChida
      @OmarChida Před 4 lety

      He is from Ukraine

    • @EnkoVlog
      @EnkoVlog Před 4 lety

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

  • @xxtghxx
    @xxtghxx Před 4 lety

    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 Před 3 lety

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

  • @atrumluminarium
    @atrumluminarium Před 4 lety +2

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

    • @APaleDot
      @APaleDot Před 4 lety

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

  • @andrewfielden284
    @andrewfielden284 Před 4 lety

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

  • @meto4545
    @meto4545 Před rokem

    1:53

  • @mohamadmansoor3933
    @mohamadmansoor3933 Před 2 lety

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

  • @yashsaxena9
    @yashsaxena9 Před 4 lety

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

  • @Natural_Mindset
    @Natural_Mindset Před 4 lety +6

    first!

  • @platinoob__2495
    @platinoob__2495 Před 4 lety

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