3

Прошу консультацию по Gitlab CI⁠⁠

Господа и господамы, а есть ли тут мастера спорта по Gitlab CI? Хочется получить профессиональную консультацию.

Попробую описать вопрос:
представим себе ситуацию, когда разработчик неделю работает локально и что-то там у себя коммитит (но не пушит в гитлаб). И вот, спустя неделю, он решил задачу и решил вывалить свое творение на обозрение, запушив весь свой кодовый понос в отдельную ветку.
И вот тут-то нам бы проверить, чего он там такого понаписал, не наделал ли синтаксических ошибок в спешке, которые сразу положат приложение. Пайплайн запускается, отрабатывает билд зависимостей, запускается линтер и юнит-тесты, и вроде бы все ОК, можно деплоить на дев.. НО! Пайплайн проверил только его последний коммит, в котором он, например, поправил файлик `README.MD`. А предыдущие 10 коммитов, где могут быть ошибки, пайплайн не проверяет.

С одной стороны я могу себе это объяснить тем, что надо заставлять разработчиков пушить каждый коммит в удаленную репу, т.е. гитлаб. Но с другой стороны как это побороть в тех ситуациях, когда разработчик "забыл", "не было связи", "балбес" и т.д.

Аналогичный вопрос касается слияния веток. Берем мы ветку этого разработчика и открываем Merge Request на вливание её в `development`. Если тесты пройдут успешно - можно вывалить его творение на dev-стенд и потестировать. И вот опять беда - гитлаб запускает пайплайн только на последний коммит в MRе, хотя их там может быть сколь угодно много. Пробовал костылить всякие git diff с хешами и ветками, но все не то - показывает обратный дифф, если бы ветку development вливали в его ветку.

Подозреваю, что я чего-то не понимаю, не следую какому-то правильному flow и тд.

Прошу подсказать, объяснить, проконсультировать. Если удобно - можно даже персонально в мессенджере, с оплатой

0
Автор поста оценил этот комментарий

For custom scripting to trigger a pipeline for each commit in a push, you would typically use the GitLab API along with a script that identifies each commit. Below is a conceptual example of how you might set this up. This script would be part of a GitLab CI pipeline, and its purpose is to trigger a new pipeline for each commit that is part of the push.


### Script Overview

1. **List Commits**: The script lists all commits that are part of the push.

2. **Trigger Pipeline**: For each commit, the script triggers a new pipeline via the GitLab API.


### Example Script

This example uses Bash scripting and GitLab's API. You will need a GitLab access token with the appropriate permissions to trigger a pipeline.


#!/bin/bash

# Set your project ID and your GitLab access token

PROJECT_ID="your_project_id"

PRIVATE_TOKEN="your_access_token"

# Get the list of commit hashes from the push

# Adjust the range as needed, e.g., HEAD~3..HEAD for the last 3 commits

commit_hashes=$(git log --pretty=format:%H HEAD~3..HEAD)

# Loop through each commit and trigger a pipeline

for commit_hash in $commit_hashes; do

# API call to trigger a pipeline for the specific commit

curl --request POST "https://gitlab.com/api/v4/projects/$PROJECT_ID/trigger/pipel..." \

--form "ref=your_branch_name" \

--form "token=$PRIVATE_TOKEN" \

--form "variables[COMMIT_SHA]=$commit_hash"

done

### Integration

- This script can be integrated as part of a GitLab CI pipeline or run manually.

- Ensure the GitLab runner has the necessary permissions and configurations to execute this script.

### Caution

- This script can generate a large number of pipelines, especially if you frequently push multiple commits. Be mindful of the resource usage and potential load on your CI server.


Вот что советует ChatGPT. Похоже на то, что вам нужно? Выглядит не супер сложно.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

гм.. спасибо, надо обдумать..

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества