GitHub Actions now includes built-in CICD

GitHub Actions now supports CI/CD, free for public repositories

Image of Nat Friedman

GitHub Actions is an API for cause and effect on GitHub: orchestrate any workflow, based on any event, while GitHub manages the execution, provides rich feedback, and secures every step along the way. With GitHub Actions, workflows and steps are just code in a repository, so you can create, share, reuse, and fork your software development practices.

Since we introduced GitHub Actions last year, the response has been phenomenal, and developers have created thousands of inspired workflows. But we’ve also heard clear feedback from almost everyone: you want CI/CD! And that’s what we’re announcing today.

We hope you’ll try out the beta before GitHub Actions is generally available on November 13. We can’t wait to hear what you think!

Sign up for the beta

Fast CI/CD for any OS, any language, and any cloud

GitHub Actions now makes it easier to automate how you build, test, and deploy your projects on any platform, including Linux, macOS, and Windows. Run your workflows in a container or in a virtual machine. Actions also supports more languages and frameworks than ever, including Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android, and iOS. Testing multi-container apps? You can now test your web service and its database together by simply adding some docker-compose to your workflow file.

Matrix builds

Matrix builds let you easily test multiple versions of your project in parallel. Add a few lines to the Actions YAML file, and let GitHub take care of the rest.

jobs:
  test:
    name: Test on node ${{ matrix.node_version }} and ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        node_version: [8, 10, 12]
        os: [ubuntu-latest, windows-latest, macos-latest]

    steps:
    - uses: actions/checkout@v1

    - name: Use Node.js ${{ matrix.node_version }}
      uses: actions/setup-node@v1
      with:
        version: ${{ matrix.node_version }}
    
    - name: npm install, build and test
      run: |
        npm install
        npm run build --if-present
        npm test

Live logs show you real-time feedback

Live logs provide rich feedback into the progress of your builds as they run. GitHub streams your logs to the Actions console to show your status in real time. Logs are formatted for easy reading, including emojis. 🎉

And you can deep-link to any line in any log file with a clean and simple permalink, making it easy for you to discuss a build failure or test result with a friend.

Live logs stream your workflow as it happens.

Write and reuse actions and workflows like code

GitHub Actions are code—so you can edit, reuse, share, and fork them like code. When you fork a repository, you fork the actions along with the source code, giving you a seamless way to test and build projects using the same Actions as the original project. We think this is a great way to learn from the community, by reproducing every step of your favorite projects, then forking them to suit your own requirements.

Actions uses a clean new syntax for expressing workflows based on YAML. You can reuse actions and workflows by referring to them as simple repository references, making it easy to stitch them together into powerful workflows. Write them in JavaScript or create a container Action—both can interact with the full GitHub API and any other public API.

You can also reuse a rich ecosystem of Actions from our partners, such as LaunchDarkly, mabl, Code Climate, GitKraken, or even trigger builds on other CI providers, like CircleCI.

Automate workflows on any event—even your own

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. Actions workflows can be triggered on events from across the developer life cycle on GitHub. Any GitHub App can now add its own custom events, so developers and partners can customize GitHub to meet the needs of any project.

Build on an integrated package and container registry

Publishing packages and containers are a key part of any CI/CD workflow, such as open source libraries or deploying a large web service. GitHub Actions makes it easy to publish and consume packages from GitHub Package Registry or any other registry. As developers gain access to Actions, they’ll also have access to GitHub Package Registry before general availability to automate entire workflows across issues and code, from build to deployment.

Suggested workflows make it easy to get started

We want to make it as easy as possible for you to get started with CI/CD. Now when you enable Actions for your repository, GitHub will suggest Actions workflows that are appropriate for your project.

Suggested workflows help you get started with CI/CD and GitHub Actions by drawing from projects like yours.

Simple, pay-as-you-go pricing

We want every open source project to be productive and use best practices, so Actions is free for the 40 million developers on GitHub to use with public repositories. For private repositories, Actions offers simple, pay-as-you-go pricing. If you want to run on your own hardware or another cloud, our self-hosted runners are free to use. And during the beta, Actions is free for everyone. For full details, see the pricing section on the sign up page.

What’s next for Actions?

There’s a lot to be excited about in this update to Actions, and there’s lots more to come. Here are some of the highlights:

  • Self-hosted runners. If you already have your own VMs within your data centers or as instances you manage in the cloud, you can use Actions to automate your workflows with the same simplicity and speed. Install the Actions runner on your VM and register them with Actions. Workloads that execute on self-hosted runners are free.
  • Actions for GitHub Enterprise Server. Next year, we’ll make Actions available to our GitHub Enterprise Server customers, including a hybrid option for on-premises deployments that keeps your code and packages in your data center while GitHub orchestrates your workflows.

Sign up for the beta

We’re excited to make this new version of Actions available. Learn more and sign up for the beta, which is free now until we make Actions generally available at GitHub Universe on November 13.