Skip to content

Commit

Permalink
CI
Browse files Browse the repository at this point in the history
  • Loading branch information
Julen-Smith authored Sep 11, 2023
1 parent 3ae8179 commit 9ff2cbf
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 4 deletions.
48 changes: 47 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,47 @@
# CICD-con-Github-Actions-
# CICD-con-Github-Actions-

Realmente no me lo esperaba pero es prácticamente lo mismo que Jenkins

Código

El código, es un código simple de unas pruebas unitarias donde se comprueba que el número factorial devuelto es correcto y que se controla el error de input.
Factorial
![Alt text](image.png)
Pruebas
![Alt text](image-1.png)

CI
En esta parte de integración continua lo único que vamos a generar es que cuando hagamos un push en una maquina ubuntu se lance nuestra clase de pruebas o cualquier script que controle la calidad del codigo (al menos ese es el fin).
Quizá este sea no sea el mejor ejemplo, pero se podría que generar que se pase algún programa como Sonar o la norminette de 42 para el control de lineas y formateo etc...

python-ci.yml

Aqui lo único que estamos mencionando son las ramas que van a tener afectación y que acciones van a triggerear las pruebas.
![Alt text](image-2.png)

En este caso voy a crear un job que va buildear y testear la aplicación.
Reitero en que quizá al ser una aplicación pequeña y python ser un lenguaje interpretado no sea el mejor contexto,por que la fase build generalmente viene mas ligada a la creación de un artefacto que luego se pueda ejecutar.
Por ejemplo un .war de java o un .exe para windows o un ./mi_prog
(Se podría crear un .exe de esta aplicación pero es un jaleo, otro día)
![Alt text](image-3.png)

El tema de los uses:
Por un lado se pueden crear uses o buscar uses por aquí.
https://github.com/marketplace?type=actions

Explicación sencilla

Normalmente para poder correr este programa en un ubuntu necesitaria hacer un sudo apt-get install python lo que sea
Vale la cosa es que yo si me genero una pipeline podría querer probar mi aplicación en distintos sistemas operativos y entonces tendría que hacer distintas operaciones para cada uno de ellos. Imagina las diferencias entre windows, macos y todas las distros de linux.
Entonces en este use concreto actions/setup-python@v2
Lo que me estoy facilitando es la portabilidad, la versión de python que quiero y otras muchas cosas que todavía no acabo de entender de control de entorno.

![Alt text](image-5.png)
La versión con la que quiero tirar y homogenizar mis pruebas

![Alt text](image-6.png)
El resto nada, comandos necesarios ordenaditos on sus tags y por supuesto la ejecución de las pruebas.




Binary file added context/image-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added context/image-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added context/image-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added context/image-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added context/image-5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added context/image-6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added context/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 0 additions & 3 deletions test_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ def test_factorial_zero(self):
def test_factorial_positive_number(self):
self.assertEqual(factorial(5), 120)

def test_factorial_positive_number(self):
self.assertEqual(factorial(-1), 120)

def test_factorial_negative_number(self):
with self.assertRaises(ValueError):
factorial(-1)
Expand Down

0 comments on commit 9ff2cbf

Please sign in to comment.