Files
start-os/.github/workflows/README.md
Thomas Moerkerken 70baed88f4 add x86 build and run unittests to backend pipeline (#1682)
* add build backend for x86_64

* remove unnecessary build steps

* install backend dependency

* build and run backend unittest

* fix cache key

* buildx is required, qemu is not.

* Add missing steps from Makefile

* fix build_command var is unused

* select more common test env

* update pipeline names and docs

* use variable for node version

* use correct artifact name

* update pipeline references

* skip unittest that needs ca-cert installed

* correct pipeline name

* use nextest pre-built binary; add term color

* fix cache permissions warning

* update documentation
2022-08-18 10:24:17 -06:00

1.5 KiB

This folder contains GitHub Actions workflows for building the project

backend

Runs: manually (on: workflow_dispatch) or called by product-pipeline (on: workflow_call)

This workflow uses the actions and docker/setup-buildx-action@v1 to prepare the environment for aarch64 cross complilation using docker buildx. When execution of aarch64 containers is required the action docker/setup-qemu-action@v1 is added. A matrix-strategy has been used to build for both x86_64 and aarch64 platforms in parallel.

Running unittests

Unittests are run using cargo-nextest. First the sources are (cross-)compiled and archived. The archive is then run on the correct platform.

frontend

Runs: manually (on: workflow_dispatch) or called by product-pipeline (on: workflow_call)

This workflow builds the frontends.

product

Runs: when a pull request targets the master or next branch and when a change to the master or next branch is made

This workflow builds everything, re-using the backend and frontend workflows. The download and extraction order of artifacts is relevant to make, as it checks the file timestamps to decide which targets need to be executed.

Result: eos.img

a note on uploading artifacts

Artifacts are used to share data between jobs. File permissions are not maintained during artifact upload. Where file permissions are relevant, the workaround using tar has been used. See (here)[https://github.com/actions/upload-artifact#maintaining-file-permissions-and-case-sensitive-files].