From f98f6d1fd06d28670b346825f6f02c0cae02108a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 09:27:30 +0000 Subject: [PATCH] docs: explain what the CI does (#11464) (#11497) (cherry picked from commit e4da05a0557fab4e066d3020ffda8746bf77772f) Co-authored-by: Victor Martinez --- .github/workflows/README.md | 53 +++++++++++++++++++++++++++++++++++++ README.md | 3 ++- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/README.md diff --git a/.github/workflows/README.md b/.github/workflows/README.md new file mode 100644 index 00000000000..982ca13939f --- /dev/null +++ b/.github/workflows/README.md @@ -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. diff --git a/README.md b/README.md index e580558badf..12bf23907bf 100644 --- a/README.md +++ b/README.md @@ -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