Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
1374c72
Add home creation ansible script
IDzyre Mar 6, 2025
9741a98
linting
IDzyre Mar 7, 2025
b921113
Try to fix git linting?
IDzyre Mar 7, 2025
f579e59
Fix ansible lint
IDzyre Mar 11, 2025
6195ef0
Change variable names
IDzyre Mar 11, 2025
47cb33a
Merge branch 'main' into ansible-homework-api
IDzyre Mar 26, 2025
e31dc09
Remove git support
IDzyre Apr 25, 2025
fdae65e
Fix linting
IDzyre Apr 25, 2025
8caa907
Change json list file formatting
IDzyre May 28, 2025
1690630
Merge branch 'main' into ansible-homework-api
IDzyre Jun 5, 2025
abd7be4
Merge branch 'main' into ansible-homework-api
IDzyre Jun 6, 2025
a57a86d
testing get api key
IDzyre Jun 10, 2025
475d251
testing get api key
IDzyre Jun 10, 2025
591c612
testing get api key
IDzyre Jun 10, 2025
7376838
Testing api again
IDzyre Jun 12, 2025
be2f7ce
Fix '
IDzyre Jun 16, 2025
74b4b5e
Update ci.yml
IDzyre Jun 16, 2025
76e516a
Update ci.yml
IDzyre Jun 16, 2025
4c3cf80
Update ci.yml
IDzyre Jun 16, 2025
0b992f3
Update ci.yml
IDzyre Jun 16, 2025
be6159b
Update ci.yml
IDzyre Jun 16, 2025
9c44dbd
try fix xD
IDzyre Jun 17, 2025
887d6d8
try fix xD1
IDzyre Jun 17, 2025
419d830
Update ci.yml
IDzyre Jun 18, 2025
2ca3337
remove extra space
IDzyre Jun 18, 2025
202f81d
Fix lookup
IDzyre Jun 18, 2025
f66da23
Merge branch 'ansible-gradeable' of github.com:IDzyre/Submitty into a…
IDzyre Jun 18, 2025
8c6386a
fix variable names
IDzyre Jun 18, 2025
e4764e7
Fix api key
IDzyre Jun 23, 2025
de53f56
Try specifying course name
IDzyre Jun 23, 2025
3e5ded7
fix url
IDzyre Jun 23, 2025
0846236
fix url
IDzyre Jun 23, 2025
d32a238
echo token
IDzyre Jun 24, 2025
258f9f3
test
IDzyre Jun 24, 2025
0c7a5c6
Update ci.ymlqwewqe
IDzyre Jul 3, 2025
172e879
testing
IDzyre Jul 3, 2025
bc116c9
testing
IDzyre Jul 3, 2025
f24a783
more
IDzyre Jul 14, 2025
a3afb32
more
IDzyre Jul 14, 2025
3eb80bf
test
IDzyre Jul 18, 2025
38ada8a
Merge branch 'ansible-gradeable' of https://github.com/IDzyre/Submitt…
IDzyre Jul 18, 2025
7b9cc6a
test nother fix
IDzyre Jul 18, 2025
03feaf2
test nother fix
IDzyre Jul 18, 2025
f46a977
try display exception
IDzyre Jul 18, 2025
a398ae2
try display exception
IDzyre Jul 18, 2025
c6e4b4c
try other ting
IDzyre Jul 18, 2025
882b729
Echo response
IDzyre Jul 19, 2025
ce3be9a
aa
IDzyre Jul 19, 2025
ddf9644
Merge remote-tracking branch 'origin/main' into ansible-gradeable
IDzyre Jul 28, 2025
60d6897
Merge branch 'ansible-gradeable' of github.com:IDzyre/Submitty into a…
IDzyre Jul 28, 2025
d20c0e5
Merge remote-tracking branch 'origin/main' into ansible-gradeable
IDzyre Jul 28, 2025
09bea61
site errors
IDzyre Jul 28, 2025
f0368dd
Linting
IDzyre Jul 28, 2025
944a59a
more lint
IDzyre Jul 28, 2025
7fa6389
aee
IDzyre Jul 28, 2025
a2bbddb
more perms
IDzyre Jul 28, 2025
cea3f42
add
IDzyre Jul 29, 2025
8b2aa75
Merge branch 'ansible-gradeable' of https://github.com/IDzyre/Submitt…
IDzyre Jul 29, 2025
551afa2
Switcha rrounsd
IDzyre Jul 29, 2025
cf36e8f
tests
IDzyre Jul 29, 2025
ad32388
tests
IDzyre Jul 29, 2025
96c0257
tests
IDzyre Jul 29, 2025
f68c623
try more
IDzyre Jul 29, 2025
dcda059
test add instructor
IDzyre Jul 29, 2025
2bc5925
add
IDzyre Jul 29, 2025
169cc1d
add
IDzyre Jul 29, 2025
71728be
add
IDzyre Jul 29, 2025
ea0a2cf
try instructor 2
IDzyre Jul 29, 2025
a9e4f5b
test
IDzyre Jul 29, 2025
b84a758
Try runner
IDzyre Jul 29, 2025
534fe84
test
IDzyre Jul 30, 2025
d5aaaf1
please
IDzyre Jul 30, 2025
446059a
plz
IDzyre Jul 30, 2025
d40867c
plz
IDzyre Jul 30, 2025
69c2067
Try in cypress system
IDzyre Jul 31, 2025
a036874
Try system
IDzyre Jul 31, 2025
f5acfa3
Try system
IDzyre Jul 31, 2025
69bde02
Update ansible-course.spec.js
IDzyre Jul 31, 2025
ec9268e
Undo core and x changes
IDzyre Jul 31, 2025
6838ba4
Merge branch 'ansible-gradeable' of https://github.com/IDzyre/Submitt…
IDzyre Jul 31, 2025
45b5523
moveu p
IDzyre Jul 31, 2025
3682252
change to {}
IDzyre Jul 31, 2025
82d7559
AAA
IDzyre Jul 31, 2025
370ffd9
fix
IDzyre Jul 31, 2025
0c39f14
AA
IDzyre Jul 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 50 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,31 @@ jobs:
spec: cypress/e2e/Cypress-System/login.spec.js
working-directory: ${{env.SUBMITTY_REPOSITORY}}/site
browser: chrome

- name: Get API token
id: get_token
run: |
RESPONSE=$(curl -s -X POST -H "Content-Type: application/x-www-form-urlencoded" --data "user_id=instructor&password=instructor" http://localhost/api/token)
echo "$RESPONSE"
status=$(echo "$RESPONSE" | jq -r '.status')
if [ "$status" = "fail" ]; then
exit 1
fi
TOKEN=$(echo "$RESPONSE" | jq -r '.data.token')
echo "API_TOKEN=$TOKEN" >> $GITHUB_ENV

- name: Create Homework
run: |
cd .setup/ansible
ansible-playbook --private-key /home/runner/.ssh/id_rsa -e "ansible_user=runner submitty_homework_creation_api_url=http://localhost/api/term/course/upload submitty_homework_creation_api_key=${{ env.API_TOKEN }}" -i inventory/submitty playbooks/submitty_homework_creation.yml

- name: Run Ansible cypress test
uses: cypress-io/github-action@v6
with:
config: baseUrl=http://localhost
spec: cypress/e2e/Cypress-Ansible/ansible-course.spec.js
working-directory: ${{env.SUBMITTY_REPOSITORY}}/site
browser: chrome

- name: Setup HTTP/2
run: |
Expand Down Expand Up @@ -955,7 +980,7 @@ jobs:
ssh -T localhost
sudo systemctl start postgresql

- name: Run ansible script
- name: Run Ansible scripts
shell: bash
run: |
cd .setup/ansible
Expand All @@ -968,6 +993,10 @@ jobs:
sudo chmod -R a+rwx ${SUBMITTY_INSTALL_DIR}
sudo chmod -R a+rwx /tmp/

- name: Validate image
run: |
curl --show-error --fail --include http://localhost/authentication/login

- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
Expand All @@ -984,10 +1013,28 @@ jobs:
run: |
npm ci

- name: Validate image
- name: Get API token
id: get_token
run: |
curl --show-error --fail --include http://localhost/authentication/login
RESPONSE=$(curl -s -X POST -H "Content-Type: application/json" -d '{"user_id": "instructor", "password": "instructor"}' http://localhost/api/token)
echo "$RESPONSE"
status=$(echo "$RESPONSE" | jq -r '.status')
if [ "$status" = "fail" ]; then
exit 1
fi
TOKEN=$(echo "$RESPONSE" | jq -r '.data.token')
echo "API_TOKEN=$TOKEN" >> $GITHUB_ENV

- name: Debug env
if: failure()
run: |
echo ${{ env.API_TOKEN }}

- name: Create Homework
run: |
cd .setup/ansible
ansible-playbook --private-key /home/runner/.ssh/id_rsa -e "ansible_user=runner submitty_homework_creation_api_url=http://localhost/api/term/course/upload submitty_homework_creation_api_key=${{ env.API_TOKEN }}" -i inventory/submitty playbooks/submitty_homework_creation.yml

- name: Run Ansible cypress test
uses: cypress-io/github-action@v6
with:
Expand Down
43 changes: 42 additions & 1 deletion .setup/ansible/playbooks/submitty_course_creation.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
- name: Submitty Course Creation
hosts: submitty
remote_user: runner
become: true

vars:
Expand Down Expand Up @@ -49,7 +50,7 @@
submitty_course_creation_lastname: lastname
submitty_course_creation_email: email

- name: Add Instructors
- name: Add Instructor
ansible.builtin.include_role:
name: submitty_course_add_instructor
vars:
Expand All @@ -61,7 +62,47 @@
submitty_course_add_instructor_email: email
submitty_course_add_instructor_password: instructor2

- name: Add runner
ansible.builtin.include_role:
name: submitty_course_add_instructor
vars:
submitty_course_add_instructor_term: term
submitty_course_add_instructor_course: course
submitty_course_add_instructor_username: runner
submitty_course_add_instructor_firstname: firstname
submitty_course_add_instructor_lastname: lastname
submitty_course_add_instructor_email: email
submitty_course_add_instructor_password: runner

- name: Add Users
ansible.builtin.include_role:
name: submitty_add_user
vars:
submitty_add_user_username: "{{ user.username }}"
submitty_add_user_firstname: "{{ user.firstname }}"
submitty_add_user_lastname: "{{ user.lastname }}"
submitty_add_user_email: "{{ user.email }}"
submitty_add_user_password: "{{ user.password }}"
loop:
- username: aphacker
firstname: firstname
lastname: lastname
email: email
password: aphacker
- username: bitdiddle
firstname: firstname
lastname: lastname
email: email
password: bitdiddle
- username: adamsg
firstname: firstname
lastname: lastname
email: email
password: adamsg
loop_control:
loop_var: user

- name: Add users to course
ansible.builtin.include_role:
name: submitty_course_add_user
vars:
Expand Down
22 changes: 22 additions & 0 deletions .setup/ansible/playbooks/submitty_homework_creation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
- name: Submitty Homework Creation
hosts: localhost
remote_user: instructor
connection: local

tasks:
# This role is defined in the Submitty Repo under .setup/ansible/roles
- name: Create gradeable
ansible.builtin.include_role:
name: submitty_homework_creation

vars_prompt:
- name: submitty_homework_creation_api_url
prompt: Enter the full API url (http://{domain.com}/api/{semester}/{course}/upload)
private: no
- name: submitty_homework_creation_passed_api_key
prompt: Enter your API key
private: yes
- name: submitty_homework_creation_password
prompt: Enter your password
private: yes
2 changes: 1 addition & 1 deletion .setup/ansible/playbooks/submitty_install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

- name: Install Submitty
hosts: submitty
remote_user: ubuntu
remote_user: runner
become: true
tasks:
- name: Install Submitty
Expand Down
4 changes: 2 additions & 2 deletions .setup/ansible/roles/submitty_add_user/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
- name: Add student to submitty users.
ansible.builtin.expect:
command: ./adduser.py "{{ submitty_add_user_username }}"
command: "./adduser.py {{ submitty_add_user_username }}"
chdir: /usr/local/submitty/sbin/
echo: true
responses:
(?m)^User givenname: "{{ submitty_add_user_username }}"
(?m)^User givenname: "{{ submitty_add_user_firstname }}"
(?m)^User preferred name: "{{ submitty_add_user_firstname }}"
(?m)^User familyname: "{{ submitty_add_user_lastname }}"
(?m)^User email: "{{ submitty_add_user_email }}"
Expand Down
15 changes: 0 additions & 15 deletions .setup/ansible/roles/submitty_course_add_user/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,5 @@
---
# Assumes that local user accounts already exist.

- name: Add student to submitty users.
ansible.builtin.expect:
command: ./adduser.py "{{ submitty_course_add_user_username }}"
chdir: /usr/local/submitty/sbin/
echo: true
responses:
(?m)^User givenname: "{{ submitty_course_add_user_username }}"
(?m)^User preferred name: "{{ submitty_course_add_user_firstname }}"
(?m)^User familyname: "{{ submitty_course_add_user_lastname }}"
(?m)^User email: "{{ submitty_course_add_user_email }}"
(?m)^User password: "{{ submitty_course_add_user_password }}"
become: true
become_user: root

- name: Add existing students to the course database.
ansible.builtin.command:
cmd: ./adduser_course.py "{{ submitty_course_add_user_username }}"
Expand Down
28 changes: 14 additions & 14 deletions .setup/ansible/roles/submitty_course_creation/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,20 @@
vars:
course_name: "{{ submitty_course_creation_course }}"

- name: Add instructors to submitty users.
ansible.builtin.expect:
command: ./adduser.py "{{ submitty_course_creation_username }}"
chdir: /usr/local/submitty/sbin/
echo: true
responses:
(?m)^User givenname: "{{ submitty_course_creation_firstname }}"
(?m)^User preferred name: "{{ submitty_course_creation_firstname }}"
(?m)^User familyname: "{{ submitty_course_creation_lastname }}"
(?m)^User email: "{{ submitty_course_creation_email }}"
(?m)^User password: NotUsedWithLdap
become: true
become_user: root

- name: Add instructors to the course groups.
ansible.builtin.user:
name: "{{ submitty_course_creation_username }}"
Expand Down Expand Up @@ -77,20 +91,6 @@
recurse: true
mode: g+s

- name: Add instructors to submitty users.
ansible.builtin.expect:
command: ./adduser.py "{{ submitty_course_creation_username }}"
chdir: /usr/local/submitty/sbin/
echo: true
responses:
(?m)^User givenname: "{{ submitty_course_creation_firstname }}"
(?m)^User preferred name: "{{ submitty_course_creation_firstname }}"
(?m)^User familyname: "{{ submitty_course_creation_lastname }}"
(?m)^User email: "{{ submitty_course_creation_email }}"
(?m)^User password: NotUsedWithLdap
become: true
become_user: root

# Prepare the course directory and course database.
# Assumes top-level Submitty database exists.

Expand Down
Loading
Loading