воскресенье, 15 октября 2023 г.

Создание CI/CD

 GitLab

Создаем в Gitlab новый Runner

Устанавливаем на сервер, где будет публиковаться сайт

# Download the binary for your system

sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# Give it permission to execute

sudo chmod +x /usr/local/bin/gitlab-runner

# Create a GitLab Runner user

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

# Install and run as a service

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

sudo gitlab-runner start

Переходим к регистрации:

sudo gitlab-runner register --url https://gitlab.com/ --registration-token GR1348941kpqSxNJY81hUWcdVXVaJ

Токен: имя по которому мы будем запускать Runner

Соединение: shell

Запускаем:

gitlab-runner run

На сервере должен быть установлен git

Возможные ошибки:

GitLab Runner : ОШИБКА: Задание не выполнено: подготовка среды: Процесс завершен со статусом 1. Проверка...

Если вы получаете следующую ошибку при выполнении задания gitlab ci/cd через:gitlab-runner

ERROR: Job failed: prepare environment: Process exited with status 1. 

Выполните следующую команду:

find / -name .bash_logout

и удалите следующие файлы, если они существуют

sudo rm -r /home/gitlab-runner/.bash_logout

sudo rm -r /home/<username>/.bash_logout

Попробуйте повторно запустить задания, которые должны работать.

Ошибка права доступа:

sudo visudo

gitlab-runner ALL=(ALL) NOPASSWD: ALL

Пример .gitlab-ci.yml:

stages:         

  - build

  - revert

build-job:       

  stage: build

  tags:

    - test

  script:

    - sudo rm -rf /home/alex/Documents/last

    - sudo mkdir -p /home/alex/Documents/last

    - sudo cp -r /usr/share/nginx/html/ /home/alex/Documents/last/

    - sudo cp -r . /usr/share/nginx/html/

  only:

    refs:

      - main

revert:

  stage: revert

  tags:

    - test

  when: manual

  script:

    - sudo rm -rf /usr/share/nginx/html/

    - sudo cp -r /home/alex/Documents/last/html /usr/share/nginx/

Пример с возможность отката к предыдущей версии

Признаки "плохого кода"

Кратко рассмотрим 12 признаков, когда код можно улучшить: 1. Duplicated Code  — иногда повторяющийся код не всегда несет в себе пользу. Выде...