Skip to content

Releases: BYUComputingBootCampTests/makeTest

Make Test Version 1.0

16 Jul 17:55
244a2f1
Compare
Choose a tag to compare
  • Setup
    • Users will need to fork the repository, push their changes to their fork, and then submit a PR for their code to be tested.
    • If the user wants to resubmit their code after pushing more changes, they'll have to submit a new pull request if their old one has already been checked.
    • The pass-off workflows will run without ever having to merge the PR, and so the repository will stay constant during any testing.
    • The repository contains .cpp and .h files for use with the pass-off workflows to ensure proper code, and for the users to be able to debug their code on their local machine.
    • The .github and .cbc folders contain yaml and JavaScript files that implement testing functionality.
    • The MakeFiles folder contains text files that will hold the user's code.
  • Testing
    • Testing workflows are scheduled to run every 5 minutes, will trigger slower than that due to issues with Github Actions.
    • Every time the testing workflows are triggered, they will run checks on the oldest 12 PRs, in the order received.
    • Requires implementation of 2 Makefiles
    • First Makefile needs to run, and the resulting executable needs to generate correct output. Also needs a clean rule that deletes the executable. Cannot use variables, automatic variables, pattern matching, or Makefile functions.
    • Second Makefile needs to run, and the resulting executable needs to generate correct output. Also needs to generate a "compiled.txt" file that contains the names of all the files used to generate the executable. Needs a %.o pattern matching rule for generating %.o files for the $(TARGET) rule. Also needs a clean rule for deleting all the files generated by the Makefile. The words "main", "leaves", "Leaves", "roots", "Roots", "branches", or "Branches" cannot be used in this Makefile.
    • Results of the testing will be logged as comments on the Pull Request, to show which parts of the test that the code passed, and which part the code may have failed at.
    • PRs will automatically be closed after testing, will be given the "currentlyBeingChecked" label while testing, and will have the "check Complete" label after testing.
  • Issuing
    • Will issue the Make badge found on Badgr to users whose code passes the workflow tests. It will be issued to the email provided in the email.txt file.
    • If tests pass, but Issuing fails, the user will be notified through comments on the Pull Request.
  • Security
    • Sensitive Information for interacting with the GitHub API and the Badgr API are stored as GitHub Secrets in the repository.
    • The repository only pulls the necessary files from the PR, and so any changes to workflow files in an attempt to cheat or pull sensitive information will fail.
    • The repository doesn't accept any direct pushes, and requires approval from BYUComputingBootCampTests to merge pull requests when any files are changed, so the repository is protected from any malicious attempts to change it.