Skip to content

Commit

Permalink
docs: explain what the CI does (#11464)
Browse files Browse the repository at this point in the history
(cherry picked from commit e4da05a)
  • Loading branch information
v1v authored and mergify[bot] committed Aug 28, 2023
1 parent 820cc02 commit dbfc2ed
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
53 changes: 53 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# CI/CD

There are 3 main stages that run on GitHub actions for every push or Pull Request:

* Linting
* Test
* System tests

There are some other stages that run for every push on the main branches:

* [Microbenchmark](./microbenchmark.yml)
* [Benchmarks](./benchmarks.yml)
* Packaging - see below.

## Scenarios

* Tests should be triggered on branch, tag and PR basis.
* Commits that are only affecting the docs files should not trigger any test or similar stages that are not required.
* **This is not the case yet**, but if Github secrets are required then Pull Requests from forked repositories won't run any build accessing those secrets. If needed, then create a feature branch.

## How to interact with the CI?

### On a PR basis

Once a PR has been opened then there are two different ways you can trigger builds in the CI:

1. Commit based.
1. UI based, any Elasticians can force a build through the GitHub UI

### Branches

Every time there is a merge to main or any release branches the main workflow will lint and test all for Linux, Windows and MacOS.

## Package

The packaging and release automation relies on the Unified Release process and Buildkite for generating the
`DRA` packages, for further details please go to [the buildkite folder](../../.buildkite/README.md).

## OpenTelemetry

There is a [GitHub workflow](./opentelemetry.yml) in charge to populate what the workflow run in terms of jobs and steps. Those details can be seen in
[here](https://ela.st/oblt-ci-cd-stats) (**NOTE**: only available for Elasticians).

## Smoke tests

Smoke tests are triggered based on a specific scheduler, see [smoke-tests-ess](./smoke-tests-ess.yml) and [smoke-tests-os](./smoke-tests-os.yml)
for further details.

## Bump automation

[updatecli](https://www.updatecli.io/) is the tool we use to automatically bump some of the dependencies related to
the [Elastic Stack versions](./bump-elastic-stack.yml) used for the different tests, the `elastic/Beats.git`
[specific version](./bump-elastic-stack.yml) used by the APM Server or the [Golang bump](./bump-golang.yml) automation.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[![Build Status](https://apm-ci.elastic.co/buildStatus/icon?job=apm-server/apm-server-mbp/main)](https://apm-ci.elastic.co/job/apm-server/job/apm-server-mbp/view/change-requests/job/main/)
[![ci](https://github.com/elastic/apm-server/actions/workflows/ci.yml/badge.svg)](https://github.com/elastic/apm-server/actions/workflows/ci.yml)
[![Smoke Tests](https://github.com/elastic/apm-server/actions/workflows/smoke-tests-schedule.yml/badge.svg)](https://github.com/elastic/apm-server/actions/workflows/smoke-tests-schedule.yml)
[![Package status](https://badge.buildkite.com/fc4aa824ffecf245db871971507275aa3c35904e380fef449c.svg?branch=main)](https://buildkite.com/elastic/apm-server-package)

# APM Server

Expand Down

0 comments on commit dbfc2ed

Please sign in to comment.