-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
78 lines (62 loc) · 2.59 KB
/
makefile
File metadata and controls
78 lines (62 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# builds https://github.com/Jeffrey-P-McAteer/UMW_ACM_Programming_Challenge_Proctor
SHELL := /bin/bash
# Change this to wherever your challenge dir is
ChallengesDir=/Users/jeffrey/Projects/ACM_Challenges
TestServer=localhost
all:
./setup.sh
make build
build:
./build.sh
test:
./test.sh || make stop_test
clean:
./clean.sh
# Cleans things up after a failed test
stop_test:
@echo "Stopping test environment..."
@-docker stop acm_dev_proctor
@-docker rm acm_dev_proctor
@echo; echo "[ Test Failed ]"; echo
@false
# Does not go into background, used for testing
run: all
docker run --name acm_proctor \
-v /tmp \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume $(ChallengesDir):/challenge_db/ \
--publish 8080:80 \
jeffreypmcateer/acm-programming-challenge-proctor:latest
# Runs as daemon in background
launch:
docker run -d --name acm_proctor \
-v /tmp \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume $(ChallengesDir):/challenge_db/ \
--publish 80:80 \
jeffreypmcateer/acm-programming-challenge-proctor:latest
push:
docker push jeffreypmcateer/acm-programming-challenge-proctor
cd Sandbox; docker push jeffreypmcateer/acm-programming-challenge-sandbox
update_problems:
-[[ $(shell hostname) == "Jeffreys-MacBook-Pro.local" ]] && make update_problems_from_jeff
deploy: push
@# Not the best failsafe, but better than nothing
@echo; echo;
@echo "Check that you have a database backup from"
@echo "http://ec2-54-211-6-143.compute-1.amazonaws.com/phpliteadmin.php?view=export"
@echo; echo;
@sleep 10
-[[ $(shell hostname) == "Jeffreys-MacBook-Pro.local" ]] && make deploy_from_jeff
-[[ $(shell hostname) == "Jeffreys-Laptop.umw.myresnet.org" ]] && make deploy_from_jeff
update_problems_from_jeff:
-ssh ec2 "sudo rm -rf ./ACM_Challenges/" # persnickety problem caused by docker's different permissions
rsync -r ~/Projects/ACM_Challenges ec2:./
deploy_from_jeff:
date +%s > /tmp/.acm_biweekly_deploy_begin
make update_problems_from_jeff
ssh ec2 "sudo docker pull jeffreypmcateer/acm-programming-challenge-proctor; sudo docker pull jeffreypmcateer/acm-programming-challenge-sandbox;"
-ssh ec2 "sudo docker stop acm_proctor; sudo docker rm acm_proctor;"
ssh ec2 "sudo docker run -d --name acm_proctor -v /tmp --volume /var/run/docker.sock:/var/run/docker.sock --volume /home/ubuntu/ACM_Challenges:/challenge_db/ --publish 80:80 jeffreypmcateer/acm-programming-challenge-proctor:latest;"
date +%s > /tmp/.acm_biweekly_deploy_end
python -c "print 'Deploy took', ( $$(cat /tmp/.acm_biweekly_deploy_end) - $$(cat /tmp/.acm_biweekly_deploy_begin) ), 'seconds'"