From 5bdb24208dece6cf7c10c8155ea0b893d57c1dcf Mon Sep 17 00:00:00 2001 From: manuel Date: Sat, 27 Sep 2025 08:08:40 +0800 Subject: [PATCH] Add [TA] JOJ preparation and testing process --- ...%5D-JOJ-preparation-and-testing-process.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 %5BTA%5D-JOJ-preparation-and-testing-process.md diff --git a/%5BTA%5D-JOJ-preparation-and-testing-process.md b/%5BTA%5D-JOJ-preparation-and-testing-process.md new file mode 100644 index 0000000..548c12a --- /dev/null +++ b/%5BTA%5D-JOJ-preparation-and-testing-process.md @@ -0,0 +1,59 @@ +# JOJ preparation and testing process + +## Preparation + + + +**Important.** Never release or make JOJ available before it has been fully tested. + +## Testing + +The first time JOJ is setup, make sure to run extensive tests in a separate test repository. When all tests are successful , create an orphan branch in `course-joj` with name `test-repoName`, where `repoName` corresponds to the name of the repository used by students. This new orphan branch must have the exact same structure as the repository used by students. For instance, if students have a `homework` repository, then call the branch `test-homework` and its content should have the exact same structure as the `homework` repository, e.g. one directory per homework with similar filenames, etc.. + + + + + +## Known issues + +### Gitea actions and LFS + +Bug: https://github.com/actions/checkout/issues/1830#issuecomment-2314758792 + +Solution: adjust the YAML workflow fot checkout LFS object separately. + +
Sample YAML worklow file. +```yaml +name: Run JOJ3 on Push +on: [push] + +jobs: + run: + runs-on: focs-ubuntu-latest-slim + container: + volumes: + - /home/tt/.config:/home/tt/.config + - /home/tt/.cache:/home/tt/.cache + - /home/tt/.ssh:/home/tt/.ssh + steps: + - name: Check out repository code + uses: actions/checkout@focs + with: + lfs: false + persist-credentials: 'true' + - name: Checkout lfs + run: | + git lfs install --local + AUTH=$(git config --local http.https://focs.ji.sjtu.edu.cn/.extraheader) + git config --local --unset http.https://focs.ji.sjtu.edu.cn/.extraheader + git config --local http.${{ gitea.server_url }}/${{ gitea.repository }}.git/info/lfs/objects/batch.extraheader "$AUTH" + git lfs pull + - name: run joj3 + run: | + sudo -E -u tt joj3 -conf-root /home/tt/.config/joj +``` + +
+ +### Memory sanitizer +