Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Caio reviewer2 #1963

Open
wants to merge 5 commits into
base: caio-new-da
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 8 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,11 @@ shell:
@ if [ "${${*}}" = "" ]; then \
echo "Environment variable $* not set"; \
exit 1; \
fi
fi

exercises:
$(RUNNER) exercises
.PHONY: exercises

exercises-sh:
$(RUNNER) --entrypoint "" exercises bash
6 changes: 6 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,9 @@ services:
- AWS_DEFAULT_REGION
entrypoint:
- bash
exercises:
image: devopsacademyau/reviewer:latest
volumes:
- ${PWD}:/da
environment:
- GH_USER
12 changes: 12 additions & 0 deletions exercises/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM python:3.10-slim-bullseye
WORKDIR /app

RUN apt-get update -y && apt-get install -y git
RUN git config --global user.email "[email protected]" && \
git config --global user.name "Dummy DA"
# ADD requirements.txt /app
COPY . /app

# RUN pip3 install -r requirements.txt

CMD [ "python", "./run.py"]
74 changes: 74 additions & 0 deletions exercises/run.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import argparse
import os
import shutil
import sys
from pathlib import Path

EXERCISES_FOLDER=Path("/app/")
DA_ROOT_PATH=Path("/da")
STUDENT_EXERCISES_FOLDER=Path("{}/students/{}".format(DA_ROOT_PATH, os.environ['GH_USER']))

def exercise(exercise):
if not exercise:
exercise = input("What exercise would you like to generate files for: ")

exercise_folder = Path(EXERCISES_FOLDER, "{}".format(exercise))
student_exercise_folder = Path(STUDENT_EXERCISES_FOLDER, "exercises/{}".format(exercise))

# print(exercise_folder)
# print(student_exercise_folder)
if not exercise_folder.exists():
sys.exit("Exercise not found.")

if student_exercise_folder.exists():
print("Exercise folder already exists.")
refresh = input("Do you want to refresh all the exercise files anyway? (y/Y): ")
if refresh.lower() != 'y':
print("Aborted.")
sys.exit()

if not student_exercise_folder.exists():
print("Creating folder {}".format(student_exercise_folder))
Path.mkdir(student_exercise_folder, parents=True)

print("Copying all files from exercise {}".format(exercise))
shutil.copytree(exercise_folder, student_exercise_folder, dirs_exist_ok=True)

# run exercise after script setup
custom_config(exercise)

def custom_config(exercise):
if exercise == "git04":
secret_file = "my_env.txt"
secret_file_path = Path(STUDENT_EXERCISES_FOLDER, "exercises/{}/{}".format(exercise, secret_file))
if secret_file_path.exists():
Path.unlink(secret_file_path)
print("Creating secret file {}".format(secret_file_path))
with open(secret_file_path, 'w') as f:
f.write("SERVICE_NAME=account-management\nENVIRONMENT=prod\nPASSWORD=pass1234")

os.system("cd {} && git add {} && git commit -am 'commit my secret'".format(DA_ROOT_PATH, secret_file_path))

def setup():
# override folder path when running python script outside docker
if os.getenv('LOCAL_RUN', False):
global EXERCISES_FOLDER
global STUDENT_EXERCISES_FOLDER
global DA_ROOT_PATH
EXERCISES_FOLDER = Path(Path().resolve(), "exercises")
STUDENT_EXERCISES_FOLDER = Path(Path().resolve(), "students/{}".format(os.environ['GH_USER']))
DA_ROOT_PATH = Path(Path().resolve())

def main():
setup()
parser = argparse.ArgumentParser()
# parser.add_argument(dest='option', help="What option to run")
parser.add_argument('-e', dest='exercise', help="What exercise name to run", required=False)
args = parser.parse_args()

# if args.option == "exercise":
exercise(args.exercise)


if __name__ == "__main__":
main()
3 changes: 0 additions & 3 deletions students/caiocezart/exercises/git04/config.json

This file was deleted.

3 changes: 0 additions & 3 deletions students/caiocezart/exercises/git04/my_env.txt

This file was deleted.