Skip to content

Commit

Permalink
Update Process_CI.md
Browse files Browse the repository at this point in the history
  • Loading branch information
igorpecovnik committed Aug 3, 2024
1 parent 272e7f1 commit 5e4aef0
Showing 1 changed file with 60 additions and 6 deletions.
66 changes: 60 additions & 6 deletions docs/Process_CI.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,62 @@
**Note**: Add ideas for process improvements as comments to the [Jira ticket](https://armbian.atlassian.net/browse/AR-2429).

Manual executing permissions are tied to [release manager](https://github.com/orgs/armbian/teams/release-manager) role within Armbian organization. Do you [want to help and take this role](https://calendly.com/armbian/office-hours)?

## Prepare build lists (anyone)

[https://github.com/armbian/os](https://github.com/armbian/os)

### Recommended images

Recommended images on download pages
![Standard support images](images/standard-support-images.png)

are defined via regular expression mapping file `exposed.map` :

Example:

```
bananapim7/archive/Armbian_[0-9].*Bananapim7_noble_vendor_[0-9]*.[0-9]*.[0-9]*_gnome-kisak_desktop.img.xz
bananapim7/archive/Armbian_[0-9].*Bananapim7_bookworm_vendor_[0-9]*.[0-9]*.[0-9]*_minimal.img.xz
```
### Build templates

They have definitions on what kind of images we want to build - for section or for one specific board:

```
userpatches/targets-release-apps.template
userpatches/targets-release-community-maintained.template
userpatches/targets-release-nightly.template
userpatches/targets-release-standard-support.template
```

From those templates we are [autogenerating](https://github.com/armbian/os/blob/main/.github/workflows/recreate-matrix.yml#L147-L438) YAML files, which are passed to build matrix as input. Make sure to review generated YAML files if they have wanted build targets with correct exensions enabled.

### Blacklisting

Autogeneration is excluded for boards that are on black lists:

```
userpatches/targets-automation.blacklist
userpatches/targets-automation-nightly.blacklist
```

We do this if we are not happy with the automation outcomes and want to define build targets in the template.

### Extensions

Each board variant can have additional extensions and they are defined in this file:

```
userpatches/targets-extensions.map
```

Example:

```
khadas-edge2,legacy:vendor:,ENABLE_EXTENSIONS="image-output-oowow,v4l2loopback-dkms,mesa-vpu"
```

## Prepare Standard Support images for release (release manager)

[![Build Standard Support Images](https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-standard-support.yml/badge.svg)](https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-standard-support.yml)
Expand Down Expand Up @@ -39,11 +95,9 @@ Generated images are uploaded to incoming folder [https://rsync.armbian.com/inco

### Aditional options

Generates stable images defined in [targets-release-standard-support.yaml](https://github.com/armbian/os/blob/main/userpatches/targets-release-standard-support.yaml). This file is [autogenerated](https://github.com/armbian/os/blob/main/.github/workflows/recreate-matrix.yml#L147-L438) from [targets-release-standard-support.template](https://github.com/armbian/os/blob/main/userpatches/targets-release-standard-support.template). Autogeneration is extended with use of [blacklist](https://github.com/armbian/os/blob/main/userpatches/targets-automation.blacklist) which is a list of boards that are excluded from automated generation, so we can define manual or leave out.
Generates stable images defined in [targets-release-standard-support.yaml](https://github.com/armbian/os/blob/main/userpatches/targets-release-standard-support.yaml).

Recommended images are defined via [RegEx mapping file](https://github.com/armbian/os/blob/main/exposed.map).

![Standard support images](images/standard-support-images.png)

We are generating several images for each download / hardware target. They are automatically sorted by sections:

Expand All @@ -55,7 +109,7 @@ Images generation can be customized:

- Framework build branch
- main (make images from trunk)
- v24.5 (previous stable release)
- vXX.X (previous stable release)
- Version override (leave empty for automatic bump)
- Board (make images for one board only)
- Maintainer (make images for selected maintainer)
Expand Down Expand Up @@ -104,7 +158,7 @@ Images generation can be customized:

- framework build branch
- main (make images from trunk)
- v24.5 (previous stable release)
- vXX.X (previous stable release)
- version override (use latest release number or leave empty for automatic bump)
- board (make images only for one board)
- maintainer (make images for selected maintainer)
Expand Down Expand Up @@ -147,7 +201,7 @@ This build job **needs to be successfully completed** in order to proceed genera

[![Build Nightly Images](https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-nightly.yml/badge.svg)](https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-nightly.yml)

Generates all nighly (Rolling Release) images defined in [targets-release-nightly.yaml](https://github.com/armbian/os/blob/main/userpatches/targets-release-nightly.yaml). This file is [autogenerated](https://github.com/armbian/os/blob/main/.github/workflows/recreate-matrix.yml#L147-L438) from [targets-release-nightly.template](https://github.com/armbian/os/blob/main/userpatches/targets-release-nightly.template). Autogeneration is extended with use of [blacklist](https://github.com/armbian/os/blob/main/userpatches/targets-automation-nightly.blacklist) which is a list of boards that are excluded from automated generation, so we can define manual or leave out.
Generates all nighly (Rolling Release) images defined in [targets-release-nightly.yaml](https://github.com/armbian/os/blob/main/userpatches/targets-release-nightly.yaml). This file is [autogenerated](https://github.com/armbian/os/blob/main/.github/workflows/recreate-matrix.yml#L147-L438) from [targets-release-nightly.template](https://github.com/armbian/os/blob/main/userpatches/targets-release-nightly.template).

This build job runs every day at 9 a.m. UTC and can also be run manually when needed. Download pages are refreshed [automatically](https://github.com/armbian/os/actions/workflows/webindex-update.yml) after successful build.

Expand Down

0 comments on commit 5e4aef0

Please sign in to comment.