Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add github pipeline for go project #13

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

bifrurcated
Copy link

Добавил pipeline:

  • build: запуск go build
  • test: запуск тестов
  • coverage: публикация code coverage в pull request

Pipeline будет запускаться при создании/синхронизации/переоткрытии/готовности к ревью для pull request
так же при пуше в main ветку.

Добавил индикатор в README.md показывающий статус успешности pipeline при пуше в main.

При создании pipeline возникли трудности в понимании структуры проекта, так директории internal и examples для шагов build и test были добавлены в исключение. В них имеются множество main файлов отсюда вопрос почему нет директории cmd? Я думаю что стоит добавить описание структуры проекта в README.md.

@bifrurcated
Copy link
Author

Пример работы pipeline: bifrurcated#1

Inspects source code for security problems by scanning the Go AST and SSA code representation.
@bifrurcated
Copy link
Author

Добавил Go Security Checker: Проверяет исходный код на наличие проблем безопасности, сканируя представление кода Go AST и SSA.

@milanjrodd
Copy link
Collaborator

Добавил Go Security Checker: Проверяет исходный код на наличие проблем безопасности, сканируя представление кода Go AST и SSA.

Вопрос, почему security analysis имеет хардкор версию go, а не из переменной как в матрикс?

@bifrurcated
Copy link
Author

bifrurcated commented Feb 9, 2025

Добавил Go Security Checker: Проверяет исходный код на наличие проблем безопасности, сканируя представление кода Go AST и SSA.

Вопрос, почему security analysis имеет хардкор версию go, а не из переменной как в матрикс?

Матрицу можно расширять и добавлять туда, например, другую os по типу windows или mac, так же и с версией golang, если нужно проверить обратную совместимость. И тогда она под каждую вариацию будет запускать pipeline go ci, например, os: windows, go-version: 1.23.x -> build, test, coverage и os: ubuntu, go-version: 1.23.x -> build, test, coverage.
Возможно test и coverage тоже лучше вынести из матрицы для go проекта, вряд ли будут тесты не работающие на другой версии golang, я не знаю.
И поэтому я вынес анализ кода в отдельный шаг от матрицы, чтобы он запускался параллельно, ведь ему не важно какие результаты будут у go ci pipeline.

@milanjrodd
Copy link
Collaborator

Понял. Тесты также зависимы от версии го, потому что у нас много фич которые введены в последних версиях го. Например итераторы.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants