Introducci贸n

1

Lo que aprender谩s sobre DevOps con GitLab

2

驴Qu茅 es Devops?

3

El ciclo de vida del Devops

4

Introducci贸n a Gitlab

5

Gitlab vs Github

Administraci贸n

6

Autenticaci贸n

7

Grupos

8

Autorizaci贸n

9

Auditor铆a

10

Proyectos

Planificaci贸n

11

Tipos de desarrollo

12

Planificaci贸n en Gitlab-Issues

13

Planificaci贸n en Gitlab-Etiquetas

14

Planificaci贸n en Gitlab-Pesos

15

Planificaci贸n en Gitlab-Milestones

16

Planificaci贸n en Gitlab-Boards

17

Planificaci贸n en Gitlab-Service Desk

18

Planificaci贸n en Gitlab-Quick actions

Verificaci贸n

19

Inicializaci贸n del repositorio

20

Merge requests

21

Profundizando en Merge requests

22

Continuous Integration-CI

23

Gitlab CI

24

Automatizacion con GitLab Cl

25

Validacion de la configuracion con GitLab Cl

26

gitlab-ci.yml

27

Gitlab pages

28

Implementando Gitlab pages

29

驴Qu茅 es el Desarrollo 脕gil?

30

Gitlab autodevops

31

Implementando GitLab autodevops

32

Habilitando autodevops

Empaquetaci贸n

33

Gitlab container registry

34

Introducci贸n a contenedores

Seguridad

35

Introducci贸n a DevSecOps

36

Firmas de seguridad

37

Pruebas est谩ticas de seguridad

38

Escaneo de contenedores

39

Escaneo de dependencias

40

Pruebas din谩micas de seguridad

41

Gitlab security dashboard

Distribuci贸n

42

Continuous Delivery (CD)

43

Ambientes

44

Review apps

45

Estrategias de Distribuci贸n

46

Feature Flags

47

Rollback

Monitoreo

48

驴Por qu茅 monitorear?

49

M茅tricas de desempe帽o (performance metrics)

50

M茅tricas de salud (health metrics)

51

Metricas de equipo

52

Rastreo de errores

Conclusiones

53

驴Por qu茅 desarrollar con Gitlab?

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Implementando Gitlab pages

28/53
Recursos

Gitlab Pages nos otorga ciertas funcionalidades como:

  • Hosting est谩tico para servir nuestro website.
  • Integraci贸n con Gitlab CI.
  • Dominios personalizados.

Aportes 24

Preguntas 10

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Se podr铆a optimizar el pipeline, dentro del mismo agregar una variable BASE_HREF=/platzi-devops/ y dentro del package.json hacer uso de esa variable adicionando el flag 鈥攂ase-href

ng build 鈥攂ase-href=$BASE_HREF

Comparto la configuraci贸n realizada

image: node:11.1.0
stages:
  - install
  - build
  - test
  - deploy

install-dependencies:
  stage: install
  script:
    - npm install
  artifacts:
    expire_in: 1hr
    paths:
      - node_modules/
  cache:
    paths:
      - node_modules/

test-apps:
  stage: test
  variables:
    CHROME_BIN: google-chrome
  dependencies:
    - install-dependencies
  before_script:
    - apt-get update && apt-get install -y apt-transport-https
    - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
    - sh -c 'echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
    - apt-get update && apt-get install -y google-chrome-stable
  script:
    - npm run test:ci

build-app:
  stage: build
  variables:
    BUILD_CONFIGURATION: 'production'
  dependencies:
    - install-dependencies
  script:
    - npm run build
  artifacts:
    expire_in: 1hr
    paths:
        - dist/
pages:
  stage: deploy
  dependencies:
    - build-app
  script:
    - mkdir public
    - mv ./dist/nom-proyecto/* ./public/
  artifacts:
    paths:
      - public
  environment:
    name: production
  only:
    - branches
    

A los que le aparezca el error 404, solo deben resolver el WIP status y luego mergear a Master. Una vez que el merge termine y el pipeline cumpla su ciclo podr脿n ver la p脿gina de deployment de Angular correctamente

he configurado mi gitlab-ci para que haga deploy con firebase hosting. Quedo asi y solo hara deploy si hay cambios en master.

image: node:16.14.2
stages:
  - install
  - test
  - deploy

install-dependencies:
  stage: install
  script:
    - npm install
  artifacts:
    expire_in: 1hr
    paths:
      - node_modules/
  cache:
    paths:
      - node_modules/

test-apps:
  stage: test
  variables:
    CHROME_BIN: google-chrome
  dependencies:
    - install-dependencies
  before_script:
    - apt-get update && apt-get install -y apt-transport-https
    - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
    - sh -c 'echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
    - apt-get update && apt-get install -y google-chrome-stable
  script:
    - npm run test:ci
deploy-functions:
  stage: deploy
  dependencies:
    - install-dependencies
  before_script:
    - npm i -g firebase-tools
  script:
    - npm run build 
    - firebase deploy  --token $FIREBASE_TOKEN
  only:
    refs:
      - master

Esto ha sido genial !

En el caso que mi deploy sea en otro servidor como heroku, digital oceam, aws, azure, que cosas cambiaria 鈥?

Buenas 驴Se puede usar Gitlab pages para deployar APIs (Backend)?

Puede ser que la pregunta sea temprano, pero 驴alguno a hecho un pipeline de este tipo pero a un servidor propio?

Tengo en el trabajo un gitlab community edition y algunos servidores windows server. Me gustar铆a poder automatizar el proceso de deployment, por lo menos, a testing. Hay un desarrollo donde se esta usando angular 9 y me gustaria desplegarlo mas automatizado.

Alguien lo hizo con django?

Tengo p谩gina de error 404, alguien tiene alguna idea de que puedo tener mal? https://gitlab.com/xergioalex-projects/my-gitlab-project.

Deber铆a cargar aqu铆: https://xergioalex-projects.gitlab.io/my-gitlab-project/

Les ha pasado que al entrar a ver el log del job de install-dependencies se queda la pantalla cargando? No he podido ver ese log 馃槮

![](
a alguin le paso esto al publicarla

Vamos bien hasta el momento!, les dejo el link del repositorio a gitlab: Repositorio

Hoy siendo 25 de Febrero de 2022, intente de varias maneras pero no pude hacer este proyecto andar鈥

Ojala lo puedan actualizar鈥

https://devops1029.gitlab.io/angular/dom/

Me di de topes con un subgrupo que hice, hay que agregarlo en el href (鈺扳枴掳)鈺傅 鈹烩攣鈹
Agregu茅 ciertas cosas en distintas en:

  • Karma.conf.js
  • package.json
  • .gitlab-ci.yml
  • index.html

Tengo 2 consultas/problemas en lo que va del curso:

1- cuando voy a la page que se genero en gitlab, el navegador me muestra una pagina totalmente vacia, no hay error solo una pagina vacia.

2- cuando monto GITLAB, para tenerlo como self-hosted, en un ubuntu server, lo levanto sin problemas, pero por algun motivo me manda a la pagina ara blanquear contrase帽a de una, sin ingresar el usuario y cuando quiero poner la contrase帽a me dice que el usuario tiene que ser distinto de 鈥榲acio鈥, pero nunca me da la opcion de ingresarlo.

Me pueden ayudar, segu铆 los pasos que indicaron y todos los stage se ejecutan con exito, pero la aplicaci贸n no sale publicada en GitlabPage.

Este es el proyecto: https://gitlab.com/rex2002xp/ng-base-panel-control

gracias.

Me encanta esta magia! gracias crack!!!

https://wlensinas.gitlab.io/gitlab-ci/

Cuando us茅 only no me reconoc铆a el job de pages, pero al cambiarlo de acuerdo a la documentaci贸n a la fecha si!

rules:
    - if: '$CI_COMMIT_BRANCH != "master"'

Hola a todos,

Codigo del archivo .gitlab-ci.yml

`image: node:11.1.0
stages:

  • install
  • test
  • build
  • deploy
    install-dependencies:
    stage: install
    script:
    - npm install
    artifacts:
    expire_in: 1hr
    paths:
    - node_modules/
    cache:
    paths:
    - node_modules/
    test-apps:
    stage: test
    variables:
    CHROME_BIN: google-chrome
    dependencies:
    - install-dependencies
    before_script:
    - apt-get update && apt-get install -y apt-transport-https
    - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
    - sh -c 鈥榚cho 鈥渄eb https://dl.google.com/linux/chrome/deb/ stable main鈥 >> /etc/apt/sources.list.d/google.list鈥
    - apt-get update && apt-get install -y google-chrome-stable
    script:
    - npm run test:ci
    build-app:
    stage: build
    variables:
    BUILD_CONFIGURATION: 'production鈥
    dependencies:
    - install-dependencies
    script:
    - npm run build
    artifacts:
    expire_in: 1hr
    paths:
    - dist/
    pages:
    stage: deploy
    dependencies:
    - build-app
    script:
    - mkdir public
    - mv ./dist/proyectunlamtest/* ./public/
    artifacts:
    paths:
    - public
    environment:
    name: production
    only:
    - branches`

Modificacion del codigo del archivo package.json

"build": "ng build --configuration=$BUILD_CONFIGURATION"

Modificacion del codigo del archivo index.html se encuentra dentro del folder src

<base href="/<NombreProyecto/">

Espero que le ayude.
Saludos

A mi me aparec铆a el error 404, utilic茅 la recomendaci贸n de Sergio y luego de hacer el merge me apareci贸 bien la p谩gina.

Hola a todos.

Tengo el siguiente problema, el Pipeline lleva mas de 10 minutos instalando las dependencias, alguna soluci贸n?
(

Buenas.

Alguien m谩s tiene este error ? :

GET https://gitlab.com/users/sign_in net::ERR_ABORTED 503

No pude encontrar forma para solucionarlo.

Les comparto mi configuracion con TDD PHPUnit:

<
                            # Select image from https://hub.docker.com/_/php/
                            # https://gitlab.com/platzi-gitlab-live/platzi-autodevops
                            #image: php:latest
                            # Can I use .php pages and connect databases with my sites? = No. GitLab Pages hosts static websites only (HTML, CSS and JS).

                            image: php:7.3

                            stages:
                                - install
                                - test
                                - build
                                - deploy

                            # Select what we should cache between builds
                            cache:
                                paths:
                                - vendor/

                            before_script:
                                - echo "mostrando directorios..."
                                - ls -a
                                
                            install-job:
                                stage: install
                                script:
                                    # Install git, the php image doesn't have installed
                                    - apt-get update
                                    - apt-get install curl
                                    # Install composer
                                    - curl -s https://getcomposer.org/installer | php
                                    - mv composer.phar /usr/local/bin/composer
                                    # Install all project dependencies
                                    - composer install
                                    - composer require --dev phpunit/phpunit
                                    - apt-get update
                                    - composer dump-autoload
                                    # We test PHP7 with MySQL, but we allow it to fail
                            test-job:
                                image: php:7.3
                                stage: test
                                script:
                                    #RUN ONLY test/UserTest.php
                                    - echo "Testing test/UserTest.php..."
                                    - php ./vendor/phpunit/phpunit/phpunit test/UserTest.php --color 
                                    #RUN ALL TESTs IN TEST DIRECTORY
                                    - echo "Testing All Test in /test/ folder..."
                                    - php ./vendor/phpunit/phpunit/phpunit test --color
                                allow_failure: true 
                                
                            build-job:
                                stage: build
                                dependencies:
                                    #valida que pasen los dos jobs anteriores
                                    - install-job
                                    - test-job
                                script:
                                    - echo "Building App - Compiling if its needed..."

                            pages:
                                stage: deploy
                                dependencies:
                                    #Exige que se corra primero build-job
                                    - build-job
                                script:
                                    #Creamos dir /public y pasamos los archivos del proyecto
                                    - mkdir .public
                                    - cp -r * .public
                                    - mv .public public
                                artifacts:
                                    paths:
                                        # establecemos que directorio exportar para cargue en sus GLPages
                                        - public
                                environment:
                                    #Creamos entorno llamado produccion
                                    name: production
                                only:
                                    #Hacer esto solo en branches => generalmente se pone que solo se haga con master
                                    #- master
                                    - branches>

chicos tengo este problemas al momento de hacer test-apps alguien sabe cual es el motivo

<code>
02 05 2019 15:47:51.856:INFO [launcher]: Starting browser ChromeHeadless
02 05 2019 15:48:51.857:WARN [launcher]: ChromeHeadless have not captured in 60000 ms, killing.