Upstream Name | Upstream Version |
---|---|
aws-sdk-go | 1.44.10 |
Клонирование репозитория и проверка сборки модуля:
$ git clone git@github.com:C2Devel/aws-sdk-go.git && cd aws-sdk-go
...
$ make build
Артефакт в результате проверки не создается.
AWS API представлено в виде .json
файлов в сабдиректориях models/apis/*
.
Генерация .go
файлов на основе API: make generate
.
Результат генерации находится в service/
.
Установка линтеров: make install-deps-verify
Запуск линтеров: make verify
Тесты написаны с помощью go testing.
Типы:
- unit:
make unit
- unit + многопоточность:
make ci-test
- интеграционные:
make integration
- Важно! Требуется доработка тестов для запуска на С2.
- unit + разные версии go:
make sandbox-tests
- Тесты запускаются в контейнерах.
- Важно! Без ошибок проходит таргет
make sandbox-test-go1.21
Запуск отдельного теста: go test -v ./private/protocol/restjson/ -run TestUnmarshalError_SerializationError
Модуль aws-sdk-go используется в качестве зависимости для разных проектов,
например, terraform-provider-rockitcloud.
Версия модуля указывается в go.mod
и соответствует тегу релиза.
Важно! Go не позволяет изменять версии после их публикации, т.е. не допускается перестановка релизного тега.
Схема версионирования: <upstream_version>-ROCKITX, где upstream_version - версия форка aws-sdk-go, X - инкрементируется каждый релиз.
Версия фиксируется только в виде тэга.
Важно! Релизы провайдера выпускаются с ветки develop (установлена дефолтной). Ветка main используется для получения обновлений с upstream.
-
Создание релизного PR'а в ветку develop (пример: Release v1.44.10-ROCKIT9)
- Обновление CHANGELOG.md
-
Локальный запуск линтеров и unit тестов на ветке develop
$ make install-deps-verify $ make all
-
Мердж релизного PR'а
-
Установка релизного тега с версией и его публикация
$ git tag v1.2.3 $ git push <remote> v1.2.3
-
Создание релиза на github. В описание дублируется запись из CHANGELOG.md