> ## Documentation Index
> Fetch the complete documentation index at: https://aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Operating an efficient Continuous Integration system

> Operate an efficient Bazel continuous integration system using setup-bazel on GitHub Actions and the bazel-examples reference workflow as a starting point.

## Example: plain GitHub Actions

The Bazel Rules Authors SIG maintains a shared Action that can setup Bazel:
[https://github.com/bazel-contrib/setup-bazel](https://github.com/bazel-contrib/setup-bazel)

You can see this in action in the bazel-examples repository:

[https://github.com/aspect-build/bazel-examples/blob/main/.github/workflows/ci.yaml](https://github.com/aspect-build/bazel-examples/blob/main/.github/workflows/ci.yaml)

## Exercise: get a CI status

Try making some edits in the bazel-examples repository.

Now you want to get a status from a remote service:

1. Create a fork on GitHub
2. Push your code to a branch
3. Create a Pull Request. You can make it a Draft, and close it after you're done experimenting.

Because we already have a basic working setup in `.github/workflows/ci.yaml`,
you should get a yellow status icon, with a pending CI run.

* Persistent vs. Ephemeral CI runners
* Remote Caching (and maybe Remote Build Execution)
* Buildcop: keeping it green
