-
Notifications
You must be signed in to change notification settings - Fork 5
Inicialización del repositorio
- Saber hacer problemas para omegaUp.
- Saber usar git, y conocimiento básico de Python y C++.
El propósito es usar git para coordinar el trabajo, así como pruebas automáticas que revisen que los problemas tienen entradas válidas y que las soluciones de prueba saquen los puntos esperados.
La descripción del formato de estos archivos y la organización de las carpetas está en este documento. Te recomendamos leerlo después de leer la wiki.
También, no olvides leer la sección de convenciones.
- Crea un nuevo repositorio de git.
- Inicializa un submódulo de git en tu repositorio conteniendo
este repositorio (
omegaUp-deploy
) bajo una carpeta llamadautils
.
git submodule add https://github.com/omegaup/omegaUp-deploy.git utils
- Copia la carpeta de
.github
del repositorio de ejemplo (particularmente los contenidos de.github/workflows
), y crea los siguientes secretos en tu repositorio:
-
OMEGAUP_API_TOKEN
: Pon aquí tu token para la API de omegaUp. -
SLACK_WEBHOOK_URL
: Opcionalmente, pon aquí un webhook url para recibir notificaciones en Slack sobre tu flujo.
- Crea un archivo
problems.json
en la raíz del proyecto con una lista de problemas vacía. Este es el punto de entrada de los scripts. Puedes ver un ejemplo del formato en el repositorio de ejemplo.. - Agrega un archivo
.lint.config.json
en la raíz del proyecto. Si tu proyecto utiliza Python, probablemente te interese también un.pylintrc
.
Si todo está funcionando correctamente, debería haber corrido el flujo de build-test-deploy
sin realizar nada, ya que la lista de problemas está vacía.
Ahora puedes avanzar a la siguiente sección, para crear un nuevo problema.
Cambiar el directorio a la raíz del proyecto.
Si no lo has hecho aún, la primera vez necesitas bajar el submódulo de utilidades para omegaUp:
git submodule init && git submodule update
Asegúrate de tener instalado lo siguiente:
Después, aún desde la raíz del proyecto, corre
./utils/lint fix --all
./utils/runtests.py --all --overwrite-outs
-
--all
especifica que quieres correr los tests de todos los problemas. Si no lo usas, se corren solamente tests de los problemas que se han modificado. -
--overwrite-outs
especifica que ignore los archivos.out
si ya existen: cuando los problemas ya tienen casos y solución oficial esto ayuda a que si cambiaron los casos o las soluciones, las salidas siempre sean acordes con la solución oficial.