forked from ubccpsc/classy
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #99 from ubccpsc310/cs310_2023w1
2023W1/W2 Changes Everything tested and deployed in prod. Would be a good point for upstream to pull changes.
- Loading branch information
Showing
53 changed files
with
5,263 additions
and
3,659 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,161 +1,9 @@ | ||
# CPSC 310 | ||
|
||
## Note: this document is stale; better docs exist [here](https://github.students.cs.ubc.ca/CPSC310/project-resources/blob/master/docs/README.md) and [here](https://github.students.cs.ubc.ca/CPSC310/classy-cs310-plugin). | ||
## Note: this document is stale; better docs exist [here](https://github.students.cs.ubc.ca/CPSC310/project-resources/blob/master/docs/README.md) and [here](https://github.students.cs.ubc.ca/CPSC310/classy-cs310-plugin). | ||
|
||
A brief set of instructions for configuring Classy for 310. | ||
|
||
### Initial Setup | ||
|
||
* Request that the tech staff provision a VM and configure classy (including all required `autobot` tokens and the `github.student` org and `admin/staff` teams) for the term. | ||
* Visit the [classy instance](https://cs310.students.cs.ubc.ca), import the classlist (using the `Update Classlist` API button in the config tab), and provision the deliverables (at least `d0` as shown below). | ||
* Provision some repositories. | ||
|
||
<!-- | ||
* Request a VM from the tech staff by emailing `help@cs`. | ||
* Request a GitHub org from the tech staff by emailing `help@cs`. | ||
* In the org settings (under Member Privileges): | ||
* `Allow members to delete or transfer repositories for this organization` should be `false`. | ||
* `Allow members to change repository visibilities for this organization` should be `false`. | ||
* `Allow forking of private repositories` should be `false`. | ||
* Create a `staff` team; add all TAs to this team. | ||
* Create an `admin` team; add all faculty and `autobot` to this team. | ||
* Install Classy on the VM using the other instructions in this directory. | ||
--> | ||
|
||
### Monitoring Classy | ||
|
||
The VM should have monitoring configured by default: | ||
|
||
* Create tunnel on your machine: `ssh -L19999:localhost:19999 cs310.students.cs.ubc.ca` | ||
* Connect: `http://localhost:19999` | ||
|
||
### Configuring Classy | ||
|
||
* Create your Deliverables (`d0`, `d1`, `d2`, `d3`, `d4`, and `project`). The two deliverables that will provision repositories are `d0` and `project`. | ||
|
||
* `d0` deliverable settings: | ||
* Deliverable Id: `d0` | ||
* URL: https://github.com/ubccpsc/310/blob/<TERM BRANCH HERE>/project/Deliverable0.md | ||
* Visible: `true` (`false` if you're not quite ready to deploy, can change later) | ||
* Rubric: `{}` | ||
* Custom: `{}` | ||
* Open: _open date_; first day of class is fine | ||
* Close: _close date_; due date for project (usually around Sept 16 @ 1800) | ||
* Allow late AutoTest: `false` | ||
* Grades Released: `false` | ||
* Will Provision Repos: `true` | ||
* Import URL: `https://github.students.cs.ubc.ca/CPSC310/bootstrap.git` (make sure links in `bootstrap/README.md` are up-to-date) | ||
* Repo prefix: `''` (Repo name will be `d0_userXXX` for students, `d0_CWL` for staff) | ||
* Team prefix: `''` (Team name will be `d0_userXXX` for students, `d0_CWL` for staff) | ||
* Min size: `1` | ||
* Max size: `1` | ||
* Same lab: `true` | ||
* Students make teams: `false` | ||
* Will use AutoTest: `true` | ||
* Use `Create New image` to build your docker image (or select one if it has previously been created). | ||
* Container timeout: `300` (5 minutes) | ||
* Student Delay: `43200` (12 hours) | ||
* Regression Deliverables: `` (blank) | ||
* Custom Autotest Parameters: `{}` | ||
* `d1` deliverable settings: | ||
* Deliverable Id: `d1` | ||
* URL: _deliverable description url_ | ||
* Visible: `true` | ||
* Rubric: `{}` | ||
* Custom: `{}` | ||
* Open: _open date_; first day of class is fine | ||
* Close: _close date_ | ||
* Grades Released: `false` | ||
* Will Provision Repos: `false` | ||
* Will use AutoTest: `true` | ||
* Docker image name: `TBD: NICK` | ||
* Container timeout: `300` (5 minutes) | ||
* Student Delay: `43200` (12 hours) | ||
* Regression Deliverables: `` (blank) | ||
* Custom Autotest Parameters: `{}` **Note**: to show both public and private tests, set this to `{feedbackMode: "combined"}` | ||
* `d2` deliverable settings: | ||
* Deliverable Id: `d2` | ||
* URL: _deliverable description url_ | ||
* Visible: `true` | ||
* Rubric: `{}` | ||
* Custom: `{}` | ||
* Open: _open date_; first day of class is fine | ||
* Close: _close date_ | ||
* Grades Released: `false` | ||
* Will Provision Repos: `false` | ||
* Will use AutoTest: `true` | ||
* Docker image name: `TBD: NICK` | ||
* Container timeout: `300` (5 minutes) | ||
* Student Delay: `43200` (12 hours) | ||
* Regression Deliverables: `d1` | ||
* Custom Autotest Parameters: `{}` **Note**: to show both public and private tests, set this to `{feedbackMode: "combined"}` | ||
* `d3` deliverable settings: | ||
* Deliverable Id: `d3` | ||
* URL: _deliverable description url_ | ||
* Visible: `true` | ||
* Rubric: `{}` | ||
* Custom: `{}` | ||
* Open: _open date_; first day of class is fine | ||
* Close: _close date_ | ||
* Grades Released: `false` | ||
* Will Provision Repos: `false` | ||
* Will use AutoTest: `true` | ||
* Docker image name: `TBD: NICK` | ||
* Container timeout: `300` (5 minutes) | ||
* Student Delay: `43200` (12 hours) | ||
* Regression Deliverables: `d1, d2` | ||
* Custom Autotest Parameters: `{}` **Note**: to show both public and private tests, set this to `{feedbackMode: "combined"}` | ||
* `d4` deliverable settings: | ||
* Deliverable Id: `d4` | ||
* URL: _deliverable description url_ | ||
* Visible: `true` | ||
* Rubric: `{}` | ||
* Custom: `{}` | ||
* Open: _open date_; first day of class is fine | ||
* Close: _close date_ | ||
* Grades Released: `false` | ||
* Will Provision Repos: `false` | ||
* Will use AutoTest: `true` | ||
* Docker image name: `TBD: NICK` | ||
* Container timeout: `300` (5 minutes) | ||
* Student Delay: `43200` (12 hours) | ||
* Regression Deliverables: `` (no longer used) | ||
* Custom Autotest Parameters: `{}` | ||
* `project` deliverable settings: | ||
* Deliverable Id: `project` | ||
* URL: _deliverable description url_ | ||
* Visible: `false` | ||
* Rubric: `{}` | ||
* Custom: `{}` | ||
* Open: _open date_; first day of class is fine | ||
* Close: _close date_ | ||
* Grades Released: `false` | ||
* Will Provision Repos: `true` | ||
* Import URL: `https://github.ugrad.cs.ubc.ca/CPSC310-2018W-T1/bootstrap.git` (should be updated each term) | ||
* Team prefix: `team` (`team_project_` will be prepended) | ||
* Repo prefix: '' (blank) (`project_` will be prepended) | ||
* Min size: `2` | ||
* Max size: `2` | ||
* Same lab: `true` | ||
* Students make teams: `true` | ||
* Will use AutoTest: `true` | ||
* Docker image name: `cpsc310image` | ||
* Container timeout: `300` (5 minutes) | ||
* Student Delay: `43200` (12 hours) | ||
* Regression Deliverables: `` (blank) | ||
* Custom Autotest Parameters: `{}` | ||
|
||
# Provisioning repos | ||
|
||
* Visit `Manage Repositories` in the classy Config tab. | ||
* If you want initial grading on all the repos you provision, be sure to set the `Default deliverable` in the config tab first. | ||
* Select the deliverable you want to provision, and then the repos you want to provision (I would start with one, but if you're feeling lucky do them all). | ||
* This will create the repo and give staff access to it, but _not_ the students. | ||
* This task will take a long time (~10-15 seconds per repo), you can't close the browser while this is happening. | ||
* You can watch progress using the Classy toast, or just visit the GitHub dashboard for the term to see repos show up. | ||
* When you're happy with the repositories that have been provisioned you can release them to the students. | ||
* This might require refreshing the `Provision & Release` results (do this by just toggling the deliverable dropdown). | ||
* Select the repos you want to release and release them. This is a fast task (a few seconds at most per repository). | ||
* Students should then have access to the repo. | ||
* Make sure the `Default deliverable` is set in the config tab so that AutoTest runs on all pushes. | ||
### Viewing with the database (changes strongly discouraged) | ||
|
||
* Configure your SSH keys on `remote` and `cs310` | ||
* Open an SSH tunnel: ssh -J remote.cs.ubc.ca cs310.students.cs.ubc.ca -L 27017:127.0.0.1:27017 | ||
* With Robo3T: connect to `localhost:27017`. Do not use SSH tunnel (in Robo) and just connect as if local. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,5 @@ | ||
# SDMM DevOps | ||
|
||
Host: [https://sdmm.cs.ubc.ca](https://sdmm.cs.ubc.ca) | ||
|
||
### Update running instance: | ||
|
||
To deploy new changes on SDMM, follow these steps: | ||
## The project component of the SDMM is not offered anymore as of January 2024. These can be ignored and removed. | ||
|
||
1. `sudo su w-sdmm` | ||
2. `cd /opt/classy` | ||
3. `git pull` | ||
4. `docker build -t classy:base .` | ||
5. `docker compose -f docker compose.yml -f docker compose.sdmm.yml up --detach --build portal autotest` | ||
|
||
### Configuration | ||
|
||
* If you want access to the admin dashboard, add your GitHub user to the `staff` team within the sdmm GitHub organization. | ||
Host: [https://sdmm.cs.ubc.ca](https://sdmm.cs.ubc.ca) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.