- Scripts para coaches
- Testing y linters (contribuidoras)
- Integración continua (mantenedoras)
- Tareas de mantenimiento (mantenedoras)
Este script está dirigido a coaches y se usa para crear un repo de proyecto para usar con un cohort en particular. Las coaches de cada cohort son encargadas de crear un repo para cada proyecto que haya disponible en dicho cohort.
project.yml
del proyecto y
genera la sección correspondiente en el README.md
resultante en el repo para
usar con las estudiantes.
Este script necesita saber qué proyecto nos interesa, en qué lugar de nuestro disco duro queremos crear la carpeta para el nuevo repo y opcionalmente un identificador para el cohort.
Por ejemplo, si queremos crear un repo con el proyecto de cipher
para un
cohort que se llama LIM014
, podríamos usar el siguiente comando:
npm run create-cohort-project projects/01-cipher ~/ LIM016
En el ejemplo de arriba estaríamos creando un repo con el proyecto cipher
(que está en la carpeta projects/01-cipher
) en la carpeta LIM014-cipher
en
~/
.
Para de crear también el repo en GitHub y hacer un primer commit con el
boilerplate, tendremos primero que crear un
GitHub Personal Access Token
en GitHub y de ahí especificar la variable de entorno GITHUB_TOKEN
. Algo así:
GITHUB_TOKEN=xxxxxx npm run create-cohort-project ./projects/01-cipher ~/ LIM014
Para familiarizarte con el script puedes usar la opción --noop
para que el
script te diga qué hubiera hecho en vez de hacerlo de verdad 😉
./scripts/create-cohort-project.js <src> <dest> [<cohortid>]
Variables de entorno:
GITHUB_TOKEN
: Un GitHub Personal Access Token con permiso para crear repos en la cuenta de GitHub correspondiente (por ejemploLaboratoria
).
Argumentos:
src
: Ruta a la carpeta del proyecto en el sistema de archivos.dest
: Ruta a una carpeta donde crear la nueva carpeta de proyecto para el cohort correspondiente.cohortid
: Un idendificador para el cohort. Esto se usará como prefijo en el nombre de la carpeta creada y repo.
Opciones:
--locale
: Puede seres
opt
. Por defecto eses
.--variant
: Variente de implementación (si el proyecto tiene variantes).--noop
: Si esta opción está presente el script nos dirá que es lo que haríá paso a paso pero sin realmente hacer nada. Es útil para familiarizarse con el script.
npm-scripts
(npm run create-cohort-project
) hay que separar las opciones con
--
para que npm
las pase al script.
npm run create-cohort-project projects/05-fleet-management-api /tmp XXX999 -- --variant java
Si invocamos directamente no es necesario. Por ejemplo:
./scripts/create-cohort-project.mjs projects/05-fleet-management-api /tmp XXX999 --variant java
Run MarkDown linter.
Related files: .mdlintignore
, mdlintrc
.
npm run mdlint
Run JavaScript linter.
Related files: .eslintignore
, eslintrc
.
npm run eslint
The validate
script runs the build
script with the --validate
option,
which basically allows us to validate the build without creating any files and
simply check the exit status to see whether it passed or not.
npm run validate
Ejecuta pruebas unitarias en los ejercicios de los tópicos.
NOTA: Estas pruebas se ejecutan con mocha
ya que estas pruebas también
necesitan ejecutarse en el navegador (jest
no corre en el navegador).
# Run topics tests with npm (and implicitly the pretest script)
npm run test:topics
The pretest
hook makes sure that linters and validation are run before
proceeding with the unit tests.
# Run pretest script via npm
npm run pretest
# Run equivalent command
npm run mdlint && npm run eslint && npm run validate
Run unit tests (and implicitly the pretest
script).
# Run tests with npm (and implicitly the pretest script)
npm test
The build
script uses the curriculum-parser
to analyse both projects and
topics and store the resulting JSON files in the dist
directory.
Options:
--validate
: If this option is present no files will be written (used by thevalidate
script, see above).
npm run build
Compares the current state of each project to the main
branch of each
private repo with the example/model implementations. If changes are detected, a
PR will be sent with the relevant changes.
./scripts/propagate.sh --noop
./scripts/propagate.sh
Create gource visualization like this one.
./scripts/create-gource-video.sh
./scripts/check-projects-deps.sh