Now CI/CD can get a better piece of the Actions: GitHub expands automation service to build, test, deploy tools
It's Microsoft so: Embrace, extend, something else beginning with ex?
Microsoft's social code biz GitHub on Thursday said its automation system, GitHub Actions, will now play real nice with third-party continuous integration and continuous deployment tools, a duo better known among IT types by its stage name, CI/CD.
Actions emerged in beta in October, and is slated for general availability on November 13 this year. It is free for public GitHub repos, though it subject to certain usage limits and prohibitions on serverless computing, cryptomining, and other undesirable behavior spelled out under GitHub's Terms of Service and Community Guidelines.
GitHub Actions and CI/CD are both ways to automate software development tasks. Actions, as expected, excels at interacting with GitHub, while independent CI/CD tools, such as Jenkins and Travis, do not have a favored platform nor built-in support for platform-specific events. GitHub, essentially, announced today that Actions now has much wider support for these external tools, and your own custom scripts and installations, as well as tightly integrating it with GitHub services.
"GitHub Actions can plug into any part of the software lifecycle and integrates with many CI/CD tools developers use today," said Max Schoening, senior director of product design at GitHub, in an email to The Register. "It supports any language, any platform, and any cloud."
"GitHub Actions helps you build, test, and deploy applications, but you can also use it to automate other tasks common to your developer workflows: triaging and managing issues, automating releases, collaborating with your user base, and more," said GitHub CEO Nat Friedman in a blog post. "Actions workflows can be triggered on events from across the developer life cycle on GitHub."
Join us at Serverless Computing London: We'll get you up and running FaaS-er for lessREAD MORE
We should point out that Actions enables a broader spectrum of automation tasks than CI/CD, which generally is used to automate code compilation, validation, testing, building, and deployment. Actions are declared in YAML (.yml) files (the HCL syntax has been deprecated) and can interact with the GitHub API or other public API endpoints.
The items in a workflow get executed in a GitHub-hosted virtual machine or in a Docker container, and each job in a workflow can be isolated in its own virtual environment, which makes debugging more straightforward than trying to identify problems in a CI/CD script that does everything in a single environment.
Actions still has some rough spots, like limited support for caching (which helps speed up CI/CD tasks), lack of support for pull requests from forks, and potential security concerns. But you'll not find such gripes among the set of effusive customer quotes sent out by GitHub's public relations hired guns. For example:
"GitHub Actions empowers teams to define highly advanced pipelines without losing the focus on simplicity," said Jeroen Knoops, senior software engineer at Philips, or so we're told. "It brings the power of the pipeline as code, matrix builds, and predefined environment together in one place. GitHub Actions makes it possible to build and share workflows via reusable steps and delivers what’s required to build the next-generation CI/CD pipeline."
Those not pre-selected to say nice things sound a bit more wary about GitHub's interest in the CI/CD market. As Jim Rose, CEO of CI/CD vendor CircleCI, put it in a statement emailed to The Register, "GitHub has made a commitment to keeping [its] platform open to all partners, but only time will tell."
GitHub is now used by 40 million developers and that sort of scale generates gravity that limit the movement of smaller competitors.
While Actions is still in beta – meaning would-be users must petition for entrance – there's an extra incentive to ask: those granted beta access to the service also get a ticket to ride the GitHub Package Registry, the company's nascent storehouse for code modules. ®