P4 Blog

  • October 24, 2016

    DevOps Digest Issue 204 Graphic

    After creating our sample application last week and getting it stored in our version control platform, Perforce Helix, we’re finally ready to create a Jenkins project to build it every time we submit a change into the mainline. The challenges we overcome should provide a solid foundation for discussing more advanced CI topics later. But this week, we’ll demonstrate common problems and pitfalls when configuring projects in Jenkins so that you’re better equipped to handle them.

  • October 21, 2016

    P4Python and the Python logging API

    Many of the P4Python scripts I have encountered (and written myself) are simple triggers or little utilities that typically do not require logging. Occasionally, though, some of these scripts become complex projects performing a multitude of functions and invoking many different Perforce commands. Debugging these scripts and performing any kind of post-mortem in case of a failure then becomes a challenge. Logging has been provided to address these challenges.


    Python has an impressive logging API that has been described elsewhere, so I just want to highlight the bits I need for this post.


    For example:


    Posted In:
  • October 10, 2016

    DevOps Digest 203 Graphic

    Last week in DevOps Digest 202, we made sure failure would NOT be an option, by setting up your development environment with the right tools, such as Visual Studio and Jenkins, for DevOps success.

    With all the work we’ve done, it’s time to do some actual coding and start seeing some payoff. So let’s create a new application and get the source code under version control.

    Posted In:
  • October 10, 2016

    Graphic for DevOps Digest 202

    It’s time for us to start setting up. We need to provision some hardware to receive the software essential to building out our DevOps pipeline. We’ve created a single, virtual machine (VM) with Windows 2012 Server. Its network name is DevOps with a single user named Perforce.

    Posted In:
  • October 04, 2016

    DevOps Digest 201 image


    In this issue, we’ll consider what it takes to create a fully functioning continuous integration (CI) system, before building a sample project that’s simple, but still designed with the complexity of today’s development burdens in mind. Don’t worry if you’re not a DevOps wizard, it will be easier than you think!


    Sample Design

    With an eye toward honoring the origins of the DevOps movement, we’ll choose a web application for our sample project.

    Posted In:
  • September 27, 2016

    DevOps Digest 103 image


    Do You Do DevOps?

    DevOps is not one size fits all. I’ve seen organizations apply what seem like universal DevOps axioms only to be deeply disappointed and walk away from the entire project as a result.

    Plenty of organizations still depend, sometimes crucially, on complicated legacy applications. You cannot purchase an all-in-one DevOps toolkit and drop a monolithic monster into it for magical results. A multi-million-line, legacy C++ application is different than a web application and requires altering your approach and expectations.

    Posted In: