diff --git a/docs/Process_CI.md b/docs/Process_CI.md index d1605679..c1a0ebf9 100644 --- a/docs/Process_CI.md +++ b/docs/Process_CI.md @@ -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) @@ -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: @@ -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) @@ -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) @@ -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.