-
Notifications
You must be signed in to change notification settings - Fork 21
Update quick-start and documentation for ARM architecture and GitHub workflows #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,56 +1,98 @@ | ||
| ## GitHub Workflows | ||
|
|
||
| The following GitHub workflows are defined at the `.github/workflows` folder: | ||
| * `MicroShift RPM and Container Image Builder` in `build-rpms.yaml` | ||
| The GitHub Workflows are defined at the `.github/workflows` folder, including | ||
| pre-submit tests and software release procedures. | ||
|
|
||
| These workflows can be run under the [Actions](https://github.com/microshift-io/microshift/actions) | ||
| tab by the repository maintainers. Other contributors can | ||
| [create a fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#forking-a-repository) | ||
| from the [MicroShift Upstream](https://github.com/microshift-io/microshift) repository | ||
| and run existing or create new workflows in their private repository branches. | ||
| * Pre-submit tests are run automatically before a pull request can be merged | ||
| * Software release procedures can be run under the [Actions](https://github.com/microshift-io/microshift/actions) | ||
| tab by the repository maintainers, or scheduled for regular automatic execution | ||
|
|
||
| > Note: Contributors can create a fork from the [MicroShift Upstream](https://github.com/microshift-io/microshift) | ||
| > repository and run software release workflows in their private repository branches. | ||
|
|
||
| The remainder of this document describes the existing workflows and their functionality. | ||
|
|
||
| ### Release MicroShift RPMs and Container Images | ||
| ### Pre-submit Workflows | ||
|
|
||
| The workflows described in this section are run as a prerequisite for merging a | ||
| pull request into the main branch. If any of these procedures exit with errors, | ||
| the pull request cannot be merged before all the errors are fixed. | ||
|
|
||
| #### Builders | ||
|
|
||
| Build a MicroShift Bootc image from the `main` MicroShift source branch and the | ||
| latest published OKD version tag. Run this image to verify that all the MicroShift | ||
| services are functional. | ||
|
|
||
| The following operating systems are tested: | ||
| * Fedora, CentOS 9 and CentOS 10 for RPM packages and Bootc images | ||
| * Ubuntu for DEB packages | ||
|
|
||
| The following configurations are tested: | ||
| * The `x86_64` and `aarch64` architectures | ||
| * Isolated network for OVN-K and Kindnet CNI | ||
|
|
||
| #### Installers | ||
|
|
||
| Run the [Quick Start](../README.md#quick-start) procedure followed by the | ||
| [quick clean](./quickclean.sh) script invocation. | ||
|
|
||
| #### Linters | ||
|
|
||
| Run [ShellCheck](https://github.com/koalaman/shellcheck) on all shell scripts and | ||
| [hadolint](https://github.com/hadolint/hadolint) on all container files in the repository. | ||
|
|
||
| ### Software Release Procedures | ||
|
|
||
| #### MicroShift | ||
|
|
||
| The workflow implements a build process producing MicroShift RPM packages and Bootc | ||
| container image artifacts. It is executed manually by the repository maintainers - | ||
| no scheduled runs are configured at this time. | ||
|
|
||
| The following parameters determine the MicroShift source code branch and the OKD | ||
| container image dependencies used during the build process. | ||
| * [MicroShift (OpenShift) branch](https://github.com/openshift/microshift/branches) | ||
| * [OKD version tag](https://quay.io/repository/okd/scos-release?tab=tags) | ||
|
|
||
| The workflow implements a build process producing MicroShift RPM and Bootc | ||
| container image artifacts. | ||
| The following actions are supported: | ||
| * `rpms`: Build MicroShift RPM packages | ||
| * `bootc-image`: Build a MicroShift Bootc container image | ||
| * `all`: Build all of the above | ||
|
|
||
| The following parameters determine the MicroShift source code branch and OKD | ||
| container dependencies used during the build process. | ||
| * MicroShift branch from https://github.com/openshift/microshift/branches | ||
| * OKD version tag from https://quay.io/repository/okd/scos-release?tab=tags | ||
| > Note: After the Bootc container image is built, a workflow step checks it by | ||
| > attempting to run the container image and verifying that all the MicroShift | ||
| > services are functional. | ||
|
|
||
| The following actions are suppported. | ||
| * `rpms`: Builds the MicroShift RPM packages | ||
| * `bootc-image`: Builds the Bootc container images | ||
| * `okd-release-arm`: Builds an OKD release for the ARM architecture | ||
| * `all`: Builds all of the above | ||
| If the build job finishes successfully, the artifact download and installation | ||
| instructions are available at [Releases](https://github.com/microshift-io/microshift/releases). | ||
|
|
||
| Note: When the Bootc container images are built, one of the workflow steps tests | ||
| the validity of the produced artifacts by attempting to run the container image | ||
| and making sure all the MicroShift services are functional. | ||
| > Note: The available container images can be listed at [Packages](https://github.com/microshift-io/microshift/packages) | ||
| > and pulled from the `ghcr.io/microshift-io` registry. | ||
|
|
||
| If the build job finishes successfully, the build artifacts are available for | ||
| download in the following locations: | ||
| * [Releases](https://github.com/microshift-io/microshift/releases) for RPMs | ||
| * [Packages](https://github.com/microshift-io/microshift/packages) for container images | ||
| #### OKD on ARM | ||
|
|
||
| The container images can be pulled directly from the `ghcr.io/microshift-io` registry. | ||
| The workflow implements a build process producing a subset of OKD container image | ||
| artifacts that are required by MicroShift on the `aarch64` architecture. It runs | ||
| every day at 03:00 UTC to make sure ARM artifacts are available for the latest | ||
| OKD releases. | ||
|
|
||
| ### Presubmit Pull Request Verification | ||
| > Note: OKD `aarch64` builds are performed using MicroShift-specific build procedure | ||
| > until [OKD Build of OpenShift on Arm](https://issues.redhat.com/browse/OKD-215) | ||
| > is implemented by the OKD team. | ||
|
|
||
| The workflow is run as a prerequisite for merging a pull request into the main | ||
| branch. | ||
| The following parameters determine the MicroShift source code branch and the OKD | ||
| container image dependencies used during the build process. | ||
| * [MicroShift (OpenShift) branch](https://github.com/openshift/microshift/branches) | ||
| * [OKD version tag](https://quay.io/repository/okd/scos-release?tab=tags) | ||
|
|
||
| It implements the following verification procedures: | ||
| * Run `shellcheck` on all scripts in the repository | ||
| * Run `hadolint` on all container files in the repository | ||
| * Build and test MicroShift Bootc image on selected configurations | ||
| * Build and test MicroShift Debian Packages on Ubuntu | ||
| The default target registry for publishing OKD container image artifacts is | ||
| `ghcr.io/microshift-io/okd`. | ||
|
|
||
| Note: The Bootc image build is performed on the `main` MicroShift branch and the | ||
| latest published OKD version tag. | ||
| > Note: After the OKD container images are built, a workflow step checks them by | ||
| > creating a MicroShift Bootc image with the new artifacts, attempting to run it, | ||
| > and verifying that all the MicroShift services work. | ||
|
|
||
| If any of these procedures exit with errors, the pull request cannot be merged | ||
| before all the errors are fixed. | ||
| If the build job finishes successfully, the available container images can be listed | ||
| at [Packages](https://github.com/microshift-io/microshift/packages) and pulled from | ||
| the `ghcr.io/microshift-io` registry. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.