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

Implement CI #26

Open
wants to merge 57 commits into
base: master
Choose a base branch
from
Open

Implement CI #26

wants to merge 57 commits into from

Conversation

User344
Copy link
Member

@User344 User344 commented Nov 28, 2024

This PR implements a CI workflow which is executed every time a PR is open, reopened or new commits are pushed.
The workflow will checkout HEAD of a pull request branch, and first things first check if formatting is correct.
Then it will run next steps:

  • Build library.
  • Build binary.
  • Build tests.
  • Build examples.
  • Run tests. (Only if building them was successful)

These all steps could be running on any OS (Linux, macOS, Windows), but since we don't have any cross-platform code right now, I've only left Linux.
If all of the steps succeed, github-actions bot will approve the PR.
If any of steps fail, github-actions bot will request changes and provide a meaningful information about steps that were ran.

All the formatting done using rustfmt from the latest stable Rust toolchain release.
All the building and running tests done using Rust version 1.81.0, which is our current MSRV.

This CI will run on every commit even for a draft PR. It is intended behavior. If you feel like it should be changed please do let me know.

Just like any other CI it can be skipped including [skip ci] or anything similar in commit message.

Here is an example of a failed output:
image

As you can see above, I print all the steps performed, even if they were successful.
There is also available a "non-verbose" mode as I call it which can be switched very easily in the code (if you prefer it over verbose), which will only show failed steps, like this:
image

And this is how a verbose mode looks for 3 platforms:
image

For more examples you can look here.

@User344 User344 added the enhancement New feature or request label Nov 28, 2024
@User344 User344 requested a review from artob as a code owner November 28, 2024 11:13
@User344
Copy link
Member Author

User344 commented Nov 28, 2024

To clarify:

  • The reason why Check formatting job failed is because this PR is based on older commit where master wasn't formatted yet.
  • The reason why Review PR job failed is because I am yet to ask Samuel to grant GitHub actions ability to review PRs.

@User344 User344 force-pushed the master branch 2 times, most recently from 4e4a304 to 91e65c4 Compare November 28, 2024 13:21
@User344
Copy link
Member Author

User344 commented Nov 28, 2024

After rebasing the branch everything now passes except Review PR, which fails due to workflow not having enough permissions because its not merged yet and just a PR. Everything should be fine after merging.

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

Successfully merging this pull request may close these issues.

1 participant