Skip to content
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

Create build-only CI workflow #935

Closed
wants to merge 1 commit into from
Closed

Conversation

dymk
Copy link
Collaborator

@dymk dymk commented Jun 22, 2023

Followup to discussion on Discord regarding having a CI pipeline for FluidNC.

Summary

This CI workflow triggers a Github action to:

  • Install PlatformIO at a known version (modulo minor revision)
  • Runs against Windows, Linux, and MacOS
  • Builds a number of PlatformIO environments

The PlatformIO environments built are initially noradio, wifi, and bt. It is easy to include additional environments, but in the spirit of having a CI which balances speed with catching true-positive failures, we select only these three.

In addition, there is support for additional "_s2", "_s3" variants, but for this initial CI pipeline, they are not built, as they greatly increase CI time.

Timing

CI is relatively fast with a warm cache.

  • Linux: ~3 minutes
  • MacOS: ~3 minutes
  • Windows: ~5 minutes

The build matrix does not run fully in parallel (free-tier resource limitations), so a full run takes ~8 minutes.

Example

My fork of FluidNC has this action enabled. Here's an example PR opened against that fork, to demonstrate the Checks ran against the changed code: dymk#1

Example action run logs: link

This CI workflow triggers a Github action to:
- Install PlatformIO at a known version (modulo minor revision)
- Runs against Windows, Linux, and MacOS
- Builds a number of PlatformIO environments

The PlatformIO environments built are initially noradio, wifi, and bt.
It is easy to include additional environments, but in the spirit of having
a CI which balances speed with catching true-positive failures, we select
only these three.

In addition, there is support for additional "_s2", "_s3" variants, but
for this initial CI pipeline, they are not built, as they greatly increase
CI time.
@MitchBradley
Copy link
Collaborator

It would be nice if the CI workflow exported the firmware.bin files as artifacts, so one could grab one for testing. It would not be necessary to do it from every build platform, just one each of the bt, wifi, and noradio builds. Would you be willing to add that feature?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants