Skip to content

Commit

Permalink
Refresh docs for GitHub Actions usage. (iree-org#18035)
Browse files Browse the repository at this point in the history
Progress on iree-org#16203 and
iree-org#17957.

New page preview:
https://scotttodd.github.io/iree/developers/general/github-actions/

## Overview

This documents the state of our GitHub Actions usage after recent
refactoring work. We used to have a monolithic `ci.yml` that ran 10+
builds on every commit, many of which used large CPU runners to build
the full project (including the compiler) from source. Now we have
platform builds, some of which run every commit but many of which run on
nightly schedules. Most interesting _test_ jobs are now a part of
"pkgci", which builds release packages and then runs tests using those
packages (and sometimes runtime source builds).

Net results:

* Infrastructure costs should be more manageable - far fewer workflow
runs will require powerful CPU builders
* Self-hosted runners with special hardware have dedicated places to be
slotted in and are explicitly not on the critical path for pull requests

## Details

* Add new README badges
* pre-commit, OpenSSF Best Practices, releases (stable, nightly), PyPI
packages, select CI workflows
* Add github-actions.md webpage
  * Full workflow status tables
  * Descriptions of each type of workflow
  * Tips on (not) using Docker
  * Information about `pull_request`, `push`, `schedule` triggers
  * Information about GitHub-hosted runners and self-hosted runners
  * Maintenance/debugging tips
* Small cleanup passes through related files

skip-ci: modified script does not affect builds
  • Loading branch information
ScottTodd authored Aug 5, 2024
1 parent 0f3bea2 commit 5ca6bee
Show file tree
Hide file tree
Showing 6 changed files with 408 additions and 20 deletions.
28 changes: 26 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,40 @@ constraints and special considerations of mobile and edge deployments.
See [our website](https://iree.dev/) for project details, user
guides, and instructions on building from source.

[![CI Status](https://github.com/iree-org/iree/actions/workflows/ci.yml/badge.svg?query=branch%3Amain+event%3Apush)](https://github.com/iree-org/iree/actions/workflows/ci.yml?query=branch%3Amain+event%3Apush)
[![IREE Discord Status](https://discordapp.com/api/guilds/689900678990135345/widget.png?style=shield)]([https://discord.gg/wEWh6Z9nMU](https://discord.gg/wEWh6Z9nMU))
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8738/badge)](https://www.bestpractices.dev/projects/8738)

#### Project Status

IREE is still in its early phase. We have settled down on the overarching
infrastructure and are actively improving various software components as well as
project logistics. It is still quite far from ready for everyday use and is made
available without any support at the moment. With that said, we welcome any kind
of feedback on any [communication channels](#communication-channels)!
of feedback on any [communication channels](#communication-channels)

#### Release status

| Package | Release status |
| -- | -- |
GitHub release (stable) | [![GitHub Release](https://img.shields.io/github/v/release/iree-org/iree)](https://github.com/iree-org/iree/releases/latest)
GitHub release (nightly) | [![GitHub Release](https://img.shields.io/github/v/release/iree-org/iree?include_prereleases)](https://github.com/iree-org/iree/releases)
Python iree-compiler | [![PyPI version](https://badge.fury.io/py/iree-compiler.svg)](https://badge.fury.io/py/iree-compiler)
Python iree-runtime | [![PyPI version](https://badge.fury.io/py/iree-runtime.svg)](https://badge.fury.io/py/iree-runtime)

#### Build status

[![CI](https://github.com/iree-org/iree/actions/workflows/ci.yml/badge.svg?query=branch%3Amain+event%3Apush)](https://github.com/iree-org/iree/actions/workflows/ci.yml?query=branch%3Amain+event%3Apush)
[![PkgCI](https://github.com/iree-org/iree/actions/workflows/pkgci.yml/badge.svg?query=branch%3Amain+event%3Apush)](https://github.com/iree-org/iree/actions/workflows/pkgci.yml?query=branch%3Amain+event%3Apush)

| Host platform | Build status |
| -- | --: |
Linux | [![CI - Linux x64 clang](https://github.com/iree-org/iree/actions/workflows/ci_linux_x64_clang.yml/badge.svg?query=branch%3Amain+event%3Aschedule)](https://github.com/iree-org/iree/actions/workflows/ci_linux_x64_clang.yml?query=branch%3Amain+event%3Apush)<br>[![CI - Linux arm64 clang](https://github.com/iree-org/iree/actions/workflows/ci_linux_arm64_clang.yml/badge.svg?query=branch%3Amain+event%3Aschedule)](https://github.com/iree-org/iree/actions/workflows/ci_linux_arm64_clang.yml?query=branch%3Amain+event%3Aschedule)
macOS | [![CI - macOS x64 clang](https://github.com/iree-org/iree/actions/workflows/ci_macos_x64_clang.yml/badge.svg?query=branch%3Amain+event%3Aschedule)](https://github.com/iree-org/iree/actions/workflows/ci_macos_x64_clang.yml?query=branch%3Amain+event%3Aschedule)
Windows | [![CI - Windows x64 MSVC](https://github.com/iree-org/iree/actions/workflows/ci_windows_x64_msvc.yml/badge.svg?query=branch%3Amain+event%3Aschedule)](https://github.com/iree-org/iree/actions/workflows/ci_windows_x64_msvc.yml?query=branch%3Amain+event%3Aschedule)

For the full list of workflows see
https://iree.dev/developers/general/github-actions/.

## Communication Channels

Expand Down
4 changes: 4 additions & 0 deletions build_tools/scripts/get_latest_green.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ set -euo pipefail

commitish="${1:-HEAD}"

# TODO(scotttodd): update from ci.yml to new list
# * linux x64 clang
# * linux x64 clang asan
# * pkgci.yml?
declare -r REQUIRED_WORKFLOWS=(ci.yml)
declare -ar QUERY_PARAMS=(
branch=main
Expand Down
16 changes: 2 additions & 14 deletions docs/website/docs/developers/general/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,20 +293,8 @@ IREE supports building from source with both Bazel and CMake.
### :octicons-server-16: Continuous integration (CI)
IREE uses [GitHub Actions](https://docs.github.com/en/actions) for CI. The
primary CI is configured in the
[ci.yml workflow file](https://github.com/iree-org/iree/blob/main/.github/workflows/ci.yml).
#### Self-hosted runners
In addition to the default runners GitHub provides, IREE uses
[self-hosted runners](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners)
to run many of its workflow jobs. These enable access to additional compute and
custom configurations such as accelerators.
* Configuration for GCP runners is stored at
[`build_tools/github_actions/runner/`](https://github.com/iree-org/iree/blob/main/build_tools/github_actions/runner/)
* Configuration for other runners is done manually as needed
IREE uses [GitHub Actions](https://docs.github.com/en/actions) for CI. See
our [GitHub Actions documentation](./github-actions.md) for full details.
#### CI behavior manipulation
Expand Down
Loading

0 comments on commit 5ca6bee

Please sign in to comment.