- Go 1.17+
Клонирование репозитория и проверка сборки модуля:
$ git clone [email protected]:C2Devel/aws-sdk-go.git && cd aws-sdk-go
...
$ make build
Артефакт в результате проверки не создается.
AWS API представлено в виде .json
файлов в сабдиректориях models/apis/*
.
Генерация .go
файлов на основе API: make generate
.
Результат генерации находится в service/
.
Запуск линтеров: make verify
Тесты написаны с помощью go testing.
Типы:
- unit:
make unit
- unit + многопоточность:
make ci-test
- интеграционные:
make integration
- Важно! Требуется доработка тестов для запуска на С2.
- unit + разные версии go:
make sandbox-tests
Модуль aws-sdk-go используется в качестве зависимости для разных проектов,
например, terraform-provider-croccloud.
Версия модуля указывается в go.mod
и соответствует тегу релиза.
Важно! Go не позволяет изменять версии после их публикации, т.е. не допускается перестановка релизного тега.
Версии aws-sdk-go должны соответствовать спецификации Semantic Version и начинаться с v (например, v1.2.3 или v1.2.3-pre). Версия фиксируется только в виде тэга.
Схема версионирования: <upstream_version>-CROCX, X - инкрементируется каждый релиз.
Важно! Релизы провайдера выпускаются с ветки develop (установлена дефолтной). Ветка main используется для получения обновлений с upstream.
- Запуск тестов (см. тесты)
- Установка релизного тега с версией и его публикация
$ git tag v1.2.3-CROC0
$ git push <remote> v1.2.3-CROC0