Free Trials

Download a free trial to find out which Altium software best suits your needs

How to Buy

Contact your local sales office to get started on improving your design environment

Downloads

Download the latest in PCB design and EDA software

  • PCB DESIGN SOFTWARE
  • Altium Designer

    Complete Environment for Schematic + Layout

  • CircuitStudio

    Entry Level, Professional PCB Design Tool

  • CircuitMaker

    Community Based PCB Design Tool

  • NEXUS

    Agile PCB Design For Teams

  • CLOUD PLATFORM
  • Altium 365

    Connecting PCB Design to the Manufacturing Floor

  • COMPONENT MANAGEMENT
  • Altium Concord Pro

    Complete Solution for Library Management

  • Octopart

    Extensive, Easy-to-Use Component Database

  • PRODUCT EXTENSIONS
  • PDN Analyzer

    Natural and Effortless Power Distribution Network Analysis

  • See All Extensions
  • EMBEDDED
  • TASKING

    World-Renowned Technology for Embedded Systems Development

  • TRAININGS
  • Live Courses

    Learn best practices with instructional training available worldwide

  • On-Demand Courses

    Gain comprehensive knowledge without leaving your home or office

  • ONLINE VIEWER
  • Altium 365 Viewer

    View & Share electronic designs in your browser

  • Altium Designer 20

    The most powerful, modern and easy-to-use PCB design tool for professional use

    ALTIUMLIVE

    Annual PCB Design Summit

    • Forum

      Where Altium users and enthusiasts can interact with each other

    • Blog

      Our blog about things that interest us and hopefully you too

    • Ideas

      Submit ideas and vote for new features you want in Altium tools

    • Bug Crunch

      Help make the software better by submitting bugs and voting on what's important

    • Wall

      A stream of events on AltiumLive you follow by participating in or subscribing to

    • Beta Program

      Information about participating in our Beta program and getting early access to Altium tools

    All Resources

    Explore the latest content from blog posts to social media and technical white papers gathered together for your convenience

    Downloads

    Take a look at what download options are available to best suit your needs

    How to Buy

    Contact your local sales office to get started improving your design environment

    • Documentation

      The documentation area is where you can find extensive, versioned information about our software online, for free.

    • Training & Events

      View the schedule and register for training events all around the world and online

    • Design Content

      Browse our vast library of free design content including components, templates and reference designs

    • Webinars

      Attend a live webinar online or get instant access to our on demand series of webinars

    • Support

      Get your questions answered with our variety of direct support and self-service options

    • Technical Papers

      Stay up to date with the latest technology and industry trends with our complete collection of technical white papers.

    • Video Library

      Quick and to-the-point video tutorials to get you started with Altium Designer

    Continuous Deployment: An Implementation Using Altium Designer

    Ari Mahpour
    |  October 16, 2019

    In Continuous Integration and Deployment in ECAD we discussed the concept of Continuous Deployment within a build system. In this article, we will take a deeper look at how to set up continuous delivery and deployment systems so your team and vendors can enjoy a continuous stream of updated ECAD packages for review.

    Continuous Deployment/Delivery: Revisited

    In Continuous Integration: An Implementation Using Altium Designer we went through the details of your PCB design integrated into a build system. This entailed:

    1. Setting up Output Job files

    2. Writing Altium Designer scripts in Delphi to programmatically run the Output Job files

    3. Enabling your build system to run Altium Designer from the command line to generate the output files

    In this article, we address the next stage: delivery and deployment. The delivery and deployment stages take your generated output files and delivers/deploys them as packages for the “end customer.” In this case our customer can be ourselves, a teammate for review, a vendor, the QA department, or an actual customer.

    Continuous Deployment vs. Continuous Delivery

    In the application we are about to discuss, Continuous Deployment and Continuous Delivery function almost identically to each other with the exception that delivery requires an extra step to get into the customer’s hands. According to Atlassian, Continuous Deployment takes the generated outputs from your build environment and deploys them directly to the customer. Continuous Delivery, however, requires the team to actively deliver the package to the customer. Since our customer for this application can be, essentially, anyone (including ourselves), we will be referring to Continuous Deployment as our package delivery mechanism.

    Example: Team Collaboration

    Recall the example we gave in Continuous Integration: An Implementation Using Altium Designer. A team is looking for the latest and greatest PDF schematics, fabrication/assembly files, and/or STEP models. Despite not having finished your design, a portion of it is “good enough” for DFM review. Perhaps placement has been locked in so that a mechanical designer can use the latest version of your STEP model. Regardless, a deliverable package needs to be generated for this group to review your design files. The Continuous Deployment system will do exactly that for every build that it has run through. For some, this example makes a lot of sense, but for others this “Agile” approach isn’t very practical. A second example can be proposed that is more practical and also can help with business-client relationships.

    Example: Gun for Hire

    As a PCB design firm, your customer is constantly asking for updates on their design that you are currently laying out. Zipping up weekly “updates” and emailing them to the customer becomes a nuisance and can be time consuming. If we leverage our build system, which is already engaging in Continuous Integration, we can take it a step further to deliver ready-to-go packages for our customers and/or deploy it to them automatically. This means that every commit you make to the server, your customer will get a refreshed schematic, fabrication/assembly package, and other outputs that you have set up in your Output Job file. This can be deployed to a shared network drive or a place in the cloud. This also enables your customer to view design files and packages without having ECAD software installed (i.e. automatic PDF generation via the Output Job file). For some, this may not be very attractive (as they prefer to have control over what gets released to the customer), but for others this brings a whole new meaning to the word “transparency”. If one feels uncomfortable over an automated deployment to customers, they can first generate their build, deliver it within the group for review, and then deploy that package to the customer thereafter.

    Implementation

    Step 1: Configure your Output Job using the output files needed for your build system.

    Altium Designer screenshot showing configuration of output job needed for the build system

    Figure 1. Output Job configuration for generating fabrication files within build system

    (Taken from the “MiniPC” Altium Designer Example)

    Altium Designer screenshot showing configuration of output job needed for the build system

    Figure 2. Output Job configuration for generating assembly files within build system

    (Taken from the “MiniPC” Altium Designer Example)

    Step 2: Zip up the packages via command line. Install 7-Zip on your build machine and use the following command to zip up the package:

    7z a -tzip Fabrication.zip Fabrication/
    7z a -tzip Assembly.zip Assembly/
    

    Step 3: Configure deployment system to deploy current build and verify packages have been deployed.

    Atlassian Bamboo deployment system configuration screenshot showing script configuration.

    Figure 3. Bamboo deployment system configuration

    Atlassian Bamboo deployment system configuration screenshot showing deployment project summary.

    Figure 4. Example of deployments for a Bamboo build

    Atlassian Bamboo deployment system configuration screenshot showing your first release.

    Figure 5. Deployment status of Bamboo builds

    Step 4: Release automatically if set up as a Deployment and manually if set up as a Delivery.

     Atlassian Bamboo email notification after successful deployment.

    Figure 6. Email Notification: Release of automated deployment using Atlassian Bamboo

    Step 5: Take advantage of the linkage

    Atlassian Bamboo release screenshot showing linkage of deployment release to specific Jira tickets.

    Figure 7. Linkage of deployment release to specific Jira tickets

    Note that one Jira ticket has been resolved between Development (1.11) and Production (1.5).

    Conclusion

    In this investigation, we delved deeper into the concept of Continuous Deployment and Continuous Delivery systems. By setting up CI/CD we enable our team and/or customers to review our package deliverables, regardless of the stage we’re at. This process encourages greater collaboration and transparency across the team and to one’s customers.

    Would you like to find out more about how Altium can help you with your next PCB design? Talk to an expert at Altium or continue reading about using integrated PCB libraries and schematic capture with Altium Designer®.

    About Author

    About Author

    Ari is an engineer with broad experience in designing, manufacturing, testing, and integrating electrical, mechanical, and software systems. He is passionate about bringing design, verification, and test engineers together to work as a cohesive unit.

    most recent articles

    Back to Home