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

Fix #289, Add RTEMS build and test workflows #290

Merged

Conversation

nmullane
Copy link
Contributor

@nmullane nmullane commented Jul 1, 2021

Add two workflows for building and testing cFS in both RTEMS 4.11 and 5
Add scripts folder into .github for running all unit tests inside QEMU
Use dockerhub to store docker image containing all QEMU and RTEMS
toolchain and dependencies

Checklist (Please check before submitting)

Describe the contribution

  • Added two GitHub Actions workflows to build and test cFS in RTEMS 4.11 and RTEMS 5.
  • Added two bash scripts which are used in the new workflows to run every unit test in QEMU and to generate the logs for the unit tests.
  • Created two docker images which are used in GitHub Actions to run the tests without having to install and configure QEMU and RTEMS.
    • The source Dockerfiles are located here and the images can be found here.

Testing performed
Steps taken to test the contribution:

  1. Tested the behavior of the added workflows in GitHub Actions.
  2. The latest runs show that not all unit tests are capable of passing in the RTEMS configuration.
    1. RTEMS 4.11 workflow run
    2. RTEMS 5 workflow run

Expected behavior changes
There is no expected behavior change. Additions were only made in the .github folder

System(s) tested on

  • GitHub Actions ubuntu 18.04 runner

Additional context

Code contributions
The only code contributions are in the .github folder.

Contributor Info - All information REQUIRED for consideration of pull request
Niall Mullane - GSFC 582 Intern

Copy link
Contributor

@jphickey jphickey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a few suggestions of things that can simplify. I also have some command templates/makefiles to generate the "cow" images that are used to provide a filesystem, which I can provide as needed.

.github/scripts/qemu_test.sh Outdated Show resolved Hide resolved
.github/workflows/build-cfs-rtems4.11.yml Outdated Show resolved Hide resolved
.github/workflows/build-cfs-rtems5.yml Outdated Show resolved Hide resolved
@nmullane nmullane force-pushed the interns-8-add-rtems-testing branch from 045b28e to e253919 Compare July 12, 2021 15:16
@astrogeco
Copy link
Contributor

@nmullane is this ready for CCB review?

@nmullane nmullane force-pushed the interns-8-add-rtems-testing branch from e253919 to 59e2224 Compare July 14, 2021 14:02
@nmullane
Copy link
Contributor Author

@astrogeco This should be ready for CCB review once I clean up the git commit history.

@nmullane nmullane force-pushed the interns-8-add-rtems-testing branch from 59e2224 to 441eba4 Compare July 14, 2021 14:12
@astrogeco
Copy link
Contributor

Hey Niall, can you amend or fixup your commits to match the Fix #XYZ, DESCRIPTION format? you're 95% there with your current ones. Just missing a comma.

@astrogeco astrogeco added the CCB:Ready Pull request is ready for discussion at the Configuration Control Board (CCB) label Jul 14, 2021
@nmullane nmullane force-pushed the interns-8-add-rtems-testing branch from 441eba4 to 16ed8f6 Compare July 14, 2021 16:13
@nmullane nmullane changed the title Fix #289 Add RTEMS build and test workflows Fix #289, Add RTEMS build and test workflows Jul 14, 2021
@astrogeco
Copy link
Contributor

astrogeco commented Jul 14, 2021

CCB:2021-07-14 APPROVED with CHANGES

  • need to move some files into the container to make the modules test pass
  • Where do we want to keep the scripts?
  • Do we want to set up a docker registry?
  • All unit tests respond with a "BUG Summary" message which is intended behavior because the tests invoke error messages

@nmullane nmullane force-pushed the interns-8-add-rtems-testing branch from 6b423ee to f604c7f Compare July 21, 2021 15:38
.github/scripts/common-test.mk Outdated Show resolved Hide resolved
@astrogeco
Copy link
Contributor

CCB:2021-07-21

  • Figure out how to pull test list from cmake and ctest instead of hardcoding it
  • Add jphickey as a coauthor in git commit where appropriate
  • Add '-k' option to make so it doesn't "stop" on failure and runs all tests
  • Wildcard approach might work
    • How to exclude network ones? It might work when they return "not implemented"
    • The osal network functions are implemented but depend on the psp, it will work if booted with cFE but not if booted straight into osal
    • Need a mechanism to run tests with more appropriate psp environment @jphickey to link error

@astrogeco astrogeco marked this pull request as ready for review July 26, 2021 19:34
@astrogeco
Copy link
Contributor

@nmullane can you squash the last three commits and add the "Fix #" prefix?

@nmullane nmullane force-pushed the interns-8-add-rtems-testing branch from 64272bb to 41f8974 Compare July 26, 2021 23:47
@astrogeco
Copy link
Contributor

@jphickey is this good to go?

@astrogeco
Copy link
Contributor

CCB:2021-07-28 APPROVED with minor change

  • Update workflows readme
  • Open issue to add a big-endian CPU qemu using the makefile

@astrogeco astrogeco added CCB:Approved Indicates code review and approval by community CCB and removed CCB:Ready Pull request is ready for discussion at the Configuration Control Board (CCB) labels Jul 28, 2021
Add two workflows for building and testing cFS in both RTEMS 4.11 and 5
Add scripts folder into .github for running all unit tests inside QEMU
Use dockerhub to store docker image containing all QEMU and RTEMS
toolchain and dependencies

Address PR comments by jphickey:
  Remove monitoring of stdout by correctly using batch-mode option
  Correctly use make SIMULATION variable instead of manually modifying
  targets.cmake during the actions workflow.

Address PR comments by zanzaben:
  Remove forgotten targets.cmake target system

Use makefile to run qemu tests and create qemu disk images instead of
shell scripts

Use wildcard matching to find and run all unit tests. Skip network tests
that fail with the SKIP_NET_TESTS flag.

Clean .mk scripts, ignore failing network tests

Run network tests to see github failure behavior

Remove  from output failed tests step

Update Workflow README
@nmullane nmullane force-pushed the interns-8-add-rtems-testing branch from 41f8974 to 613eb07 Compare July 28, 2021 17:03
@astrogeco astrogeco changed the base branch from main to integration-candidate July 29, 2021 18:59
@astrogeco astrogeco merged commit c0434cd into nasa:integration-candidate Jul 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CCB:Approved Indicates code review and approval by community CCB
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add RTEMS build and test to CI
4 participants